Я запустил phpinfo(), а в директиве error_log просто написано error_log. К какому файлу это относится? т.е. каков будет полный путь к error_log ?

9
Ryan 25 Апр 2014 в 10:48

4 ответа

Лучший ответ

Когда значение просто говорит error_log (или error_log = error_log в вашем файле php.ini), это означает, что ошибки будут записаны в файл с именем error_log в том же каталоге, что и ошибка. имеет место.

Итак, если у вас есть файл с именем index.php в / home / user / public_html / , который вызывает ошибку, ошибка будет записана в: / home / user / public_html / error_log .

Если у вас есть файл с именем resize.php в / home / user / public_html / admin / images / , который вызывает ошибку, то ошибки будут записаны в: / home / user / public_html / admin / images / error_log


Источник: отображать и регистрировать ошибки для PHP

4
Michael Yaeger 27 Май 2017 в 14:48

Цитируйте из документации:

error_log строка

Имя файла, в котором должны регистрироваться ошибки скрипта. Файл должен быть доступен для записи пользователю веб-сервера. Если используется специальное значение syslog, вместо этого сообщения об ошибках отправляются в системный журнал. В Unix это означает системный журнал (3), а в Windows NT - журнал событий. Системный журнал не поддерживается в Windows 95. См. Также: syslog (). Если эта директива не установлена, ошибки отправляются в журнал ошибок SAPI. Например, это журнал ошибок в Apache или stderr в CLI.

Итак, если значение не установлено (по умолчанию), оно будет отправлено в родительский регистратор ошибок, которым является apache (если он запускается через него) или stderr, если вы запускаете сценарий в командной строке.

Если вы используете сценарий через apache, вам нужно будет просмотреть журнал ошибок apache, обычно в /var/log/apache или /var/log/httpd, в зависимости от вашего дистрибутива. Вы можете проверить точное местоположение файла конфигурации apache.

Изменить:

Я только что заметил, что неправильно понял ваш вопрос. Я полагаю, вы имеете в виду, что error_log имеет действительное значение error_log?

Я только что провел небольшое тестирование. Когда я устанавливаю для error_log значение, подобное php_errors.log, PHP по-прежнему записывает сообщения об ошибках в журнал ошибок apache. Он ведет себя так, как если бы значение было пустым. Когда я устанавливаю в качестве значения полный путь (например, /tmp/php_errors.log), он записывает ошибки в указанный файл.

Итак, я думаю, в вашем случае он записывает ошибки в файл журнала ошибок apache.

Конечно, вы можете создать свой собственный файл журнала, добавляя

ini_set("error_log", "/tmp/php_errors.log");

В ваши файлы PHP, где он вам нужен (если он не отключен администратором).

12
Gerald Schneider 25 Апр 2014 в 07:34

В Windows 10 - IIS 10.0.18362.1,
Я установил в php\php.ini:

error_log = "C:\tmp\php_errors.log"  

Или

error_log = C:\tmp\php_errors.log  

Или

error_log = \tmp\php_errors.log  

Phpinfo () показывает:

error_log C: \ tmp \ php_errors.log или \ tmp \ php_errors.log

Иногда сразу, но всегда после iisreset (перезапуск пула приложений).

Вот где сохраняется файл.

Без прокладки: error_log = php_errors.log будет написано, где возникла ошибка. Уже упоминалось.

0
SherylHohman 5 Апр 2020 в 19:57

Откройте файл php.ini. Проверьте путь на error_log.

-1
Sudhir Mane 25 Апр 2014 в 06:53