我正在设置一个运行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,我也没有在错误日志中获得任何内容。
感谢。
答案 0 :(得分:2)
从配置中删除
fastcgi_split_path_info ^(/blog)(/.*)$;