Nginx + Php5-fpm 不渲染 php 文件

Emm*_*uel 8 linux nginx php5 php-fpm

我花了几个小时弄清楚如何安装 Nginx + Ruby 企业版 + PHP5-fpm 和 MYSQL,最后都安装好了,一切似乎都开始正常了。

但由于某种原因,php 文件没有被处理。

.html 文件工作正常,但是当我尝试查看 .php 文件时,它看起来好像不存在,即使它确实存在。有趣的是,当我尝试查看一个不存在的 .html 文件时,我收到了一个很好的 Nginx 404 消息,但是当我查看一个 .php 文件时,它甚至没有给我。

所以我的新手理解,看起来配置有问题,或者 Nginx 和 PHP-fpm 没有相互交谈。

我一直在查看 nginx 配置文件的许多其他示例,我确信这方面没问题。好吧……无论如何,这是conf文件的相关部分:

location ~ \.php$ {
   fastcgi_pass 127.0.0.1:9000;
   fastcgi_index index.php;
   fastcgi_param SCRIPT_FILENAME /var/www/eman/$fastcgi_script_name;
   include fastcgi_params;
 }
Run Code Online (Sandbox Code Playgroud)

    fastcgi_connect_timeout 60;
 fastcgi_send_timeout 180;
 fastcgi_read_timeout 180;
 fastcgi_buffer_size 128k;
 fastcgi_buffers 4 256k;
 fastcgi_busy_buffers_size 256k;
 fastcgi_temp_file_write_size 256k;
 fastcgi_intercept_errors on;
Run Code Online (Sandbox Code Playgroud)

任何帮助是极大的赞赏。

编辑:以下是从测试 php 文件“ http://eman.id.au/test.php ”返回的标头:

HTTP/1.1 404 Not Found =>
Server => nginx/0.8.54
Date => Thu, 16 Dec 2010 19:30:30 GMT
Content-Type => text/html
Connection => close
X-Powered-By => PHP/5.3.2-1ubuntu4.5ppa5~lucid1
Run Code Online (Sandbox Code Playgroud)

小智 10

我相信我今天遇到了完全相同的问题,nginx 确实将请求发送到 php-fpm(如标题中所示),但您得到 404,即使文件存在并且根本没有(PHP/语法)错误,并且任何日志(ngins 或 php-fpm)中都没有出现错误。

您没有包含完整的 nginx 配置,但是您的“服务器”部分是否可能没有选项“root”定义(正确?)?您需要确保这样做,它指向正确的位置 ofc 并且它在“服务器”部分内,而不是在“位置”部分内 - 例如:

server {
    root /var/www/eman;
    location ~ \.php$ {
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME /var/www/eman/$fastcgi_script_name;
        include fastcgi_params;
    }
}
Run Code Online (Sandbox Code Playgroud)