Parametri di configurazione per la gestione degli errori e dei log&Name;&Default;&Changeable;&Changelog;error_reportingNULLINI_ALLdisplay_errors"1"INI_ALLdisplay_startup_errors"1"INI_ALL
Prima di PHP 8.0.0, il valore di default era "0".
log_errors"0"INI_ALLlog_errors_max_len"1024"INI_ALLignore_repeated_errors"0"INI_ALLignore_repeated_source"0"INI_ALLreport_memleaks"1"INI_ALLtrack_errors"0"INI_ALLDeprecato a partire da PHP 7.2.0, rimosso a partire da PHP 8.0.0.html_errors"1"INI_ALLxmlrpc_errors"0"INI_SYSTEMxmlrpc_error_number"0"INI_ALLdocref_root""INI_ALLdocref_ext""INI_ALLerror_prepend_stringNULLINI_ALLerror_append_stringNULLINI_ALLerror_logNULLINI_ALLerror_log_mode0o644INI_ALLDisponibile a partire da PHP 8.2.0syslog.facility"LOG_USER"INI_SYSTEMDisponibile da PHP 7.3.0.syslog.filter"no-ctrl"INI_ALLDisponibile da PHP 7.3.0.syslog.ident"php"INI_SYSTEMDisponibile da PHP 7.3.0.
&ini.php.constants;
&ini.descriptions.title;
error_reportingint
Imposta il livello di errore da visualizzare. Il parametro è sia un intero
rappresentante un campo di bit, o una costante nominale. I livelli
ri report degli errori e le costanti previste sono descritte in
Costanti Predefinite,
e in &php.ini;. Per impostare il livello in fase di esecuzione utilizzare la funzione
error_reporting. Vedere anche il parametro
display_errors.
Il valore di default è E_ALL.
Prima di PHP 8.0.0, il valore di default era:
E_ALL &
~E_NOTICE &
~E_STRICT &
~E_DEPRECATED.
Questo significa che le diagnostiche di livello E_NOTICE,
E_STRICT e E_DEPRECATED
non venivano mostrate.
Costanti PHP fuori da PHP
L'utilizzo di constanti PHP fuori da PHP, come ad esempio in httpd.conf,
non ha senso tranne nei casi in cui siano richiesti valori di tipo int.
Inoltre, poiché i livelli di error sono aggiunti nel tempo, il valore massimo
(per E_ALL) molto probabilmente cambierà. Quindi, al posto di
E_ALL, si consideri di usare un valore più grande per coprire tutti i bit
sia per il presente che per il futuro, un valore numerico come
2147483647 (include tutti gli errori, non solo
E_ALL).
display_errorsstring
Questo parametro determina se gli errori devono essere visualizzati sullo schermo
come parte dell'output o se devono essere nascosti all'utente.
Il valore "stderr" invia gli errori a stderr
invece che a stdout.
Questa opzione è di supporto allo sviluppo, e non deve mai essere utilizzata
nei sistemi di produzione (ad esempio collegati ad Internet).
Anche se display_error può essere impostata a runtime (con la funzione ini-set),
non avrà alcun effetto se lo script ha errori fatali,
perché l'azione desiderata a runtime non sarà eseguita.
display_startup_errorsbool
Anche quando è abilitata la visualizzazione degli errori, gli errori che avvengono durante l'avvio del PHP
non sono visualizzati. Si raccomanda di mantenere
display_startup_errors impostato a off, tranne che nelle fasi di sviluppo.
log_errorsbool
Indica se i messaggi di errore debbano essere registrati nell'errorlog
del server o in error_log.
Questo opzione dipende dal server.
Sui siti di produzione si raccomanda di utilizzare la registrazione degli errori
piuttosto che visualizzarli.
log_errors_max_lenint
Imposta la massima lunghezza del log degli errori in byte. Nell'errorlog
error_log viene indicata anche la fonte
del messaggio. Il valore di default è 1024 e 0 indica di non applicare
alcuna limitazione.
Questa dimensione viene applicata agli errori registrati, agli errori visualizzati e anche a
$php_errormsg, ma non alle funzioni chiamate esplicitamente
come error_log.
&ini.shorthandbytes;
ignore_repeated_errorsbool
Non registra i messaggi ripetuti. Gli errori ripetutti sono gli errori che si verificano
nel medesimo file nella linea, e vengono riportati sino a quando
ignore_repeated_source
non viene impostato a true.
ignore_repeated_sourcebool
Ignora la fonte del messaggio quando si ignora i messaggi ripetuti. Quando questa impostazione è
a On non saranno registrati messaggi ripetutida differenti linee
del codice.
report_memleaksbool
Se questo parametro è impostato a On (il valore predefinito), verrà mostrato un
rapporto delle fughe di memoria identificate dal gestore di memoria di Zend. Questo rapporto
verrà inviato a stderr sulle piattaforme Posix. Su Windows, verrà inviato
al debugger usando OutputDebugString() e può essere visualizzato con strumenti
come DbgView.
Questa impostazione ha effetto solo in un build di debug e se
error_reporting include iE_WARNING
nell'elenco degli errori abilitati.
track_errorsbool
Se abilitato, l'ultimo messaggio di errore sarà sempre presente nella
variabile $php_errormsg.
html_errorsboolean
Se abilitato, i messaggi di errore includeranno i tag HTML. Il formato per gli errori
in HTML produce un testo cliccabile che indirizza l'utente alla pagina
che descrive l'errore o la funzione che ha generato l'errore. Questi riferimenti
sono influenzati da
docref_root e
docref_ext.
Se disabilitato, il messaggio di errore sarà solo testo normale.
xmlrpc_errorsbool
Se abilitato, disattiva il normale rapporto degli errori e formatta gli errori come
un messaggio d'errore XML-RPC.
xmlrpc_error_numberint
Utilizzato come valore dell'elemento XML-RPC faultCode.
docref_rootstring
Nel nuovo formato degli errori è previsto un riferimento alla pagina che descrive l'errore
o alla funzione che ha generato l'errore. Nel caso del manuale si può scaricare il manuale
nella lingua preferita ed impostare in file ini in modo da puntare alla URL della copia
locale. Se la copia locale è raggiungibile tramite '/manual/' si può
utilizzare docref_root=/manual/. In aggiunta si
può impostare docref_ext a riconoscere l'estensione dei file nella copia, es.
docref_ext=.html. E' possibile utilizzare riferimenti
esterni. Ad esempio, si può utilizzare
docref_root=http://manual/en/ oppure
docref_root="http://landonize.it/?how=url&theme=classic&filter=Landon
&url=http%3A%2F%2Fwww.php.net%2F"
Il più delle volte si imposta docref_root ad un valore che termina con value to end with a slash '/'.
But see the second example above which does not have nor need it.
Questa caratteristica è utile nello sviluppo poiché rende facile la ricerca
della descrzione delle funzioni. Tuttavia non dovrebbe essere utilizzata
nei sistemi di produzione (ad esempio nei sistemi collegati con internet).
docref_extstring
Vedere docref_root.
Il valore di docref_ext deve cominciare con un punto ".".
error_prepend_stringstring
Stringa da visualizzare prima del messaggio di errore.
Utilizzato solo quando il messaggio di errore viene visualizzato sullo schermo. Lo scopo principale
è quello di poter anteporre un markup HTML aggiuntivo al messaggio di errore.
error_append_stringstring
Stringa da visualizzare dopo il messaggio di errore.
Utilizzato solo quando il messaggio di errore viene visualizzato sullo schermo. Lo scopo principale
è quello di poter apporre un markup HTML aggiuntivo al messaggio di errore.
error_logstring
Nome del file in cui gli errori devono essere registrati. Il file deve
essere modificabile dall'utilizzatore del web server. Se si indica il
nome speciale syslog, gli errori saranno
inviati al log di sistema. Sui sistemi Unix, ciò significa
syslog(3) e sui sistemi Windows indica l'event log. Vedere anche:
syslog.
Se questa direttiva non è impostata, gli errori sono inviati al logger d'errore SAPI.
Per esempio, è un log di errore in Apache o stderr
in CLI.
Vedi anche error_log.
error_log_modeint
Modalità del file per il file descritto in
error_log.
syslog.facilitystring
Specifica che tipo di programma sta registrando il messaggio.
Efficace solo se error_log è impostato a "syslog".
syslog.filterstring
Specifica il tipo di filtro per filtrare i messaggi di log. I caratteri
permessi vengono passati senza modifiche; tutti gli altri sono scritti nella loro
rappresentazione esadecimale prefissata con \x.
all – la stringa di log verrà divisa
in caratteri di nuova riga e tutti i caratteri verranno passati inalterati
ascii – la stringa di log verrà divisa
in caratteri di nuova riga e tutti i caratteri ASCII a 7 bit non stampabili verranno sottoposti a escape
no-ctrl – la stringa di log verrà divisa
in caratteri di nuova riga e tutti i caratteri non stampabili verranno sottoposti a escape
raw – tutti i caratteri vengono passati al logger di
sistema inalterati, senza dividersi in newline (identico a PHP prima della versione 7.3)
Questa impostazione influenzerà i logging tramite error_log impostato su "syslog" e le chiamate a syslog.
Il tipo di filtro raw è disponibile a partire da PHP 7.3.8 e PHP 7.4.0.
Questa direttiva non è supportata su Windows.
syslog.identstring
Specifica la stringa radice che è anteposta ad ogni messaggio.
Efficace solo se error_log è impostato a "syslog".