Где PHP хранит журнал ошибок? (php5, apache, fastcgi, cpanel)

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

Есть ли другой способ найти журнал ошибок в среде общего хостинга вместо необходимости просматривать всю структуру сайта в поисках файлов error_log?

У меня есть доступ к php.ini (я использую PHP версии 5.2.16).


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 ();  ?>  

Попробуйте phpinfo () и проверьте для «error_log»

17


Linux

  php --info |  grep error  

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

Windows

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

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

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

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

  error_log =/log/myCustomLog.log   

Спасибо @chelmertez, @Boom за это (комментарии к вопросу).

6


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

/var/log/httpd/error_log 

Все журналы доступа находятся в:

  /var/log/httpd/access_log 

1


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

  eric @ dev/var $ sudo updatedb [sudo] password  для 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  


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

Обычно я:

  1. ищу файлы php.ini. найдите php.ini .
  2. Найдите в этих файлах значение error_reporting ;

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

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

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

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


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

  error_log =/var/log/php.errors

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

0


Также может быть /var/log/apache2/error.log , если вы работаете в вычислительном движке Google.

И вы можете просмотреть хвост следующим образом:

   tail -f/var/log/apache2/error.log  


  php --info |  grep error  

Это полезно. прокомментировал sjas на вопрос. поэтому я включил его в качестве ответа.

2


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


Лучше всего заглянуть в файл 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/


NGINX обычно хранит его в/var/log/nginx/error.log или access.log. (В Ubuntu в любом случае)


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

Подробнее см. здесь: http://www.php.net/manual/en/ref.errorfunc.php#53025

1


Если вы используете журнал php5-fpm, значение по умолчанию должно быть в

  /var/log/php5-fpm.log  


где бы вы ни захотели, если вы установите его своим вызовом функции: error_log ($ errorMessageforLog. » n», 4, ‘somePath/SomeFileName.som’);


Найдите в файле httpd.conf ErrorLog , запустив cat | grep ErrorLog в командной строке. Например:

  $ cat/etc/apache2/httpd.conf |  grep ErrorLog  

Вывод:

  # ErrorLog: расположение файла журнала ошибок. # Если вы не укажете ErrorLog  директива в  ErrorLog "/private/var/log/apache2/error_log"  

Найдите строку, которая начинается с ErrorLog и там ваш ответ.

Примечание. Для виртуальных хостов вы можете отредактировать файл виртуальных хостов httpd-vhosts.conf , указав другое расположение файла журнала..


Журналы ошибок cPanel находятся в:

/usr/local/cpanel/logs/

/usr/local/apache/logs/

По умолчанию журналы Apche находятся внутри:

/var/log/apache

или

/var/log/apache2

Если кто-то использует настраиваемое расположение журнала, вы можете проверить его, выполнив следующую команду:

cat/etc/apache2/

Если вы получаете сообщение об ошибке, что каталог apache2 не существует, вы можете запустить эту команду, чтобы найти правильное местоположение:

whereis apache

или

whereis apache2


  1. вы можете перейти в папку с журналами проверки файлового менеджера.
  2. проверить файл журнала в папке public_html.
  3. проверить файл «php phpinfo ()», в котором хранится журнал.

Вы находитесь в среде с общим доступом и не можете найти журнал ошибок, всегда проверяйте, есть ли в cPanel параметр Ошибки на панели инструментов cPanel. Если вы не можете найти журнал ошибок, вы можете найти его там.

На панели поиска cPanel, при поиске Ошибка, будут отображаться страницы ошибок, которые в основном представляют собой списки различных страниц ошибок http и Другая ошибка — это то, где отображаются журналы ошибок.

Другие места для просмотра общей среды:/home/yourusername/logs/home/yourusername/public_html/error_log


что-то вроде этого:

  sudo locate error.  журнал |  xargs -IX grep -iH "errorlog" X  

или

  sudo locate error_log |  xargs -IX grep -iH "errorlog" X  

или

  sudo find/-iname "error? log" 2> /dev/null |  xargs -IX grep -iH "errorlog" X  


WordPress будет направлять сообщения error_log () в /wp-content/debug.log , если для WP_DEBUG_LOG установлено значение true .

См. документацию WordPress для WP_DEBUG_LOG


Для PHP-FPM просто найдите в файле конфигурации error_log :

  # cat/etc/php-fpm.d/www.conf |  grep error_logphp_admin_value [error_log] =/var/log/php-fpm/www-error. журнал  


Немного поздно и много замечательных были даны ответы, но я по какой-то причине сохранил их в:

/var/log/php-errors.log

Я использую Ubuntu Server 16.04 и PHP 7.1.28.



Журналы доступа и ошибок

Конфигурация Redhat/Fedora/CentOS

Следующие директивы конфигурации по умолчанию указаны в отсутствие конкретной конфигурации контейнера виртуального хоста для перечисленных дистрибутивов Linux.

Redhat/Fedora/CentOS

Таблица директив по умолчанию

Директива Файл конфигурации Путь/значение
AccessLog /etc/htt pd/conf/httpd.conf /var/log/httpd/access_log
ErrorLog /etc/httpd/conf/httpd.conf /var/log/httpd/error_log
LogLevel /etc/httpd/conf/httpd.conf предупреждение
* LogFormat /etc/httpd/conf/httpd.conf LogFormat «% h% l% u% t«% r »%> s% b«% {Referer} i ”“% {User-Agent} i ”” комбинированныйLogFormat «% h% l% u% t«% r »%> s% b» общий
** LogFormat /etc/httpd/conf/httpd.conf LogFormat «% h% l% u% t«% r »%> s% b «% {Referer} i» «% {User-Agent} i»% I% O »вместе
* CustomLog /etc/httpd/conf/httpd.conf CustomLog «журналы/access_log» объединены

* с условием при загруженном log_config_module.

** При условии загруженного logio_module.

Конфигурация виртуального хоста

Предоставьте контейнер в основной конфигурации/etc/httpd/conf/httpd.conf или указанный файл конфигурации w в каталоге/etc/httpd/conf.d, таком как vhost.conf, который затем читается по умолчанию при запуске сервера.

Оцените статью
clickpad.ru
Добавить комментарий