Jak włączyć błędy PHP na serwerze?

pytanie zadane 28 października 2017 w Programowanie przez użytkownika programer

Chciałbym włączyć logowanie błędów PHP na serwerze, na którym mam zainstalowaną stronę. Strona jest w języku PHP+MySQL.

Z tym że nie chodzi mi o to, żeby błędy wyświetlały się bezpośrednio na stronie, tylko zapisywane były w pliku tekstowym. Tak żebym co jakiś czas sobie mógł sprawdzić, jakie są problemy ze skryptem.

1 odpowiedź

odpowiedź 28 października 2017 przez użytkownika Aleks

Można to w prosty sposób włączyć funkcją dostępną w PHP - error_reporting

Funkcję tą należy umieścić w pliku php.ini, który będzie miał taką postać:

error_reporting = E_ALL & ~E_NOTICE
error_log = /errors.log
log_errors = On

Powyższe linijki kodu włączają wszystkie błędy, które występują w czasie działania skryptu PHP i następnie zapisują je w pliku errors.log

Przykładowy błąd PHP, który znajdziemy w tym pliku:

[13-Sep-2017 16:50:00] PHP Notice:  Undefined offset:  0 in /home/w/plik.php on line 46
[13-Sep-2017 16:50:00] PHP Notice:  Undefined offset:  0 in  /home/w/plik.php on line 46
[13-Sep-2017 16:55:00] PHP Notice:  Undefined offset:  0 in  /home/w/plik.php on line 63
[13-Sep-2017 16:55:00] PHP Notice:  Undefined offset:  0 in  /home/w/plik.php on line 77

Oczywiście zakres błędów można ograniczyć do np. tylko krytycznych. Na powyższym przykładzie, wyświetlają się wszystkie błędy łącznie z tymi dopuszczalnymi.

Lista dostępnych parametrów dla funkcji error_reporting:

E_ERROR
E_WARNING
E_PARSE
E_NOTICE
E_CORE_ERROR
E_CORE_WARNING
E_COMPILE_ERROR
E_COMPILE_WARNING
E_USER_ERROR
E_USER_WARNING
E_USER_NOTICE
E_ALL
E_STRICT
E_RECOVERABLE_ERROR
E_DEPRECATED
E_USER_DEPRECATED

...