Implementare un sistema di cache con APC ed Apache2

APC (Alternative PHP Cache) e' un'applicazione open source che consente di mantenere in memoria il bytecode di uno script php. Il bytecode e' il codice eseguibile dalla CPU che viene generato dall'interprete php a partire dal codice sorgente del file. Questa operazione viene eseguita ogni qualvolta viene eseguito uno script php. I benchmark hanno dimostrato che APC e' in grado di velocizzare di circa 3 volte l'esecuzione dei file php. Per installarlo andremo a scaricare il sorgente direttamente dal repository PECL per poi compilarlo. Dovremo quindi installare insieme ad APC anche altri pacchetti come ad esempio il compilatore gcc, delle librerie per lo sviluppo di applicazioni, ecc. Questi cono i comandi:

(CentOS e Fedora)

yum install httpd-devel php-devel php-pear

yum groupinstall 'Development Libraries'

yum groupinstall 'Development Tools'

pecl install apc-beta

 

(Debian ed Ubuntu)

apt-get install php-pear php5-dev apache2-prefork-dev build-essential

pecl install apc-beta

 

Se non ci saranno stati errori nella compilazione avremo installato APC ed i vari file saranno stati copiati nel sistema. Adesso non ci rimane che abilitarlo. Per fare cio' andiamo a creare un file di configurazione nella directory "conf.d" del php (generalmente il percorso e' /etc/php5/conf.d/).
Il file possiamo chiamarlo "apc.ini" e le direttive da memorizzare al suo interno sono queste:

extension=apc.so
apc.enabled=1
apc.enable_cli=1
apc.shm_size=64M
apc.max_file_size=2M

Digitiamo quindi da shell (come utente root) questo:

echo 67108864 > /proc/sys/kernel/shmmax

ed inseriamo alla fine del file /etc/sysctl.conf questo:

kernel.shmmax = 67108864

Non ci rimane che riavviare apache2:

/etc/init.d/httpd restart (su distribuzioni CentOS e Fedora)
/etc/init.d/apache2 restart (su distribuzioni Debian ed Ubuntu)

Per verificare lo stato della cache bastera' copiare il file /usr/share/php/apc.php in una directory del sito e visualizzare la pagina con un browser web.