如何将 PHP error_log 错误消息记录到 Apache 服务器 error_log?

Posted

技术标签:

【中文标题】如何将 PHP error_log 错误消息记录到 Apache 服务器 error_log?【英文标题】:How to log an PHP error_log error message to Apache server error_log? 【发布时间】:2016-01-24 00:51:39 【问题描述】:

我正在运行一个带有 cPanel 的 VPS 服务器。我已将所有 Apache 服务器错误设置为记录到 /usr/local/apache/logs/error_log。

可以将错误消息记录到 Apache 错误日志,而不是 /home/user/public_html/error_log.log 中的用户 php 相关 error_log

我有这个用于测试的 sn-p,但我得到的只是我的自定义 error_log 消息,它记录在我的 public_html/ 内的 error_log 文件中,而不是 Apache error_log 中。

<?php

/**
 *
 * Logs a message to Apache server error_log at /usr/local/apache/logs/error_log
 * 
 * 
 */

error_log("Just a ordinary Apache error_log for testing", 0, "/usr/local/apache/logs/error_log.log") // logs to user error_log in public_html/

这可能吗?

【问题讨论】:

【参考方案1】:

在您的 Web 根目录中使用 apache .htaccess 文件来记录所有错误和警告。

.htaccess 文件内:

php_flag  log_errors on
php_value error_log  /usr/local/apache/logs/error_log.log

通过这种方式,您不必为每个错误发生编写代码。 Appache 会自动将所有错误和警告记录到您指定的错误日志文件中。

希望这会有所帮助。

【讨论】:

注意:请记住为您的日志文件提供必要的写入权限。我建议给 0777。 它有帮助,但是使用 suPHP 处理程序和 CloudLinux 运行 PHP 需要一些解决方法来在 PHP 配置中注册全局变量,以使用 php_flag 和 php_value 指令。

以上是关于如何将 PHP error_log 错误消息记录到 Apache 服务器 error_log?的主要内容,如果未能解决你的问题,请参考以下文章

使用 error_log() 通过电子邮件发送错误消息

如何将错误和警告记录到文件中?

如何开启PHP日志功能?

PHP配置文件中与错误相关选项

将所有 PHP 错误输出到数据库而不是 error_log

PHP error_log 方法不会将错误写入我的错误日志文件