Menu
Hosting Wordpress

Come configurare PHP per ottenere il massimo da WordPress

Gianluca Gentile · · 6 min di lettura

Come configurare PHP per ottenere il massimo da WordPress

WordPress è un’applicazione PHP e le prestazioni del tuo sito dipendono direttamente dalla configurazione di PHP sul server. Impostazioni come la versione di PHP, i limiti di memoria, il tempo massimo di esecuzione e le estensioni attive influenzano la velocità, la stabilità e le funzionalità del sito. In questa guida ti mostro le impostazioni PHP ottimali per WordPress e come configurarle sul tuo hosting.

Quale versione di PHP usare

La scelta della versione di PHP è l’impostazione più impattante sulle prestazioni. Ogni nuova versione di PHP introduce miglioramenti significativi nella velocità di esecuzione:

  • PHP 8.3 (la più recente stabile) è la versione consigliata. Offre le migliori prestazioni, il minor consumo di memoria e le funzionalità di sicurezza più aggiornate.
  • PHP 8.2 è un’ottima alternativa se qualche plugin non supporta ancora PHP 8.3.
  • PHP 8.1 è accettabile ma in End of Life per il supporto di sicurezza. Pianifica l’aggiornamento.
  • PHP 7.4 e inferiori non ricevono più aggiornamenti di sicurezza. Aggiornare è urgente.

Per verificare la versione attuale, vai su Strumenti → Salute del sito → Informazioni → Server nella dashboard di WordPress. Per cambiare versione, accedi al pannello del tuo hosting: Plesk offre la selezione nella sezione PHP del dominio, cPanel nella sezione “Select PHP Version”.

Prima di aggiornare: testa la nuova versione su un ambiente di staging. La maggior parte dei problemi di compatibilità genera errori fatali immediatamente visibili. Plugin obsoleti o abbandonati sono i principali responsabili di incompatibilità.

Limiti di memoria PHP

Il memory_limit definisce quanta RAM PHP può usare per eseguire un singolo script. WordPress consiglia un minimo di 128MB, ma per un funzionamento ottimale con plugin e WooCommerce servono almeno 256MB.

Se il limite è troppo basso, vedrai errori come “Allowed memory size exhausted” o il sito si bloccherà durante operazioni pesanti come importazioni, aggiornamenti di massa o generazione di report WooCommerce.

Per aumentare il limite, hai tre opzioni (in ordine di priorità):

  1. Dal pannello hosting: Plesk e cPanel permettono di modificare il memory_limit dalla sezione PHP del dominio.
  2. Nel file php.ini: aggiungi o modifica la riga memory_limit = 256M.
  3. In wp-config.php: aggiungi define(‘WP_MEMORY_LIMIT’, ‘256M’); — questo sovrascrive il limite solo per WordPress.

Non impostare valori eccessivi come 1024M o unlimited: se uno script ha un memory leak, consumerà tutta la RAM del server causando problemi a tutti i siti ospitati.

Tempo massimo di esecuzione

Il max_execution_time definisce quanti secondi uno script PHP può girare prima di essere interrotto. Il valore predefinito è 30 secondi, sufficiente per il normale funzionamento del sito. Ma alcune operazioni richiedono più tempo: aggiornamenti di plugin, importazioni di contenuti, backup e operazioni WooCommerce di massa.

Il valore consigliato per WordPress è 300 secondi (5 minuti). Puoi impostarlo nel php.ini:

max_execution_time = 300

Se un’operazione richiede più di 5 minuti, il problema non è il timeout ma l’operazione stessa che andrebbe eseguita in modo diverso (WP-CLI via SSH per importazioni massive, ad esempio).

Dimensione massima degli upload

Due impostazioni PHP controllano la dimensione massima dei file caricabili: upload_max_filesize e post_max_size. La prima definisce la dimensione massima di un singolo file, la seconda la dimensione massima totale di una richiesta POST (che deve essere maggiore o uguale a upload_max_filesize).

Il valore predefinito è spesso 2MB, insufficiente per immagini ad alta risoluzione, video o backup. Per un sito WordPress standard:

upload_max_filesize = 64M
post_max_size = 128M

Per WooCommerce con cataloghi importabili via CSV o siti con gallerie fotografiche, puoi aumentare a 128M e 256M rispettivamente. Ricorda che questi limiti influenzano anche l’importazione di plugin e temi come file ZIP dalla dashboard.

OPcache: la cache che conta davvero

OPcache memorizza il bytecode compilato degli script PHP, eliminando la necessità di ricompilare ogni file a ogni richiesta. L’impatto sulle prestazioni è enorme: il TTFB può dimezzarsi semplicemente attivando OPcache con le impostazioni corrette.

Le impostazioni consigliate per WordPress nel php.ini:

opcache.enable=1
opcache.memory_consumption=256
opcache.interned_strings_buffer=16
opcache.max_accelerated_files=10000
opcache.revalidate_freq=60
opcache.save_comments=1
opcache.enable_cli=0

I valori chiave: memory_consumption definisce quanta RAM dedicare alla cache (256MB è sufficiente per la maggior parte dei siti), max_accelerated_files il numero massimo di file cachabili (WordPress con plugin può avere oltre 5000 file PHP) e revalidate_freq ogni quanti secondi verificare se i file sono stati modificati (60 secondi è un buon compromesso tra prestazioni e reattività alle modifiche).

save_comments deve essere 1 perché molti framework PHP (e alcune funzionalità di WordPress) usano le annotazioni nei commenti del codice.

Estensioni PHP necessarie per WordPress

WordPress richiede alcune estensioni PHP per funzionare correttamente. La maggior parte è installata di default, ma su VPS o server personalizzati potrebbe mancare qualcosa:

  • Obbligatorie: mysqli (connessione al database), json, curl, dom, exif, fileinfo, mbstring, openssl, xml, zip.
  • Consigliate: imagick (elaborazione immagini avanzata, migliore di GD), intl (gestione delle lingue e localizzazione), sodium (crittografia moderna).
  • Per WooCommerce: tutte le precedenti più soap (per alcuni gateway di pagamento) e bcmath (calcoli di precisione per i prezzi).

Puoi verificare le estensioni attive dalla pagina Strumenti → Salute del sito nella dashboard. WordPress segnala automaticamente le estensioni mancanti o raccomandate.

PHP-FPM vs mod_php

Il modo in cui PHP viene eseguito dal server web influisce sulle prestazioni e sulla sicurezza:

  • mod_php: PHP gira come modulo di Apache. Semplice ma inefficiente: ogni processo Apache carica PHP in memoria anche per servire file statici (immagini, CSS, JS).
  • PHP-FPM (FastCGI Process Manager): PHP gira come processo separato, comunicando con il web server tramite FastCGI. Più efficiente nell’uso della memoria, più sicuro (processi isolati) e configurabile per pool di risorse dedicati a ogni sito.

PHP-FPM è la scelta consigliata per qualsiasi sito WordPress in produzione. Su Plesk è l’opzione predefinita. Su cPanel è selezionabile come “PHP-FPM” nelle impostazioni PHP del dominio. Su Nginx, PHP-FPM è l’unica opzione (Nginx non supporta mod_php).

Impostazioni di sicurezza PHP

Alcune impostazioni PHP migliorano la sicurezza del sito WordPress:

expose_php = Off
display_errors = Off
log_errors = On
error_log = /var/log/php/error.log
allow_url_fopen = On
allow_url_include = Off
disable_functions = exec,passthru,shell_exec,system,proc_open,popen

expose_php = Off nasconde la versione di PHP dagli header HTTP. display_errors = Off evita di mostrare errori dettagliati ai visitatori. allow_url_include = Off impedisce l’inclusione di file remoti, un vettore di attacco comune. Le funzioni disabilitate in disable_functions impediscono l’esecuzione di comandi di sistema da PHP — utile per prevenire danni in caso di compromissione di un plugin.

Attenzione: allow_url_fopen deve rimanere On perché WordPress la usa per gli aggiornamenti e per comunicare con le API esterne. Le funzioni in disable_functions vanno calibrate: alcuni plugin legittimi (backup, WP-CLI) potrebbero aver bisogno di exec o proc_open.

Hai bisogno di ottimizzare la configurazione PHP?

La configurazione PHP ottimale dipende dal tipo di sito, dai plugin installati, dal traffico e dall’hosting utilizzato. Un’impostazione sbagliata può causare errori, rallentamenti o problemi di sicurezza. Se vuoi che il tuo sito WordPress sfrutti al massimo le capacità del server, il team di SoccorsoWP può analizzare la configurazione attuale, ottimizzare tutti i parametri PHP e verificare che tutto funzioni perfettamente. Apri un ticket e ottieni prestazioni ottimali.

Condividi:

Lascia un commento