我应该在哪里找到错误日志文件?
我需要检查它们以解决安装suPHP后出现的内部服务器错误。
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
lsof | grep log | grep php
**apache 12333 user mem REG 252,1 55384 790367 /var/log/http/php_error_log**
... snip
另外,还可以查看有关在Linux系统上查找打开日志文件的文章:在Linux系统上查找打开的日志文件
对我来说很有效。 我们如何将所有PHP错误记录到日志文件中?
只需在文件/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
保存并关闭文件。重启 Web 服务器:
/etc/init.d/httpd restart
如何将错误记录到syslog或Windows Server事件日志?
按照以下方式修改error_log:
error_log = syslog
如何查看日志?
使用SSH登录或使用SFTP下载日志文件 /var/log/php-scripts.log:
sudo tail -f /var/log/php-scripts.log
display_errors
确定错误是否显示给最终用户(例如在呈现的网页上),因此不会影响日志记录。http://php.net/manual/en/errorfunc.configuration.php#ini.display-errors - cincodenada这取决于你使用的操作系统和web服务器。
在Linux和Apache上,你可以在文件夹/var/log/apache2/中找到Apache的error_log。
这一定会对您有所帮助,
或者
在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
sudo chown <owner>:www
您可以通过以下方式在任何平台上在运行时获取分配给PHP的当前日志文件:
ini_get('error_log');
对于Unix CLI用户:
很可能error_log ini文件条目未设置。要验证:
php -i | grep error_log
// error_log => no value => no value
./myprog 2> myerror.log
tail -f myerror.log
我正在使用CentOS 6.6和Apache,对我来说错误日志文件在以下位置:
/usr/local/apache/log
php.ini
中是否设置了error_log
路径。如果未设置,则通常会记录在 Web 服务器的错误日志中。 - air4xphp.ini
中查找error_log
,如果您使用php-fpm
,您可能还想检查 php-fpm 配置文件中的error_log
。 - Nemoden