nginx / PHP配置问题

时间:2012-02-27 15:30:56

标签: php nginx fastcgi

我正在设置一个运行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文件放在/,然后将参数行更改为“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 / www on down的所有内容都由运行nginx和FastCGI的www-data用户拥有并可读取。

日志对此没有帮助;即使我将级别设置为info,我也没有在错误日志中获得任何内容。

感谢。

1 个答案:

答案 0 :(得分:2)

从配置中删除

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