Introduzione
In questo tutorial, spiegheremo tutti i diversi modi per abilitare errori e avvisi PHP. Potresti riscontrare problemi con la tua applicazione web PHP e devi visualizzare tutti gli errori e gli avvisi. Vedremo anche come scrivere gli errori in un file di registro.
È molto comune per tutti gli sviluppatori fare un errore durante lo sviluppo, che si tradurrà in White Screen of Death (WSOD), perché probabilmente la segnalazione degli errori PHP è disattivata.
Vediamo tre modi diversi per visualizzare gli errori di PHP.
- Aggiungendo delle righe di codice al nostro file php.
- Modificando il file di configurazione principale di PHP:
php.ini
- Visualizzare gli errori utilizzando il file
.htaccess
.
Mostrare tutti gli errori PHP
Il modo più rapido per visualizzare tutti gli errori e gli avvisi di php è aggiungere queste righe al file PHP:
<?php
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);
/* ... il resto del tuo file ... */
?>
La funzione ini_set
proverà a sovrascrivere la configurazione trovata nel tuo file ini PHP.
Display_errors
e display_startup_errors
sono solo due delle direttive disponibili. La direttiva display_errors determinerà se gli errori verranno visualizzati o nascosti all'utente. Di solito, la direttiva dispay_errors dovrebbe essere disattivata dopo lo sviluppo.
Display_startup_errors, tuttavia, è una direttiva separata perché display_errors non gestisce gli errori che verranno riscontrati durante la sequenza di avvio di PHP.
Configurare il file php.ini per visualizzare gli errori
Ecco come è possibile abilitare la segnalazione degli errori utilizzando il file php.ini. Bisogna trovare il file php.ini in base alla tua configurazione software e distribuzione linux che stai utilizzando.
Il file php.ini potrebbe trovasi nella directory /etc/php/7.x/apache2/php.ini
se utilizzi apache2, in /etc/php/7.x/fpm/php.ini
se hai installato php-fpm, oppure in /etc/php.ini
. Potrebbe trovarsi anche in altri percorsi se hai scelto di installare PHP in una directory personalizzata.
Con 7.x si intende una qualsiasi versione di PHP. Sul tuo sistema potrebbe essere installata una versione differente, quindi il percorso del file è diverso.
Una volta trovato il file, aprilo con il tuo editor di testo, in questo caso utilizziamo nano:
sudo nano /etc/php/7.2/apache2/php.ini
Trova e modifica i parametri display_errors
impostandolo su on
, e il parametro error_reporting
su E_ALL
:
error_reporting = E_ALL
display_errors = on
Queste configurazioni devono essere disattivate, se l'applicazione Web è in produzione.
Visualizzare errori PHP tramite il file .htaccess
Gli sviluppatori di solito hanno accesso ai file nella directory root (la cartella principale in cui viene generalmente caricato il sito web). La direttiva per mostrare gli errori PHP può anche essere abilitata o disabilitata usando il file .htaccess
che si trova nella directory principale o pubblica del progetto.
Per visualizzare gli errori di PHP usando il file .htaccess
è necessario aggiungere le seguenti righe nel file:
php_flag display_startup_errors on
php_flag display_errors on
Il vantaggio di mostrare o disabilitare i messaggi di errore in questo modo è che lo sviluppo e la produzione possono avere diversi file .htaccess. Inoltre molti provider di hosting non ti permetteranno di modificare il tuo file php.ini
per abilitare display_errors.
Nel file .htaccess, è anche possibile abilitare un registro degli errori personalizzato purché la cartella di registro o il file di registro sia scrivibile dal server Web. Il file di registro può essere un percorso relativo dove si trova il file .htaccess
oppure può essere un percorso assoluto.
php_value error_log logs/all_errors.log
Conclusione
In questo tutorial abbiamo visto come visualizzare gli errori di PHP con tre metodi diversi. Abilitando gli errori con il codice PHP nei nostri file .php, utilizzando il file di configurazione principale php.ini, ed infine inserendo dei parametri nel file .htaccess.