Come configurare OPCache per PHP

OPCache è un ottimizzatore PHP molto sfruttato per via della sua relativa facilità d’uso, e rende i siti web tendenzialmente più veloci di quanto non sarebbero con la versione di PHP standard. La necessità di ricorrere a OPCache in PHP nasce da un requisito storicamente molto criticato del PHP stesso, ovvero il fatto che sia un linguaggio interpretato: in altri termini, al momento dell’esecuzione di uno script PHP (parte del processo di uso di WordPress o “in solitaria”) uno stesso frammento può essere compilato ed interpretato più volte, comportando un potenziale spreco di risorse (RAM e CPU).

Requisiti

Utilizzare PHP versione 7.4 o successive. Per verificare la versione di PHP utilizzata potete verificarlo dal cPanel del vostro sito (o dal Plesk, a seconda dei casi), oppure con il comando da terminale

php -v

che dovrà restituire una versione almeno 5.5.0. Se non ce l’avete, dovreste aggiornare PHP all’ultima versione seguendo la guida che ho appena linkato in questo articolo.

Vantaggi di OpCache

OPcache è un modulo che migliora le performance di PHP sfruttando una complessa architettura informatica precompilata, riducendo il numero di volte in cui, durante il caricamento di una pagina, PHP ha bisogno di richiamare più volte gli stessi script. Si tratta quindi di un’ottimizzatore automatizzato per il codice PHP, che potete usare anche in WordPress allo scopo di provare a migliorare i tempi di caricamento e, in alcuni casi, anche il PageSpeed Insights.

Installare OpCache

OpCache potrebbe non essere disponibile nel vostro servizio di hosting, per cui andrebbe richiesto al servizio stesso di abilitarvelo. Cosa che potete fare anche da VPS, volendo, seguendo la procedura seguente.

Enabling OPcache

Per abilitare OPcache, dopo aver installato l’ultima versione di PHP disponibile (poniamo che sia la 7.4, ad esempio) andiamo ad editare il file PHP.ini con l’editor SSH nano:

sudo nano /etc/php/7.4/apache2/php.ini

Se usate NGINX o comunque PHP-FPM, invece:

sudo nano /etc/php/7.4/fpm/php.ini

Abilitare OPcache è molto semplice: cercate questa riga

;opcache.enable=0

e sostituitela con quest’altra

opcache.enable=1

facendo attenzione a togliere di mezzo il ; iniziale, qualora fosse presente. Usciamo da nano (CTRL X) e poi  riavviamo Apache:

sudo service apache2 restart

oppure Nginx, a seconda di quello che usate

sudo service nginx restart

Per verificare che OPcache funzioni correttamente, andate a creare un file phpinfo.php nella root del vostro sito (ad esempio (/var/www/html) inserite il seguente codice:

<?php phpinfo(); ?>

uscite dall’editor, salvando prima di uscire, e provate ad aprire il file tuosito.com/phpinfo.php; dovreste vedere da qui una sezione OpCache che confermerà che è tutto ok e funzionante.

Configurare OpCache con WordPress

Potete installare e gestire OpCache in WordPress in modo automatico, con il controllo sulla flush della cache, sfruttando il plugin gratuito:

WP OpCache

Configurare OpCache nel dettaglio

Per garantire buoni livelli di performance del sito, è consigliabile inserire le seguenti direttive nel file PHP.ini:

opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=60
opcache.fast_shutdown=1
opcache.enable_cli=1

Per sapere quale file PHP.ini modificare e dove si trova, basta verificare mediante il comando phpinfo() che restituisce, tra l’altro, il path correntemente usato dal sistema per il file PHP.ini.  Altri piccoli miglioramenti si possono ottenere sfruttando le seguenti dritte di massima, che restano ovviamente valide solo come indicazione generale:

; da tarare sul numero di file di WordPress effettivi presenti nel sito: contiamoli
sfruttando il comando find . -type f -iname *.php | wc -l
opcache.max_accelerated_files=9500
; queste sono impostazioni da testare su una droplet VPS con 1 GB di RAM, ad esempio
opcache.memory_consumption=192
opcache.interned_strings_buffer=8

Su altre guide alla configurazione di opcache, consigliano queste impostazioni:

opcache.revalidate_freq=0
opcache.validate_timestamps=0
opcache.max_accelerated_files=7963
opcache.memory_consumption=192
opcache.interned_strings_buffer=16
opcache.fast_shutdown=1
0 voti
Pubblicato in GuideTaggato Ultimo aggiornamento: 25 Ottobre 2020