我已经尝试了很多东西,但不能够使错误日志工作,但访问日志工作正常。
这里提到的解决scheme不适合我:
http://mailman.nginx.org/pipermail/nginx/2009-February/009567.html (试图把错误作为error_log婴儿车 – 没有运气)
http://forum.nginx.org/read.php?2,58447,58447 (停止nginx后不要过时)
这里是虚拟主机信息:
server { server_name .qa.domain.ca; root /var/www/qa.domain.ca; access_log /var/log/nginx/qa.domain.ca/access.log; error_log /var/log/nginx/qa.domain.ca/error.log; index index.html index.htm index.php; # redirect to non-www if ($host ~* ^www\.(.*)){ set $host_without_www $1; rewrite ^/(.*)$ $scheme://$host_without_www/$1 permanent; } if (-d $request_filename){ rewrite ^/(.*[^/])$ /$1/ permanent; } location / { # First attempt to serve request as file, then # as directory, then fall back to index.html try_files $uri $uri/ /index.php; # Uncomment to enable naxsi on this location # include /etc/nginx/naxsi.rules } location ~ .php$ { if (!-f $request_filename) { return 404; } fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /var/www$fastcgi_script_name; include fastcgi_params; } }
你的设置可能是基于那些在野外的许多过时的博客文章之一,效率低下。
这是一个更好的设置:
server { server_name www.qa.domain.ca; # redirect to non-www return 301 http://qa.domain.ca$request_uri; } server { server_name qa.domain.ca; root /var/www/qa.domain.ca; access_log /var/log/nginx/qa.domain.ca/access.log; error_log /var/log/nginx/qa.domain.ca/error.log; index index.html index.htm index.php; # Using "if" for redirection is inefficient as every request will be tested # Also, the "-d" test is redundant given the use of "try_files" below location / { # First attempt to serve request as file, then # as directory, then fall back to index.html try_files $uri $uri/ /index.php; # Uncomment to enable naxsi on this location # include /etc/nginx/naxsi.rules } location ~ .php$ { # This "if" block will work as long as every php file physically exists # and you don't use a php app that uses rewriting of pseudo files # I personally prefer to use "location ~ \..*/.*\.php$ { return 400; }" if (!-f $request_filename) { return 404; } fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /var/www$fastcgi_script_name; include fastcgi_params; } }
至于error_log查询,没有理由为什么它不应该从任何configuration工作。
****编辑****似乎有可能是为什么日志logging可能无法正常工作的原因: https : //bugs.php.net/bug.php?id = 61045
除了将PHP升级到最新版本(应该对所遇到的错误进行修复)之外,还可以让PHP生成自己的错误日志。 例如,我有一个PHP日志到系统日志的系统。 你可以用php.ini中的error_log指令来控制这个。