Poczułem wewnętrzy imperatyw instalacji PHP w wersji 5.3. Jako że instalacja wielu wersji PHP w Apache’u jest możliwa (1 jako moduł + wiele jako CGI/FastCGI) postanowiłem pozostawić 5.2.6 z Debianowej paczki jako moduł Apache’a, a w vhostach postawić 5.3 i 6.0.
Do dzieła.
PHP 5.3
Ściągamy najnowszą paczkę źródeł:
wget http://snaps.php.net/php5.3-latest.tar.gz
i wypakowujemy
tar xf php5.3-latest.tar.gz
przechodzimy do wypakowanego katalogu i odpalamy skrypt „configure”, z odpowiadającymi nam parametrami, u mnie wyglądało to tak:
./configure –disable-short-tags –with-openssl –with-zlib –enable-bcmath –with-bz2=/bin/bzip2 –enable-calendar –with-curl –with-curlwrappers –enable-exif –enable-ftp –with-gd –with-jpeg-dir=/usr/lib –with-png-dir=/usr/lib –with-xpm-dir=/usr/lib –with-t1lib –enable-gd-native-ttf –enable-gd-jis-conv –with-gettext –with-imap –with-imap-ssl –with-ldap –with-ldap-sasl –enable-mbstring –with-mcrypt –with-mhash –with-mysql=mysqlnd –with-mysqli=mysqlnd –with-pdo-mysql –with-pspell –with-readline –with-snmp –enable-soap –enable-sockets –with-sqlite –enable-sqlite-utf8 –with-tidy –enable-wddx –with-xmlrpc –with-xsl –enable-zip –with-pear –with-kerberos –prefix=/opt/php5.3
Jako katalog instalacji wybrałem /opt/php5.3, aby zainstalować nową wersję równolegle z poprzednią.
Następnie uruchamiamy kompilacje:
make -j
Fakt – uruchomienie make z bez limitu wątków, przymuli kompa, ale jako osoba niecierpliwa poświęciłem się, by skompilować szybciej.
Warto uruchomić teraz make test dla sprawdzenia naszego świeżutkiego PHP.
Odpalamy make install i po chwili możemy się cieszyć nowiusieńką wersją PHP!
Dla pewności: /opt/php5.3/bin/php-cgi -v. Na konsoli powinno pojawić się PHP 5.3.0beta2-dev (cgi-fcgi).
Teraz czas na nowego vhosta. Używam Ubuntu, więc uruchomienie go jest dziecinnie proste. Przechodzimy do katalogu /etc/apache2/ i do pliku httpd.conf dopisujemy linijkę
NameVirtualHost *:80
przechodzimy do sites-avaible i edytujemy default, ustawiamy <VirtualHost *:80>.
W katalogu sites-avaible tworzymy plik php53. Przykładowa zawartość:
<VirtualHost *:80>
ServerName php53
DocumentRoot /home/vsemaphore/wwwphp53/
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
<Directory /home/vsemaphore/wwwphp53/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
ErrorLog /home/vsemaphore/wwwphp53/error.log
LogLevel warn
CustomLog /home/vsemaphore/wwwphp53/access.log combined
AddType application/x-httpd-php53 .php
ScriptAlias /php/ “/opt/php5.3/bin/”
Action application/x-httpd-php53 “/php/php-cgi”
</VirtualHost>
Do pliku /etc/hosts dopisujemy
127.0.0.1 php53
Następnie aktywujemy vhosta (a2ensite php53) i restartujemy Apache’a. Od tego momentu po wejściu na adres http://localhost będziemy używać PHP w wersji zainstalowanej domyślnie w systemie jako moduł (u mnie 5.2.6), a poprzez http://php53 w wersji 5.3 poprzez CGI.
PHP 6.0
Postępujemy analogicznie.
Ściągamy:
wget http://snaps.php.net/php6.0-latest.tar.gz
Wypakowujemymy:
tar xf php6.0-latest.tar.gz
Przechodzimy do folderu i konfigurujemy. Tym razem jako katalog instalacji wybrałem: /opt/php6.0
./configure –disable-short-tags –with-openssl –with-zlib –enable-bcmath –with-bz2=/bin/bzip2 –enable-calendar –with-curl –with-curlwrappers –enable-exif –enable-ftp –with-gd –with-jpeg-dir=/usr/lib –with-png-dir=/usr/lib –with-xpm-dir=/usr/lib –with-t1lib –enable-gd-native-ttf –enable-gd-jis-conv –with-gettext –with-imap –with-imap-ssl –with-ldap –with-ldap-sasl –enable-mbstring –with-mcrypt –with-mhash –with-mysql=mysqlnd –with-mysqli=mysqlnd –with-pdo-mysql –with-pspell –with-readline –with-snmp –enable-soap –enable-sockets –with-sqlite –enable-sqlite-utf8 –with-tidy –enable-wddx –with-xmlrpc –with-xsl –enable-zip –with-kerberos –prefix=/opt/php6.0
Kompilujemy (make).
Testujemy (make test)
Instalujemy(make install).
Dodajemy analogicznie wpisy w /etc/hosts i nowy plik vhosta w /etc/apache/sites-availbe. Ważne, aby dla każdej konfiguracji użyć innego wpisu AddType (przykładowo: AddType application/x-httpd-php53 .php dla PHP 5.3 i AddType application/x-httpd-php60 .php dla PHP 6.0).
Jeśli podczas kompilacji pojawią się błędy to prawdopodobnie nie masz wszystkich potrzebnych (w zależności jakie funkcjonalności wkompilowujesz w PHP) pakietów zainstalowanych w systemie. Dodatkowo potrzebujesz wczytać moduł mod_action do Apache’a.
Uff..teraz powinno działać – czas sprawdzić w praktyce nowe możliwości języka.