nginx FastCGI配置 No input file specified

配置好nginx,启动nginx,设置按照FastCGI的默认配置,配置好,访问php文件。

curl -i http://localhost/test.php

结果提示No input file specified,但是我在/usr/local/nginx/html/目录下的确有test.php文件。我的配置如下:

location ~ \.php$ {
   root html;
  #echo $fastcgi_script_name;
  charset utf8;
  fastcgi_pass 127.0.0.1:9000;
  fastcgi_index index.php;
  fastcgi_param SCRIPT_FILENAME $fastcgi_script_name;
  include fastcgi_params;
 }

搜了一下,发现还得在fastcgi_param这指定目录,正确的应该是:

location ~ \.php$ {
   root html;
  #echo $fastcgi_script_name;
  charset utf8;
  fastcgi_pass 127.0.0.1:9000;
  fastcgi_index index.php;
  fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
  include fastcgi_params;
 }

所以就算把php目录配置为其他目录,依然需要在fastcgi_param SCRIPT_FILENAME添加上路径名,可以把$document_root设置为需要设置的目录,或者直接写:

fastcgi_param SCRIPT_FILENAME /the path$fastcgi_script_name;

nginx配置文件中FastCGI的默认配置是:

location ~ \.php$ {
  root html;
  fastcgi_pass 127.0.0.1:9000;
  fastcgi_index index.php;
  fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
  include fastcgi_params;
}

我之前就直接写这个配置结果一直,出错

posted on 2014-07-04 12:43 joygpwan 阅读(...) 评论(...) 编辑 收藏

导航