在哪里可以找到错误日志文件?我需要检查它们以解决安装suPHP后显示的内部服务器错误。
答案 0 :(得分:23)
您可以使用" lsof"在您的系统上查找打开的日志文件。 lsof只是为您提供所有打开文件的列表。
使用grep for" log" ...再次使用grep for" php" (如果文件名包含字符串" log"和" php"喜欢" php_error_log"并且您是root用户,您将在不知道的情况下找到文件构造强>)。
root@lnx-work:~# 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
root@lnx-work:~# lsof |grep log |grep php
**apache 12333 user mem REG 252,1 55384 790367 /var/log/http/php_error_log**
... snip
另见本文关于查找打开的日志文件: Find open logfiles on a linux system
答案 1 :(得分:12)
适合我。如何将所有php错误记录到日志文件中?
只需在/etc/php.ini中添加以下行即可将错误记录到指定文件 - /var/log/php-scripts.log
vi /etc/php.ini
修改error_log指令
error_log = /var/log/php-scripts.log
确保display_errors设置为Off(对最终用户没有错误)
display_errors = Off
保存并关闭文件。重新启动Web服务器:
/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
答案 2 :(得分:4)
您使用的是哪种操作系统以及哪种Web服务器?在Linux和Apache上,您可以在/ var / log / apache2 /
中找到apache error_log答案 3 :(得分:4)
在安装了cPanel的CentoS上,我的日志位于:
/usr/local/apache/logs/error_log
观看:tail -f /usr/local/apache/logs/error_log
答案 4 :(得分:1)
我正在使用 Cent OS 6.6 与 Apache ,对我来说错误日志文件在
的/ usr /本地/ Apache /日志
答案 5 :(得分:1)
在大多数用例中,这是一个优选的答案,因为它允许您将软件的执行与服务器平台的直接知识分离,从而使代码更加便携。如果您正在执行大量的cron / cgi,这可能无法直接帮助,但可以在Web运行时将其设置为cron / cgi脚本从中拉出以保持日志位置在这种情况下保持一致。
您可以使用以下命令获取在运行时在任何平台上本地分配给php的当前日志文件:
ini_get('error_log');
这将返回由Web服务器直接分发给php二进制文件的值,这是你想要的90%的用例(明显的例外是cgi)。 Cgi通常会登录到与http webserver客户端相同的位置,但并非总是如此。
您还需要在向其提交任何内容之前检查它是否可写,以避免错误。定义它的位置的conf文件(通常是基于每个域的apache.conf或vhosts.conf),但conf不能确保文件权限允许在运行时进行写访问。
答案 6 :(得分:0)
这将极大地帮助您
https://davidwinter.me/enable-php-error-logging/
OR
在php.ini中:(vim /etc/php.ini或Sudo vim /usr/local/etc/php/7.1/php.ini)
display_errors =关闭
log_errors =开
error_log = /var/log/php-errors.log
制作日志文件,并可通过www-data写入:
sudo touch /var/log/php-errors.log
/var/log/php-errors.log
sudo chown:www
谢谢
答案 7 :(得分:0)
对于UNIX CLI用户:
很可能未设置error_log ini条目。要验证:
php -i | grep error_log
// error_log => no value => no value
您可以在php.ini cli文件中进行设置,也可以直接将自己所有的 STDERR 管道传输到文件中:
./myprog 2> myerror.log
然后迅速:
tail -f myerror.log