【发布时间】:2012-03-17 01:53:59
【问题描述】:
我正在设置一个运行 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/www 开始的所有内容都归运行 nginx 和 FastCGI 的 www-data 用户所有,并且对其可读。
日志对此没有帮助;即使我将级别设置为信息,我也没有在错误日志中得到任何信息。
谢谢。
【问题讨论】: