nginx与php-fpm打开PHP页面报错File not found

   最近在虚拟机上装了个CentOS6.5,由于是以最小化的方式装的,装LNMP环境时缺少好多东西,特别是安装PHP时缺少很多东西,过程是非常的曲折。

  我装的版本分别是:Nginx 1.6.0,Mysql 5.6.19,PHP 5.5.14。前两个用Yumj装起来还比较顺利,装PHP的时候我采用自己编译的方式安装,以php-fpm的方式与Nginx配合,装完后写了个php文件,一访问提示File not found,查看Nginx日志,有错误信息:

[error] "1842#0" *7 connect() failed (111: Connection refused)

用命令netstat -ano | grep 9000查了一下,发现9000端口没开,应该是php-fpm没有启动。马上去启动:

#/usr/local/sbin/php-fpm

启动php-fpm后还是提示File not found。再查看Nginx的错误日志,这回的错误信息是:

FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream

折腾了半天,发现Nginx默认的配置文件是站点的root写在了各个location配置块里了,之前只改了根目录的配置,没注意php配置这块里也有一个,将root这个参数移到server块下,将配置PHP的那块location改成:

XML/HTML代码
  1. location ~ .php$ {  
  2.     try_files $uri =404;  
  3.     fastcgi_pass   127.0.0.1:9000;  
  4.     fastcgi_index  index.php;  
  5.     fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;  
  6.     include        fastcgi_params;  
  7. }  

其中try_files $uri =404;这个配置项是为了让Nginx判断文件不存在就直接返回404,而不用再发给php-fpm去处理。

重启Nginx:

#service nginx restart

发表评论

电子邮件地址不会被公开。 必填项已用*标注