所以我第一次尝试在 debian wheezy 服务器上运行带有 php5-fpm 的 nginx web 服务器
简单点击一个php文件显示File not found
我已经做过研究(实际上浪费了很多时间;),很多人都遇到过类似的问题,但我没有成功地用对他们有用的方法来纠正它。
我仍然有同样的错误:
$ tail /var/log/nginx/access.log /var/log/nginx/error.log /var/log/php5-fpm.log | less
==> /var/log/nginx/error.log
<==
2013/10/26 21:36:00[错误] 6900#0:*1971 FastCGI 在 stderr 中发送:“主脚本未知” 在从上游读取响应头时,
我尝试了很多事情,很难记住是什么。
我已将我的配置文件放在 github 上
目前,nginx.conf 配置使用这个……
server {
server_name mydomain.tld;
root /srv/data1/test;
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;
}
}
/etc/php5/fpm/pool.d/www.conf
包含
listen = 127.0.0.1:9000
我已经尝试过 unix 套接字版本,结果是一样的。
fastcgi_pass unix:/var/run/php5-fpm.sock;
我确保服务器已启动
$ netstat -alnp | grep LISTEN
tcp 0 0 127.0.0.1:9000 0.0.0.0:*
监听 6913/php-fpm.conf) tcp 0 0 127.0.0.1:3306
0.0.0.0:* 监听 4785/mysqld tcp 0 0 0.0.0.0:842 0.0.0.0:* 监听
2286/inetd tcp 0 0 0.0.0.0:111
0.0.0.0:* 监听 2812/rpcbind tcp 0 0 0.0.0.0:80 0.0.0.0:* 监听
5710/nginx tcp 0 0 0.0.0.0:22
0.0.0.0:* 监听2560/sshd tcp 0 0 0.0.0.0:443 0.0.0.0:* 监听
5710/nginx tcp6 0 0 :::111 :::*
监听 2812/rpcbind unix 2 [ ACC ] 流
监听 323648 6574/tmux /tmp//tmux-1000/default
unix 2 [ ACC ] 流监听 619072
6790/fcgiwrap /var/run/fcgiwrap.socket unix 2 [ ACC ] SEQPACKET 监听 323 464/udevd
/run/udev/control unix 2 [ ACC ] 流监听
610686 2812/rpcbind /var/run/rpcbind.sock unix 2 [ ACC ] 流侦听 318633 4785/mysqld
/var/run/mysqld/mysqld.sock
每次修改 nginx.conf 文件时,我都会确保重新启动此命令
nginx -t && nginx -s reload && echo "nginx configuration reloaded"
php5-fpm 也一样
/etc/init.d/php5-fpm restart
感谢您的帮助 :-)
答案1
摆脱
chroot = /var/www
在您的 fpm-pool 配置中。否则 php-fpm 将无法访问 /srv。