Где PHP хранит журнал ошибок?(php5, apache, fastcgi, cpanel) - PullRequest
361 голосов
/ 26 февраля 2011

Я на виртуальном хостинге и у меня есть Cpanel, Apache, PHP работает под управлением fastcgi.Где PHP хранит журнал ошибок?

Есть ли другой способ найти журнал ошибок в среде общего хостинга, вместо того, чтобы просматривать всю структуру сайта для поиска файлов ошибок?У меня есть доступ к php.ini (я использую PHP версии 5.2.16).

Ответы [ 20 ]

289 голосов
/ 26 февраля 2011

Php хранит журналы ошибок в /var/log/apache2, если php является модулем apache2. Общие хосты часто хранят файлы журналов в вашей корневой папке /log. Но ... если у вас есть доступ к php.ini файлу, вы можете сделать это:

error_log = /var/log/php-scripts.log

Согласно комментарию rinogo : если вы используете cPanel, файл основного журнала, который вы, вероятно, ищете, сохраняется (по умолчанию) на

/usr/local/apache/logs/error_log

Если ничего не помогает, вы можете проверить местоположение файла журнала, используя

<?php phpinfo(); ?>
81 голосов
/ 26 февраля 2011

Попробуйте phpinfo() и проверьте "error_log"

41 голосов
/ 29 января 2016

Linux

php --info | grep error 

Терминал выведет местоположение журнала ошибок.

Windows

php --info | findstr /r /c:"error_log"

Командная строка выведет местоположение журнала ошибок

Чтобы установить местоположение журнала

Откройте php.ini и добавьте следующую строку:

error_log = /log/myCustomLog.log

Спасибо @ chelmertez @ Boom для них (комментарии к вопросу).

29 голосов
/ 20 декабря 2013

В среде LAMP ошибки php по умолчанию направлены на этот файл ниже.

/var/log/httpd/error_log

Все журналы доступа подпадают под:

/var/log/httpd/access_log
16 голосов
/ 07 августа 2014

Как найти журнал ошибок PHP в Linux:

eric@dev /var $ sudo updatedb
[sudo] password for eric:
eric@dev /var $ sudo locate error_log

/var/log/httpd/error_log

Другой эквивалентный способ:

eric@dev /home/eric $ sudo find / -name "error_log" 2>/dev/null

/var/log/httpd/error_log
11 голосов
/ 06 мая 2015

Похоже, что по умолчанию php нигде не регистрирует ошибки , ключ error_log в php.ini комментируется во всех установках, которые я видел.

Обычно я:

  1. ищите файлы php.ini. locate php.ini.
  2. Поиск в этих файлах значения error_reporting;

    Что должно быть установлено на любое объединение уровней php log, вам достаточно. ,

    Например: E_ALL & ~E_DEPRECATED & ~E_STRICT

  3. Проверьте значение error_log, чтобы убедиться, что оно указывает на фактическое место и не закомментировано.

    Значение по умолчанию не дает полный путь, только имя файла, я не знаю, куда обычно разрешается этот путь. Возможно /var/log/.

11 голосов
/ 26 февраля 2011

Вы должны использовать абсолютный путь при установке переменной error_log в файле php.ini, в противном случае журналы ошибок будут сохраняться в соответствии с вашим относительным путем.

error_log = /var/log/php.errors

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

10 голосов
/ 06 июля 2015

Это также может быть /var/log/apache2/error.log, если вы находитесь в Google Compute Engine.

И вы можете посмотреть хвост так:

tail -f /var/log/apache2/error.log
5 голосов
/ 08 января 2015

Лучший способ - заглянуть в файл httpd.conf и посмотреть, что по умолчанию.Он также может быть переопределен вашим конкретным виртуальным хостом.Я начинаю с просмотра /etc/httpd/conf/httpd.conf или /etc/apache2/httpd.conf и ищу error_log.Он может быть указан как / var / log / httpd / error_log или /var/log/apache2/error_log, но также может быть указан просто logs/error_log.

В этом случае это относительный путь, что означаетпод /etc/httpd/logs/error_log.Если вы все еще не можете найти его, проверьте нижнюю часть вашего файла httpd.conf и посмотрите, где находятся ваши виртуальные хосты.Это может быть в /etc/httpd/conf.d/<- как «другой» или «дополнительный».Тогда ваш виртуальный хост может переопределить его с помощью ErrorLog "/path/to/error_log".</p>

5 голосов
/ 13 февраля 2014

Если у вас есть сборка Apache и PHP из исходного кода, тогда журналы ошибок по умолчанию генерируются на вашем ${Apache install dir}/logs/error_log, т. Е. Обычно /usr/local/apache2/logs/error_log. Иначе, если вы установили его из репозитория, вы найдете его в /var/log/apache2/error_log. Вы также можете установить путь в вашем php.ini и проверить его, вызвав phpinfo().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...