Nginx + fastcgi 运行 PHP 脚本,但它一直告诉我“找不到文件”

dai*_*isy 0 php nginx cgi

这是服务器块中配置的一部分:

我无法执行任何 php 脚本,我test.php在 /var/html 下放置了一个名为的文件,但是当我指向 时http://localhost/test.php,我得到了一个结果:

File not found.,

这不是由 nginx 生成的,因为它与 nginx 的 404 页面不同。

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

    location ~ \.php$ {
        fastcgi_pass   unix:/var/run/php-fpm/php-fpm.sock;
        fastcgi_index  index.php; 
        fastcgi_intercept_errors on;
        fastcgi_param  SCRIPT_NAME        $fastcgi_script_name;
        fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;
        include        fastcgi.conf;
    }
Run Code Online (Sandbox Code Playgroud)

我错过了什么吗?

mgo*_*ven 5

您正在该/位置下定义文档根目录,这不适用于该\.php$位置。将root指令/移到位置之外,以便将其应用于两者。

root   /var/html;
location / {
    index  index.html index.htm;
}
location ~ \.php$ {
    ...
}
Run Code Online (Sandbox Code Playgroud)