Где я могу найти файлы журнала ошибок?

Где я могу найти файлы журнала ошибок? Мне нужно проверить их для решения внутренней ошибки сервера, показанной после установки suPHP.

Ответ 1

Вы можете использовать "lsof" для поиска открытых лог файлов в вашей системе. lsof просто дает вам список всех открытых файлов.

Используйте grep для "log"... снова используйте grep для "php" (, если имя файла содержит строки "log" и "php", как в "php_error_log", и вы являетесь пользователем root, вы найдете файлы, не зная конфигурации).

        [email protected]:~# lsof |grep log
        ... snip
        gmain     12148 12274       user   13r      REG              252,1    32768     661814 /home/user/.local/share/gvfs-metadata/home-11ab0393.log
        gmain     12148 12274       user   21r      REG              252,1    32768     662622 /home/user/.local/share/gvfs-metadata/root-56222fe2.log
        gvfs-udis 12246             user  mem       REG              252,1    55384     790567 /lib/x86_64-linux-gnu/libsystemd-login.so.0.7.1
==> apache 12333             user  mem       REG              252,1    55384     790367 /var/log/http/php_error_log**
        ... snip 

        [email protected]:~# lsof |grep log |grep php 
        **apache 12333             user  mem       REG              252,1    55384     790367 /var/log/http/php_error_log**
        ... snip 

Также см. эту статью о поиске открытых лог файлов: Найти открытые лог файлы в системе linux

Ответ 2

Работает для меня. Как регистрировать все ошибки php в log fiie?

Просто добавьте следующую строку в /etc/php.ini для регистрации ошибок в указанном файле -/var/log/php-scripts.log

vi /etc/php.ini

Изменить директиву error_log

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

Убедитесь, что для параметра display_errors установлено значение Выкл. (нет ошибок для конечных пользователей)

display_errors = Off

Сохраните и закройте файл. Перезапустить веб-сервер:

/etc/init.d/httpd restart

Как регистрировать ошибки в syslog или журнале событий Windows Server?

Измените error_log следующим образом:

error_log = syslog

Как узнать журналы?

Login using ssh or download a log file /var/log/php-scripts.log using sftp:
$ sudo tail -f /var/log/php-scripts.log

Ответ 3

Какую ОС вы используете и какой веб-сервер? В Linux и Apache вы можете найти apache error_log в/var/log/apache2/

Ответ 4

В CentoS с cPanel установлены мои журналы:

/usr/local/apache/logs/error_log

Смотреть: tail -f /usr/local/apache/logs/error_log

Ответ 5

Я использую Cent OS 6.6 с Apache, и для меня файлы журнала ошибок находятся в

/USR/локальные/Apache/журнал

Ответ 6

Это предпочтительный ответ в большинстве случаев использования, поскольку он позволяет отделить выполнение программного обеспечения от непосредственного знания серверной платформы, что делает ваш код намного более переносимым. Если вы выполняете много cron/cgi, это может не помочь напрямую, но его можно установить в конфигурацию в веб-среде выполнения, которую скрипты cron/cgi извлекают, чтобы сохранить согласованность журнала в этом случае.


Вы можете получить текущий файл журнала, назначенный изначально на php на любой платформе во время выполнения, используя:

ini_get('error_log');

Это возвращает значение, распространяемое непосредственно в php файл на веб-сервере, что вы хотите в 90% случаев использования (с явным исключением является cgi). Cgi часто регистрируется в том же месте, что и клиент http web-сервера, но не всегда.

Вы также захотите проверить, что он можно записать перед тем, как совершить что-либо, чтобы избежать ошибок. Файл conf, определяющий его местоположение (обычно apache.conf глобально или vhosts.conf для каждого домена), но conf не гарантирует, что разрешения на файлы разрешают доступ на запись во время выполнения.

Ответ 7

Это демонстративно поможет вам,

https://davidwinter.me/enable-php-error-logging/

ИЛИ ЖЕ

В php.ini: (vim/etc/php.ini или Sudo vim/usr/local/etc/php/7.1/php.ini)

display_errors = Off

log_errors = On

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

Сделайте файл журнала и сделайте запись доступной для www-data:

sudo touch/var/log/php-errors.log

/var/log/php-errors.log

Судо Чоун: www

Спасибо,

Ответ 8

Для пользователей Unix Cli:

Скорее всего, запись ini error_log не установлена. Для проверки:

php -i | grep error_log
// error_log => no value => no value

Вы можете установить его в своем файле php.ini cli или просто быстро направить все STDERR в файл:

./myprog 2> myerror.log

Затем быстро:

tail -f myerror.log