Wordpress non è una piattaforma famosa per essere particolarmente efficiente e performante. Di release in release il team degli sviluppatori si proccupano di fare tuning, sia a livello di codice che nell’interfacciamento a MySQL.
Nonostante questi sforzi, si può spremere qualcosa in più in termini di performance pure a Wordpress. Le strategie sono due:
- effettuare una copia statica delle pagine;
- cachare ed ottimizzare direttamente il codice php.
La premessa è che si possa avere il controllo del proprio web server: XCache non è un modulo standard di PHP, quindi bisogna installarlo. Vediamo come fare su Ubuntu/Debian.
- Loggatevi come root
- apt-get update
- apt-get install php5-xcache
A questo punto il modulo è installato e troverete il suo file di configurazione in /etc/php5/conf.d Aprite xcache.ini e settate i seguenti attributi
- xcache.admin.user = “$vostro_user_name”
- xcache.admin.pass = “$vostra_password_in_md5″
- xcache.optimizer = On
Il grosso è fatto. Ma vogliamo avere sotto controlo il fuzionamento di XCache. Create un virtual host, per esempio xcache.vostrodominio.it con document root in /usr/share/xcache/admin/
Riavviate Apache e andate a controllare xcache.vostrodominio.it e loggatevi con nume utente e password specificati in xcache.ini (in questo caso la password va inserita ovviamente in chiaro). Dovrebbe essere tutto a posto.
Adesso occupiamoci di Wordpress. Scaricate il plugin XCache for Wordpress nell directory wp-content e scopattatelo. Aprite object-cache.php in un editor di testo e modificate le seguenti riche di codice:
//XCache Admin Username
$_SERVER["PHP_AUTH_USER"] = “$vostro_user_name”;
//XCache Admin Password
$_SERVER["PHP_AUTH_PW"] = “$vostra_password_in_chiaro”;
Fatto questo, riavviate Apache ed avete finito: questo plugin non ha bisogno di essere attivato.
Utilizzando Wordpress 2.6 ho percepito un miglioramento delle performace di 2,5 volte. Senza XCache la homepage di un blog in sviluppo che ho ustato per test veniva servita a 3,5 pagine al secondo; con XCache si è passati a 9 pagine al secondo.
Il resto dei tempi dovrebbero essere per la maggior parte accesso al database.