启动php-fpm后,访问不到php文件的解决办法

2016-11-3 liyangweb.com 李杨 服务器

问题场景:


  1. linux系统
  2. nginx服务器
  3. 安装好了fpm的php7
  4. 在nginx的web目录下新建了index.php文件,内容为phpinfo()函数。(如果是源码安装,位置一般为 /usr/local/nginx/html/index.php)

nginx经过了简单的配置,开始试验是否可以支持php


        location / {
            root   html;
            index  index.html index.htm index.php;
        }

        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;
        }
在浏览器访问 localhost/index.php


结果为 File not found.

这时候我们查看nginx的错误日志,错误日志的主要内容为 FastCGI sent in stderr: "Primary script unknown"

经过分析+搜索前辈经验得出结论,nginx的配置文件无法识别/scripts路径,所以我们将配置文件中的/scripts改为$document_root,或者web目录的绝对路径。更改后的配置文件如下:

        location ~ \.php$ {
            root           html;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include        fastcgi_params;
        }
重启nginx服务器,已经可以正确显示phpinfo()的内容了。


标签: PHP nginx

发表评论:

Powered by emlog 冀ICP备13011830号-1