Nginx + php5-fpm = "找不到文件"

Mat*_*hew 14 nginx php-fpm socket

我在使用 nginx/fpm 设置站点时遇到了麻烦。该页面显示“找不到文件”,这出现在 nginx error.log 中:

FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream
Run Code Online (Sandbox Code Playgroud)

我是 nginx 和 fpm 的新手,该错误消息对我来说毫无意义(即使谷歌机器也没有帮助!)。任何人都可以对可能发生的事情有所了解吗?

Mic*_*ton 18

您应该有一个location部分来处理与此配置类似的 PHP 请求:

    location ~ \.php$ {
            try_files $uri =404;
            fastcgi_pass    127.0.0.1:9000;
            fastcgi_index   index.php;
            fastcgi_param   SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include         fastcgi_params;
    }
Run Code Online (Sandbox Code Playgroud)

(额外try_files解决了一个安全漏洞,该漏洞可能允许将任意文件作为 PHP 执行。)

此外,你root应该在定义server配置文件,部分没有location部分。这是最常见的nginx 配置错误之一