PHP5 & PHP4 Π½Π° ΠΎΠ΄Π½ΠΎΠΌ apache
ΠΠ°ΠΊ-ΡΠΎ Π½ΡΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Ρ
ΠΎΡΡΠΈΠ½Π³ Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΎΠΉ PHP5 ΠΈ PHP4 ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ΅.
Π Π΅ΡΠ΅Π½ΠΈΠΉ Π΄Π°Π½Π½ΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ 2.
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΈ Π·Π°ΠΏΡΡΠΊ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· Π²Π΅ΡΡΠΈΠΉ PHP ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ ΠΌΠΎΠ΄ΡΠ»Ρ apache, Π΄ΡΡΠ³ΠΎΠΉ ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ CGI (ΠΈΠ»ΠΈ ΠΎΠ±Π΅ Π²Π΅ΡΡΠΈΠΈ ΠΊΠ°ΠΊ CGI) + suPHP.
ΠΠ°ΠΏΡΡΠΊ 2-Ρ
ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΎΠ² web-ΡΠ΅ΡΠ²Π΅ΡΠ° (Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ apache). ΠΠ΅ Π·Π½Π°Ρ ΠΏΠΎ ΠΊΠ°ΠΊΠΎΠΉ ΠΏΡΠΈΡΠΈΠ½Π΅, Π½ΠΎ ΡΡΠΎ Π΅Π΄Π²Π° Π»ΠΈ Π½Π΅ ΡΠ°ΠΌΡΠΉ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠΉ ΡΠΏΠΎΡΠΎΠ±, Ρ
ΠΎΡΡ, ΠΈΠΌΡ
ΠΎ, ΠΈ Π½Π°ΠΈΠΌΠ΅Π½Π΅Π΅ Π³ΠΈΠ±ΠΊΠΈΠΉ ΠΈ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ Π³Π΅ΠΌΠΎΡΠΎΠΉΠ½ΡΠΉ.
Π‘ΠΏΠΎΡΠΎΠ± 1. ΠΠ±Π΅ Π²Π΅ΡΡΠΈΠΈ ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ CGI
ΠΡΠ΅ ΠΏΡΠΎΠ΄Π΅Π»ΡΠ²Π°Π»ΠΎΡΡ Π½Π° Ubuntu 10.04 LTS/10.10 (ΡΠΎ ΠΆΠ΅ ΡΠΏΡΠ°Π²Π΅Π΄Π»ΠΈΠ²ΠΎ ΠΈ Π΄Π»Ρ debian).
ΠΡΠ»ΠΈ apache ΠΈ php5 ΡΠΆΠ΅ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½:
test# a2dismod php5 test# apt-get install php5-cgi libapache2-mod-suphp
ΠΡΠ»ΠΈ apache ΠΈ php5 Π½Π΅ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Ρ:
test# apt-get install apache2 php5-cgi libapache2-mod-suphp
Π‘ΠΊΠ°ΡΠΈΠ²Π°Π΅ΠΌ ΠΈ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ php4:
test# cd /usr/src test# wget _http://uk.php.net/distributions/php-4.4.9.tar.gz test# tar -xvzf php-4.4.9.tar.gz test# apt-get install autoconf automake bison flex libtool re2c test# cd php-4.4.9 test# ./configure --prefix=/usr/local/php4 --enable-cgi=yes ...
(ΡΠΊΡΡΠ΅Π½ΡΠ΅Π½Ρ ΠΏΠΎ Π²ΠΊΡΡΡ, ΠΊΠ°ΠΊΠΈΠ΅ Π½ΡΠΆΠ½Ρ. ΠΡΠΎ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ Π½Π°Π±ΠΎΡ. Π‘ΠΏΠΈΡΠΎΠΊ Π²ΡΠ΅Ρ
ΠΎΠΏΡΠΈΠΉ
./configure --help)
test# make && make install
ΠΡΠΈΠ²ΠΎΠ΄ΠΈΠΌ ΡΠ°ΠΉΠ» /etc/suphp/suphp.conf ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΠΊ ΡΠ°ΠΊΠΎΠΌΡ Π²ΠΈΠ΄Ρ:
[global] logfile=/var/log/suphp/suphp.log loglevel=info webserver_user=www-data ;For RHEL/CENTOS webserver_user=apache docroot=/ ;chroot=/mychroot allow_file_group_writeable=true allow_file_others_writeable=false allow_directory_group_writeable=true allow_directory_others_writeable=false check_vhost_docroot=false errors_to_browser=true env_path=/bin:/usr/bin umask=0077 min_uid=33 min_gid=33 [handlers] ;Handler for php-scripts x-httpd-php5="php:/usr/lib/cgi-bin/php5" x-httpd-php4="php:/usr/local/php4/bin/php" ;Handler for CGI-scripts x-suphp-cgi="execute:!self"
Π Π΅Π΄Π°ΠΊΡΠΈΡΡΠ΅ΠΌ (ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠΈΡΡΡ Π²ΡΠ΅ ΡΡΡΠΎΠΊΠΈ Π² ΡΠ°ΠΉΠ»Π΅) ΠΈΠ»ΠΈ ΡΠ΄Π°Π»ΡΠ΅ΠΌ ΡΠ°ΠΉΠ»:
/etc/apache2/mods-available/suphp.conf
ΠΠ°Π»Π΅Π΅ ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ Π²ΠΈΡΡΠ°Π»ΡΠ½ΡΡ
Ρ
ΠΎΡΡΠΎΠ² ΠΏΠΈΡΠ΅ΠΌ:
Π΄Π»Ρ PHP5:
<VirtualHost 1.2.3.4:80> DocumentRoot "/home/www/example.com" ServerName "example.com" <IfModule mod_suphp.c> suPHP_Engine on AddHandler x-httpd-php4 .php .php3 .php4 .php5 suPHP_AddHandler x-httpd-php4 </IfModule> </VirtualHost>
<VirtualHost 1.2.3.4:80> DocumentRoot "/home/www/example.com" ServerName "example.com" <IfModule mod_suphp.c> suPHP_Engine on AddHandler x-httpd-php4 .php .php3 .php4 .php5 suPHP_AddHandler x-httpd-php4 </IfModule> </VirtualHost>
Π‘ΠΏΠΎΡΠΎΠ± 2. PHP5 ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ CGI, PHP4 ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ ΠΌΠΎΠ΄ΡΠ»Ρ
ΠΡΠ΅ ΠΏΡΠΎΠ΄Π΅Π»ΡΠ²Π°Π»ΠΎΡΡ Π½Π° Ubuntu 10.04 LTS/10.10 (ΡΠΎ ΠΆΠ΅ ΡΠΏΡΠ°Π²Π΅Π΄Π»ΠΈΠ²ΠΎ ΠΈ Π΄Π»Ρ debian).
Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΊ apache Π²ΡΠ±ΡΠ°Π» php4, Ρ.ΠΊ. ΡΡΠΎ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ»ΠΎΠΆΠ½Π΅Π΅ ΡΠ΄Π΅Π»Π°ΡΡ.
ΠΡΠ»ΠΈ apache ΠΈ php5 ΡΠΆΠ΅ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½:
test# a2dismod php5 test# apt-get install php5-cgi libapache2-mod-suphp
ΠΡΠ»ΠΈ apache ΠΈ php Π½Π΅ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Ρ:
test# apt-get install apache2 php5-cgi libapache2-mod-suphp
ΠΠ°Π»Π΅Π΅ ΠΊΠ°ΡΠ°Π΅ΠΌ ΠΈ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ php4 (Π΄Π»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ php4 Π΄Π»Ρ apache Π½ΡΠΆΠ΅Π½ ΠΏΠ°ΠΊΠ΅Ρ apxs2, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΠ΄Π΅Ρ Π² ΡΠΎΡΡΠ°Π²Π΅ ΠΏΠ°ΠΊΠ΅ΡΠ° apache-threaded-dev):
test# wget _http://uk.php.net/distributions/php-4.4.9.tar.gz test# tar -xvzf php-4.4.9.tar.gz test# apt-get install autoconf automake bison flex libtool re2c test# cd php-4.4.9 test# apt-get install apache2-threaded-dev test# ./configure --prefix=/usr/local/php4 --with-apxs2=/usr/bin/apxs2 --enable-cgi=yes --with-mysql=/usr/ ...
(ΡΠΊΡΡΠ΅Π½ΡΠ΅Π½Ρ ΠΏΠΎ Π²ΠΊΡΡΡ, ΠΊΠ°ΠΊΠΈΠ΅ Π½ΡΠΆΠ½Ρ. ΠΡΠΎ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ Π½Π°Π±ΠΎΡ. Π‘ΠΏΠΈΡΠΎΠΊ Π²ΡΠ΅Ρ
ΠΎΠΏΡΠΈΠΉ
./configure --help)
test# make test# make install
ΠΡΠΈΠ²ΠΎΠ΄ΠΈΠΌ ΡΠ°ΠΉΠ» /etc/suphp/suphp.conf ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΠΊ ΡΠ°ΠΊΠΎΠΌΡ Π²ΠΈΠ΄Ρ:
[global] logfile=/var/log/suphp/suphp.log loglevel=info webserver_user=www-data ;For RHEL/CENTOS webserver_user=apache docroot=/ ;Path to chroot() to before executing script ;chroot=/mychroot allow_file_group_writeable=true allow_file_others_writeable=false allow_directory_group_writeable=true allow_directory_others_writeable=false check_vhost_docroot=false errors_to_browser=true env_path=/bin:/usr/bin umask=0077 min_uid=33 min_gid=33 [handlers] ;Handler for php-scripts x-httpd-php5="php:/usr/lib/cgi-bin/php5" ;Handler for CGI-scripts x-suphp-cgi="execute:!self"
Π Π΅Π΄Π°ΠΊΡΠΈΡΡΠ΅ΠΌ (ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠΈΡΡΡ Π²ΡΠ΅ ΡΡΡΠΎΠΊΠΈ Π² ΡΠ°ΠΉΠ»Π΅) ΠΈΠ»ΠΈ ΡΠ΄Π°Π»ΡΠ΅ΠΌ ΡΠ°ΠΉΠ»:
/etc/apache2/mods-available/suphp.conf
ΠΠ°Π»Π΅Π΅ ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ Π²ΠΈΡΡΠ°Π»ΡΠ½ΡΡ
Ρ
ΠΎΡΡΠΎΠ² ΠΏΠΈΡΠ΅ΠΌ:
Π΄Π»Ρ PHP5:
<VirtualHost 1.2.3.4:80> DocumentRoot "/home/www/example.com" ServerName "example.com" <IfModule mod_suphp.c> suPHP_Engine on AddHandler x-httpd-php5 .php .php3 .php4 .php5 suPHP_AddHandler x-httpd-php5 </IfModule> </VirtualHost>
<VirtualHost 1.2.3.4:80> DocumentRoot "/home/www/example.com" ServerName "example.com" <IfModule mod_php4.c> AddType x-httpd-php .php </IfModule> </VirtualHost>