让 PHP FastCGI 进程写入特定的错误日志?

让 PHP FastCGI 进程写入特定的错误日志?

我有一台运行 Lighttpd 的服务器,它为三个用户提供服务域。每个用户都有自己的 PHP FastCGI 进程,用于为所有域提供 PHP 内容。Lighttpd 允许我将每个域的访问日志文件写入唯一的日志文件。我想要将 PHP 错误写入三个不同的日志文件(每个用户一个)。

每个 PHP 进程都在读取自己的 php.ini(这已通过查看phpinfo()输出得到验证)。每个 php.ini 都指定了应写入的日志文件。例如:

error_reporting = E_ALL & ~E_NOTICE
display_errors = 0
log_errors = 1
html_errors = 0
fastcgi.logging = 1
error_log = /var/www/vhosts/example.com/logs/php_errors.log

如果我fastcgi.logging = 1为所有三个用户设置了 PHP 错误,总是转到 Lighttpd 的错误日志。如果我设置,fastcgi.logging = 0PHP 错误将写入系统 STDERR。在这种情况下,我可以将每个 FastCGI 进程的 STDERR 重定向到我喜欢的任何文件,但我会丢失错误的时间戳(这并不理想)。

那么,如何通过 Lighttpd 为我的 PHP FastCGI 进程启用正确的错误日志记录?

答案1

Lighttps 仅支持一个错误日志。但它可以是一个程序!

因此,请尝试将日志记录到您自己的脚本中,该脚本根据您自己的标准拆分错误日志。语法是:

server.errorlog = "|/path/to/script"

相关内容