May 13 2011

how-to: Multiple PHP

Category: how-to,ITmop @ 14.48

Šiandien teko daryti dviejų skirtingų php versijų veikimą ant vieno apache’o. Nusprendžiau užsirašyti, nes tas how-to pagal kurį dariau truputį kreivas ir ne iš karto pagal jį padarius viskas veikia. Assuminam, kad apache’as su kažkokiu php jau yra paleistas, aprašau kaip paleisti papildomą. Šiuo atveju naudota CentOS 5.4 sistema.

 

  • Siunčiamės reikiamą php iš http://www.php.net/releases/
  • tar xvzf php-5.3.3.tar.gz
  • cd php-5.3.3
  • php -i|less
    • čia nusižiūrim jau turimo php configą: php -i|grep ‘Configure Command’|sed -r “s/ ‘.\/configure’//”|cut -d ” ” -f 5-|sed -r “s/ ‘–with-apxs2=.*apxs’//”
    • rašom ./configure
    • nusikopinam, pridedam: ‘–with-config-file-path=/etc/php5.3.3/php.ini’ ‘–with-config-file-scan-dir=/etc/php5.3.3’ ir paleidžiam
    • pasibaigus configure’ui, sužiūrim kokių raktų jis nesuprato ir pasižiūrim kaip jie vadinasi naujoje versijoje (./configure –help|grep xslt) (šioje vietoje turi būti du – -, mano wordpress’as kažkodėl suklijuoja į vieną)
    • paleidžiam configure iš naujo su pakeistais raktais
    • make
  • mkdir /usr/local/php5.3.3 &&  mkdir /usr/local/php5.3.3-cgi-bin
  • cp sapi/cgi/php-cgi /usr/local/php5.3.3-cgi-bin/
  • cp /etc/php.ini /usr/local/php5.3.3-cgi/
  • pridedam httpd.conf Listen 8533 (portas gali būti bet koks, šiuo atveju 8533, kad būtų aišku kuri versija)
  • pridedam VirtualHost’ą

<VirtualHost *:8533>

DocumentRoot /var/www

ScriptAlias /cgi-bin/ /usr/local/php5.3.3-cgi-bin/

DirectoryIndex index.php5

Action php5.3.3-cgi /cgi-bin/php-cgi

AddHandler php5.3.3-cgi .php5 .php

<Directory /var/www/>

Options Indexes FollowSymLinks MultiViews

AllowOverride All

Order allow,deny

allow from all

DirectoryIndex index.html index.php

</Directory>

ErrorLog /var/log/httpd/localhost_8533-error_log

CustomLog /var/log/httpd/localhost_8533-access_log common

</VirtualHost>

  • /etc/init.d/http restart

jeigu nenusikeikia tai turėtų viskas jau veikti. Jeigu keikiasi žiūrim ar nėra klaidų konfige ir dėl ko keikiasi (tail -n30 /var/log/http/error.log). Dar galima žiūrėti /var/log/httpd/localhost_8533-error_log jeigu kažkas neveikia.

Galima patikrinti įdėjus info.php į /var/www folderį su turiniu:

<?phpinfo();?>

ir atsidaryti http://serverioip:8533/info.php

turėtų rodyti antrojo php info ir nustatymus.

Tai tiek. Kitose sistemose gali skirtis failų pavadinimai ir šiaip kai kuriuos dalykus reikia pritaikyti savo atvejui. Klausimai, pastabos – komentaruose.

Buk socialus, pasidalink!
Patiko? Prenumeruok RSS!

Palik komentarą