我正在建立一个运行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)(/.*)$;