这是我从浏览器调用的配置:
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;