我有一台运行Lighttpd的服务器,其中有三个用户的服务域。 每个用户都可以获得自己的PHP FastCGIstream程,以在所有域中提供PHP内容。 Lighttpd允许我将每个域的访问日志文件写入唯一的日志文件。 我也想写PHP错误到三个不同的日志文件(每个用户一个)。
每个PHP进程都读取自己的php.ini(这已经通过查看phpinfo()输出来validation)。 每个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进程的STDERRredirect到我喜欢的任何文件,但是我忽略了错误(这不是理想的)。
那么,如何通过Lighttpd为我的PHP FastCGI进程启用正确的错误日志?
Lighttps只支持一个错误日志。 但它可以是一个程序!
所以尝试logging到您自己的脚本,根据您自己的标准分割错误日志。 语法是:
server.errorlog = "|/path/to/script"