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.