我有一台运行 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 = 0
PHP 错误将写入系统 STDERR。在这种情况下,我可以将每个 FastCGI 进程的 STDERR 重定向到我喜欢的任何文件,但我会丢失错误的时间戳(这并不理想)。
那么,如何通过 Lighttpd 为我的 PHP FastCGI 进程启用正确的错误日志记录?
答案1
Lighttps 仅支持一个错误日志。但它可以是一个程序!
因此,请尝试将日志记录到您自己的脚本中,该脚本根据您自己的标准拆分错误日志。语法是:
server.errorlog = "|/path/to/script"