将 PHP 错误记录到 Drupal 网站的自定义文件中

Posted

技术标签:

【中文标题】将 PHP 错误记录到 Drupal 网站的自定义文件中【英文标题】:Logging PHP errors to a custom file for a Drupal website 【发布时间】:2020-01-12 05:08:07 【问题描述】:

我在 CentOS 7 中设置了一个带有多个虚拟主机的网络服务器,其中包括一个 drupal 网站。我想记录我的 Drupal 网站的 php 错误,例如将“mysite”写入自定义文件 /var/log/httpd/mysite_error.log。我已经在虚拟主机的 httpd conf 文件中进行了设置(这对非 Drupal 站点有效),但错误仍然记录到 /var/log/php_error.log。

虚拟主机mysite的httpd conf文件(/etc/httpd/sites-available/mysite):

<VirtualHost *:80>
    ServerName mysite
    DocumentRoot /var/www/html/mysite/
    <Directory "/var/www/html/mysite">
        AllowOverride All
    </Directory>
    ErrorLog /var/log/httpd/mysite_error.log
    CustomLog /var/log/httpd/error_log combined
</VirtualHost>

【问题讨论】:

Drupal 也会为他自己记录错误。您是否检查了报告 -> 最近的日志消息?也许这对你有帮助? 【参考方案1】:

您只是在定义 Apache 错误日志。对于 php,您需要 php_value error_log /path/to.log

在error_log per Virtual Host?查看最多投票的答案

【讨论】:

【参考方案2】:

对于 PHP 错误,您也必须配置它们,它们不是您在此处声明的 ErrorLog 或 CustomLog,它们是服务器日志。 php 错误变量以 php_value 或 php_flag 开头。

<VirtualHost *:80>
    ServerName mysite
    DocumentRoot /var/www/html/mysite/
    <Directory "/var/www/html/mysite">
        AllowOverride All
    </Directory>
    ErrorLog /var/log/httpd/mysite_error.log
    CustomLog /var/log/httpd/error_log combined
    php_flag log_errors on
    php_flag display_errors on
    php_value error_reporting 2147483647
    php_value error_log /var/www/domains/example.com/php.error.log
</VirtualHost>

【讨论】:

以上是关于将 PHP 错误记录到 Drupal 网站的自定义文件中的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Drupal 中显示一个简单的自定义页面?

用于 drupal 视图的自定义 page.tpl.php

Drupal 自定义模块返回错误的标题

Drupal 视图中的自定义排序

分类的自定义 url > Drupal 6 的词汇表

如何在drupal中记录错误消息