Ho eseguito phpinfo()
e error_log direttiva dice semplicemente error_log
. A che file si riferisce? cioè quale sarebbe il percorso completo per il error_log?Dove vengono registrati gli errori PHP se la direttiva error_log dice semplicemente "error_log"?
risposta
aprire il file php.ini Controllare il percorso contro error_log
questo non dovrebbe hanno ottenuto downvoted, perché questo è corretto utilizzo come previsto. Le persone dovrebbero usare gli strumenti forniti nel modo in cui erano previsti e girare la propria soluzione solo se è inaccessibile o non fornita. Ci sono troppe persone su questo sito che presumono che solo perché non ha risolto il loro problema specifico (e tutti i relativi problemi ma non segnalati) che è automaticamente sbagliato. Questo non è sbagliato, e se non funziona, allora il tuo server è impostato male, che è il tuo vero problema. – mopsyd
Aggiungerei anche se i registri possono anche essere definiti in apache.conf o vhost.conf. – mopsyd
Citazione from the documentation: stringa
error_log
Nome del file in cui gli errori di script dovrebbero essere registrati. Il file dovrebbe essere scrivibile dall'utente del server web. Se viene utilizzato il syslog del valore speciale , gli errori vengono inviati al registratore di sistema . Su Unix, questo significa syslog (3) e su Windows NT significa il registro eventi . Il logger di sistema non è supportato su Windows 95. Vedi anche: syslog(). Se questa direttiva non viene impostata, gli errori vengono inviati al registratore di errori SAPI . Ad esempio, è un log di errore in Apache o stderr nella CLI .
Così, quando il valore non è impostato (che è il default) verrà inviato al registratore errore di genitore, che è apache (se eseguito tramite esso) o stderr
se si esegue lo script da riga di comando .
Se si utilizza lo script tramite apache, sarà necessario consultare il log degli errori di apache, in genere in /var/log/apache
o /var/log/httpd
, a seconda della distribuzione. È possibile controllare il file di configurazione di Apache per la posizione esatta.
Edit:
Ho appena notato ho letto male la tua domanda, penso che vuoi dire error_log
ha il valore effettivo error_log
?
Ho appena fatto alcuni test. Quando imposto error_log
su un valore come php_errors.log
, PHP scrive ancora i messaggi di errore nel log degli errori di apache. Si comporta come se il valore fosse vuoto. Quando imposto il valore su un percorso completo (ad esempio /tmp/php_errors.log
), esso scrive gli errori nel file specificato.
Quindi immagino che nel tuo caso scriva gli errori nel file di registro degli errori di Apache.
Naturalmente è possibile impostare il proprio file di log aggiungerà
ini_set("error_log", "/tmp/php_errors.log");
per i file PHP in cui è necessario (se non è stato disattivato da un amministratore).
non c'è '/ apache' in'/var/log'. ma c'è un 'error_log' in'/usr/local/apache/logs' ma sembra che non mostri alcun errore PHP. quando eseguo la mia pagina PHP sto ricevendo una schermata vuota e voglio sapere l'errore di sintassi. 'display_errors' è disattivato in' php.ini'. – Ryan
dovresti essere in grado di attivare 'display_errors' nel tuo file php stesso. Basta aggiungere 'ini_set (" display_errors ", 1);' all'inizio. –
splendida idea amico – Ryan
Quando il valore dice semplicemente error_log
(o error_log = error_log
nel php.ini
file), questo significa che gli errori sarà scritto in un file chiamato error_log
nella stessa directory in cui si verifica l'errore.
Quindi, se avete un file chiamato index.php
in /home/utente/public_html/ che genera un errore, l'errore verrà scritto: /home/utente/public_html/error_log.
Se si dispone di file chiamato resize.php
in /home/utente/public_html/admin/images/ che genera un errore, poi gli errori verranno scritti: /home/utente/public_html/admin/images/error_log
il sistema operativo è Linux – Ryan