it-swarm.com.ru

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

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

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

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

339
PHPLOVER

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

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

81
chelmertz

Linux

php --info | grep error 

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

Windows

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

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

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

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

error_log = /log/myCustomLog.log

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

31
Cullub

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

/var/log/httpd/error_log

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

/var/log/httpd/access_log
28
Allie

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

[email protected] /var $ Sudo updatedb
[Sudo] password for eric:
[email protected] /var $ Sudo locate error_log

/var/log/httpd/error_log

Еще один эквивалентный способ:

[email protected] /home/eric $ Sudo find / -name "error_log" 2>/dev/null

/var/log/httpd/error_log
15
Eric Leschinski

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

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

tail -f /var/log/Apache2/error.log
10
Vivek

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

Вообще я:

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

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

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

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

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

9
ThorSummoner

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

error_log = /var/log/php.errors

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

9
mailo

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

5
Abhishek

Лучший способ - заглянуть в ваш файл 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".

5
Thomas Bennett

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

/var/log/php5-fpm.log
3
mateusz.szymborski

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

3
DarkNeuron

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

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

3
anemone928

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

2
cfphpflex

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

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

Результат:

# ErrorLog: The location of the error log file.
# If you do not specify an ErrorLog directive within a <VirtualHost>
ErrorLog "/private/var/log/Apache2/error_log"

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

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

2
jkdev
  1. вы можете зайти в папку File Manager Check Logs.
  2. проверьте файл журнала в папке public_html.
  3. проверьте файл php phpinfo (), где хранится журнал.
0
Mevil Bhojani
php --info | grep error

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

0
J4GD33P 51NGH

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

/ USR/местные/Cpanel/журналы /

/ USR/местные/Apache/журналы /

По умолчанию журналы Apche расположены внутри:

/ Вар/Журнал/Apache

или же

/ Вар/Журнал/Apache2

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

cat/etc/Apache2 / conf / httpd.conf | grep ErrorLog

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

где Apache

или же

где Apache2

0
Dewlance

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

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

Другие места для поиска в общей среде:/home/имя пользователя/журналы/home/имя пользователя/public_html/error_log

0
Krishna Pariyar