nginx/PHP配置问题


nginx/PHP config problems

我正在建立一个运行nginx的新Ubuntu服务器,并试图在网站上运行一个小型WordPress博客。我似乎无法正确配置这一部分,我已经仔细查看了我能找到的所有文档和在线帮助。

我在www.example.com/blog上运行博客,我不在乎任何更高的位置块,我只想为这一区域进行正确的配置。我正在尝试使用:

location /blog/ {
         root /usr/local/www/data;
         try_files $uri $uri/ index.php?$args;
         index index.php;
         location ~ '.php$ {
                  fastcgi_pass 127.0.0.1:9000;
                  fastcgi_index index.php;
                  fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                  fastcgi_split_path_info ^(/blog)(/.*)$;
                  include fastcgi_params;
         }
}

我在127.0.0.1:9000上运行了php-cgi。

当我尝试访问www.example.com/blog或blog/或blog/index.php时,会出现"未指定输入文件"错误。作为一个测试,我创建了一个phpinfo.php文件,并将其放入/usr/local/www/data/blog/中,但这会产生同样的错误。

然而,作为进一步的测试,我将phpinfo.php文件放在/,然后将param行更改为"fastcgi_param SCRIPT_FILENAME/phpinfo.php;",并且确实工作了,所以我的fastcgi进程似乎正在正确运行,但由于某些原因,我没有在nginx中正确设置路径。

我仔细研究了关于这个问题的讨论http://blog.martinfjordvald.com/2011/01/no-input-file-specified-with-php-and-nginx/,我已经查看了文件权限,据我所知,一切正常。/usr/local/www/data/blog树中的每个目录都有执行权限,从/usr/local/wwww向下的所有内容都由运行nginx和FastCGI的www数据用户所有,并且对其可读。

日志对此没有帮助;即使我将级别设置为info,我也不会在错误日志中得到任何信息。

谢谢。

将其从配置中删除

fastcgi_split_path_info ^(/blog)(/.*)$;