Я арендовал виртуальный хостинг и использую Cpanel, Apache, PHP, который работает под управлением fastcgi. Где PHP хранит журнал ошибок?
Есть ли другой способ найти журнал ошибок в среде общего хостинга вместо того, чтобы просматривать всю структуру сайта в поисках файлов error_log?
У меня есть доступ к php.ini (я использую PHP версии 5.2.16).
Ответ 1
PHP сохраняет журналы ошибок в папке /var/log/apache2, если PHP является модулем apache2. Общие хосты часто хранят файлы журналов в подпапке корневого каталога /log. Но, если у вас есть доступ к php.ini файлу, вы можете сделать это:
error_log = /var/log/php-scripts.log
Если вы используете cPanel, главный файл журнала, который вы, вероятно, ищете, хранится (по умолчанию) в:
/usr/local/apache/logs/error_log
Если ничего не помогает, вы можете проверить расположение файла журнала, используя:
<?php phpinfo(); ?>
Ответ 2
В Linux:
php --info | grep error
Терминал выведет местоположение журнала ошибок.
В Windows:
php --info | findstr /r /c:"error_log"
Командная строка выведет местоположение журнала ошибок.
Чтобы установить местоположение журнала:
Откройте php.ini и добавьте следующую строку:
error_log = /log/myCustomLog.log
Ответ 3
В среде LAMP ошибки php по умолчанию направляются в этот файл:
/var/log/httpd/error_log
Все журналы доступа находятся здесь:
/var/log/httpd/access_log
Ответ 4
Как найти журнал ошибок 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
Ответ 5
Необходимо использовать абсолютный путь при установке переменной error_log в вашем файле php.ini, иначе журналы ошибок будут сохраняться в соответствии с вашим относительным путем.
error_log = /var/log/php.errors
Другое решение - написать простой скрипт, который будет перечислять все файлы журналов ошибок из дерева каталогов.
Ответ 6
По умолчанию php нигде не регистрирует журнал ошибок error_log. В php.ini параметр закомментирован во всех установках, которые я видел.
Возможные решения:
ищите файлы php.ini. в locate php.ini;
ищите в этих файлах error_reporting значение;
проверяйте error_log значение, чтобы убедиться, что оно указывает на реальное место и не закомментировано.
Ответ 7
Лучше всего заглянуть в файл 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".
Web