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.