我无法通过 NGiNX 执行 PHP 文件

我无法通过 NGiNX 执行 PHP 文件

这是我从浏览器调用的配置:

location ~ ^/getfileinfo/(.*)$ {
            proxy_pass http://127.0.0.1/editionspanda_conn/$1;
    }

下面是调用 PHP 文件的配置:

server {
    listen          127.0.0.1:80;
    server_name     127.0.0.1;
    root    /var/www/localhost/public/;
    include /var/nginx/general/php;

    location ~ ^/editionspanda_conn/(.*)$ {
            root            /var/www/EditionsPanda/livres.editionspanda.com/;
            try_files       $uri $uri/ /index.php;
            fastcgi_pass    unix:/var/run/php5-fpm.sock;
    }
}

在浏览器中我收到此错误:

File not found.

在我的错误日志中我得到:

2013/09/09 22:12:20 [error] 8922#0: *2784 FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream, client: 127.0.0.1, server: 127.0.0.1, request: "GET /editionspanda_conn/name HTTP/1.0", upstream: "fastcgi://127.0.0.1:9000", host: "127.0.0.1"
  • 我的 NGiNX 版本是:1.2.7
  • 我正在使用 Ubuntu 12。

使用我的其他配置,我可以毫无问题地访问 PHP 文件并执行它。

答案1

我很确定 Ubuntu 的 php5-fpm 默认使用端口 9000。你可以将 listen 行从改为/etc/php5/fpm/pool.d/www.conf来将其更改为使用套接字。127.0.0.1:9000/var/run/php5-fpm.sock

更新:

如果您需要使用端口 9000,请更改此项:

    location ~ ^/editionspanda_conn/(.*)$ {
            root            /var/www/EditionsPanda/livres.editionspanda.com/;
            try_files       $uri $uri/ /index.php;
            fastcgi_pass    unix:/var/run/php5-fpm.sock;
    }

更改为:

    location ~ ^/editionspanda_conn/(.*)$ {
            root            /var/www/EditionsPanda/livres.editionspanda.com/;
            try_files       $uri $uri/ /index.php;
            fastcgi_pass    127.0.0.1:9000;
    }

答案2

只需更换

fastcgi_pass     unix:/var/run/php5-fpm.sock;

fastcgi_pass    127.0.0.1:9000;

相关内容