在哪里可以找到错误日志文件?我需要检查它们,以解决安装suPHP后显示的内部服务器错误。
trnvg8h31#
您可以使用lsof来查找系统中打开的日志文件。lsof只是提供了所有打开文件的列表。对于“log”使用grep ...对于“php”再次使用grep(如果文件名包含字符串“log”和“php”,如“php_error_log”,并且您是root用户,则无需了解配置即可找到这些文件)。第一个另请参阅有关查找打开的日志文件的文章:Find open logfiles on a Linux system
2q5ifsrm2#
如何将所有PHP错误记录到日志文件中?只需在文件 /etc/php.ini 中添加以下行,即可将错误记录到指定的文件- file /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
如何将错误记录到系统日志或Windows Server事件日志?修改 error_log,如下所示:
error_log = syslog
我们怎么能看到日志?使用ssh登录或使用SFTP下载日志文件/var/log/php-scripts. log:
sudo tail -f /var/log/php-scripts.log
envsm3lx3#
在安装了cPanel的CentOS上,我的日志位于:
/usr/local/apache/logs/error_log
观看:tail -f /usr/local/apache/logs/error_log
tail -f /usr/local/apache/logs/error_log
mqxuamgl4#
这取决于您使用的操作系统和Web服务器。在Linux和Apache上,您可以在文件夹 /var/log/apache 2/ 中找到Apache * 错误日志 *。
xeufq47z5#
这对你肯定有帮助,
"或者"在 * php.ini * 中(vim /etc/php.ini * 或 * sudo vim /usr/local/etc/php/7.1/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
bq3bfh9z6#
我使用的是CentOS 6.6和Apache,错误日志文件位于:
/usr/local/apache/log
0s0u357o7#
在大多数用例中,这是一个更好的答案,因为它允许您将软件的执行与对服务器平台的直接了解分离,这使您的代码更易于移植。但可以在web运行时将其设置为cron和CGI脚本从中提取的配置,以在这种情况下保持日志位置一致。在运行时,您可以在任何平台上获取本机分配给PHP的当前日志文件,方法是使用:
ini_get('error_log');
这将返回由Web服务器直接分配给PHP二进制文件的值,这是您在90%的用例中所需要的(CGI是一个明显的例外)。CGI通常会将日志记录到与HTTP Web服务器客户端相同的位置,但并不总是如此。在向其提交任何内容之前,您还需要检查其是否可写,以避免错误。定义其位置的配置文件(通常是全局的文件 apache.conf 或基于每个域的 vhosts.conf),但该配置并不确保文件权限允许在运行时进行写访问。
1wnzp6jl8#
对于Unix CLI用户:
很可能是没有设置 error_log ini文件条目。要验证:
php -i | grep error_log // error_log => no value => no value
您可以在 * php.ini * CLI文件中设置它,或者只是简单地将所有标准错误快速地通过管道传输到一个文件中:
./myprog 2> myerror.log
随即急忙道:
tail -f myerror.log
8条答案
按热度按时间trnvg8h31#
您可以使用lsof来查找系统中打开的日志文件。lsof只是提供了所有打开文件的列表。
对于“log”使用grep ...对于“php”再次使用grep(如果文件名包含字符串“log”和“php”,如“php_error_log”,并且您是root用户,则无需了解配置即可找到这些文件)。
第一个
另请参阅有关查找打开的日志文件的文章:Find open logfiles on a Linux system
2q5ifsrm2#
如何将所有PHP错误记录到日志文件中?
只需在文件 /etc/php.ini 中添加以下行,即可将错误记录到指定的文件- file /var/log/php-scripts.log
修改 error_log 指令:
确保将 display_errors 设置为Off(不会向最终用户显示错误):
储存并关闭档案。重新启动Web服务器:
如何将错误记录到系统日志或Windows Server事件日志?
修改 error_log,如下所示:
我们怎么能看到日志?
使用ssh登录或使用SFTP下载日志文件/var/log/php-scripts. log:
envsm3lx3#
在安装了cPanel的CentOS上,我的日志位于:
观看:
tail -f /usr/local/apache/logs/error_log
mqxuamgl4#
这取决于您使用的操作系统和Web服务器。
在Linux和Apache上,您可以在文件夹 /var/log/apache 2/ 中找到Apache * 错误日志 *。
xeufq47z5#
这对你肯定有帮助,
"或者"
在 * php.ini * 中(
vim /etc/php.ini
* 或 *sudo vim /usr/local/etc/php/7.1/php.ini
)使日志文件可由用户 www-data 写入:
bq3bfh9z6#
我使用的是CentOS 6.6和Apache,错误日志文件位于:
0s0u357o7#
在大多数用例中,这是一个更好的答案,因为它允许您将软件的执行与对服务器平台的直接了解分离,这使您的代码更易于移植。但可以在web运行时将其设置为cron和CGI脚本从中提取的配置,以在这种情况下保持日志位置一致。
在运行时,您可以在任何平台上获取本机分配给PHP的当前日志文件,方法是使用:
这将返回由Web服务器直接分配给PHP二进制文件的值,这是您在90%的用例中所需要的(CGI是一个明显的例外)。CGI通常会将日志记录到与HTTP Web服务器客户端相同的位置,但并不总是如此。
在向其提交任何内容之前,您还需要检查其是否可写,以避免错误。定义其位置的配置文件(通常是全局的文件 apache.conf 或基于每个域的 vhosts.conf),但该配置并不确保文件权限允许在运行时进行写访问。
1wnzp6jl8#
对于Unix CLI用户:
很可能是没有设置 error_log ini文件条目。要验证:
您可以在 * php.ini * CLI文件中设置它,或者只是简单地将所有标准错误快速地通过管道传输到一个文件中:
随即急忙道: