我在共享主机上,有cPanel, Apache, PHP是由FastCGI运行的。PHP在哪里存储错误日志?

是否有其他方法可以在共享主机环境中找到错误日志,而不必通过整个站点结构来查找error_log文件?

我可以访问PHP .ini文件(我使用PHP 5.2.16版本)。


当前回答

默认情况下,PHP似乎不会在任何地方记录错误。在我看到的所有安装中,php.ini中的error_log键都被注释掉了。

通常我:

寻找php.ini文件。找到php . ini。 在这些文件中搜索error_reporting值; 它应该被设置为PHP日志级别的任意组合。 例如:E_ALL & ~E_DEPRECATED & ~E_STRICT 检查error_log值,确保它指向一个实际的位置,没有被注释掉。 默认值没有给出完整的路径,只有一个文件名,我不知道这个路径通常解析到哪里。可能/var/log/.

其他回答

无论你想要它在哪里,如果你在函数调用中设置它:

error_log($errorMessageforLog . "\n", 4, 'somePath/SomeFileName.som');

在命令行中输入cat <file location> | grep ErrorLog在httpd.conf文件中查找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以指定不同的日志文件位置。

您处于共享环境中,无法找到错误日志。总是检查你的cPanel仪表板是否有错误选项。如果您无法找到错误日志,那么您可以在那里找到它。

在cPanel搜索栏中,搜索Error,它将显示Error Pages,这基本上是不同HTTP错误页面的列表,其他Error是错误日志显示的地方。

共享环境中的其他地方:

/ home / yourusername / logs / home / yourusername / public_html error_log

对于PHP-FPM,只需搜索配置文件error_log:

cat /etc/php-fpm.d/www.conf | grep error_log

php_admin_value[error_log] = /var/log/php-fpm/www-error.log

在php.ini中配置错误日志文件时,可以使用绝对路径或相对路径。相对路径将基于生成脚本的位置进行解析,并且您将在拥有脚本的每个目录中获得一个日志文件。如果希望所有错误消息都保存在同一个文件中,请使用该文件的绝对路径。

请参阅错误处理函数。