Capitolo 14 · 14.6
Errori dopo un aggiornamento di PHP e come trovare il log degli errori
Lei ha aumentato la versione di PHP e ora il Suo sito web è bianco, mostra un messaggio di errore, oppure una parte non funziona più. Questo è quasi sempre causato da un plugin, un tema o codice personalizzato non compatibile con la nuova versione. Niente panico: può ripristinare la versione precedente in un minuto, e poi con calma scoprire cosa non va.
Passaggio 1: ripristinare la versione precedente
Vada su Select PHP version, selezioni di nuovo la versione che aveva prima e clicchi su Apply (veda Scegliere la versione di PHP (Select PHP version)). Il Suo sito web funzionerà di nuovo immediatamente come prima. Se ha modificato estensioni o opzioni per la nuova versione, queste rimarranno salvate per un prossimo tentativo.
Passaggio 2: cercare il messaggio di errore nel log degli errori
PHP scrive gli errori nel Log degli Errori del Suo dominio. Lì trova esattamente quale file e quale riga causano il problema.
- In DirectAdmin, sotto Informazioni e file di sistema, clicchi su Riepilogo sito e log.
- Presso il Suo dominio, clicchi su Log degli Errori.
- Guardi le ultime righe, in fondo. Cerchi righe con PHP Fatal error, PHP Parse error o PHP Warning (1).

Maggiori informazioni sui log sono disponibili in Riepilogo sito e log: il log degli errori e il log degli accessi.
Passaggio 3: capire il messaggio
Nel messaggio è indicato il percorso del file. Da questo può solitamente individuare quale plugin o tema sia il responsabile. Alcuni esempi:
| Cosa vede nel messaggio | Significato |
|---|---|
| .../wp-content/plugins/nome-del-plugin/... | Quel plugin non funziona con la nuova versione. Lo aggiorni, oppure cerchi un'alternativa se non viene più mantenuto. |
| .../wp-content/themes/nome-del-tema/... | Il Suo tema è troppo vecchio. Lo aggiorni o chieda un aggiornamento all'autore. |
| Call to undefined function mysql_connect() | Codice molto datato che usa ancora le funzioni precedenti a PHP 7. Deve essere riscritto. |
| Call to undefined function con un altro nome di funzione | Spesso manca un'estensione. Verifichi quale estensione corrisponde a quella funzione e la attivi (veda Attivare e disattivare le estensioni PHP). |
| Allowed memory size of ... bytes exhausted | Lo script dispone di troppo poca memoria. Aumenti memory_limit (veda Opzioni PHP: upload_max_filesize, memory_limit e max_execution_time). |
| Maximum execution time of ... seconds exceeded | Lo script ha impiegato troppo tempo. Aumenti max_execution_time, oppure verifichi perché è così lento. |
Passaggio 4: aggiornare e riprovare
- Effettui un backup (veda Backup and Restore: creare autonomamente un backup in DirectAdmin).
- Aggiorni WordPress (o il Suo altro software), il Suo tema e tutti i Suoi plugin, mentre la vecchia versione di PHP è ancora attiva.
- Rimuova i plugin che non utilizza.
- Riattivi la nuova versione di PHP e testi nuovamente il Suo sito web. Controlli di nuovo anche il log degli errori.
Suggerimento: Vuole prima fare dei test senza disagi per i visitatori? Crei con Installatron una copia del Suo sito su un sottodominio (veda Clonazione e creazione di un ambiente di test (staging)) e imposti solo quella cartella sulla nuova versione con .htaccess (veda Impostazioni PHP per cartella e tramite .htaccess).
Mostrare temporaneamente gli errori sulla pagina
Vede solo una schermata bianca e non trova nulla di utile nel log degli errori? Allora può mostrare temporaneamente gli errori sulla pagina stessa. In Select PHP version, nella scheda Options, attivi la casella display_errors. Apra nuovamente la pagina: ora vedrà il messaggio di errore. Subito dopo disattivi di nuovo display_errors, perché un messaggio del genere può mostrare informazioni sul Suo sito web a chiunque.
Se utilizza WordPress, può farlo anche con queste righe nel file wp-config.php, sopra la riga That's all, stop editing!: define('WP_DEBUG', true); e define('WP_DEBUG_LOG', true);. WordPress scriverà quindi gli errori in wp-content/debug.log. Al termine li rimuova nuovamente, oppure li imposti su false.
Preferisce farlo risolvere da noi?
Non ci riesce, oppure il Suo sito web non viene aggiornato da anni? Con l'aggiornamento PHP rendiamo noi il Suo sito web compatibile con una versione aggiornata di PHP, a un prezzo fisso. Se non ci riuscissimo, Le restituiamo il Suo denaro.
