Compilare PHP e XCache da sorgenti

Su Debian e Ubuntu si può installare PHP con supporto a XCache dando il comando “apt-get install php5-xcache“, ma non sempre la versione che si trova nei repository è adatta alla nostre esigenze oppure si ha semplicemente bisogno di compilare una propria versione in locale per poi trasferirla in uno spazio Web remoto (UnBit per esempio o Dreamhost sono due hosting che consentono di caricare una versione personalizzata di PHP).

Vediamo come sia possibile compilare e installare PHP in un percorso scelto da noi e come si possa compilare e abilitare XCache in PHP.

Scarichiamo PHP 5.2.13 (ho scelto questa versione di PHP per avere la certezza di poter far girare praticamente qualsiasi CMS moderno), scompattiamo il file compresso e portiamoci all’interno della directory creata. Configuriamo PHP impostando un prefix personalizzato (nell’esempio /accounts/matteo), in modo da non sovrascrivere la versione di PHP installata, e impostando le opzioni più comuni.

L’occorrente per compilare PHP su Ubuntu è ben dettagliato in questo articolo.

./configure --prefix=/accounts/matteo --with-mysql=/usr --with-config-file-path=/accounts/matteo --with-gd --with-curl --with-zlib --with-jpeg-dir --with-ttf --with-gettext --enable-soap --with-xmlrpc --with-openssl --enable-fastcgi --enable-force-cgi-redirect --enable-ftp

Una volta andato a buon fine il ./configure compiliamo i sorgenti e installiamo i binari generati:

make && make install

Copiamo il file “php.ini-dist“, presente nella directory dei sorgenti di PHP, nella cartella /accounts/matteo/etc/ rinominandolo come “php.ini”.

Vediamo ora come compilare XCache. Scarichiamo l’ultima versione disponibile e scompattiamola:

tar jxvf xcache-1.2.2.tar.bz2
Entriamo nella directory creata e prepariamo la compilazione di XCache:

phpize --clean
phpize

Configuriamo XCache dando come percorso la directory in cui abbiamo installato i binari di PHP e compiliamolo:

./configure --enable-xcache --with-php-config=/accounts/matteo/bin/php-config
make && make install

A questo punto integriamo il file .ini di xcache in php.ini

cat xcache.ini >> /accounts/matteo/lib/php.ini
A questo punto modifichiamo php.ini impostando il giusto percorso di xcache.so

nano /accounts/matteo/lib/php.ini

La riga da modificare con il giusto percorso è in corrispondenza di “zend_extension =”

zend_extension = /accounts/matteo/lib/php/extensions/no-debug-non-zts-20100621/xcache.so

Fatto questo potremo provare se la nostra versione di PHP con XCache funzioni a dovere, la cosa più semplice è testarla in locale. Su Ubuntu basterà installare apache2, MySQL (nel caso si voglia installare un CMS) con il comando:

sudo apt-get install apache2-mpm-prefork mysql-server

A questo punto possiamo modificare il file “/etc/apache2/sites-available/default” impostando il percorso della nostra versione di PHP, basterà aggiungere al file le seguenti righe:

ScriptAlias /cgi-bin/ /accounts/matteo/bin/
AddHandler php-script .php
Action php-script /cgi-bin/php-cgi

Per vedere se la nostra versione di PHP è effettivamente utilizzata basterà creare un file PHP, lo chiameremo “test.php”, nella directory “/var/www” e inserire all’interno:


<?php
phpinfo();
?>

Una lettura certamente consigliata, da cui ho preso spunto per questa guida, è l’ottimo post/guida pubblicata su Pank’s Blog.