nginx php5-fpm“文件未找到”——FastCGI 在 stderr 中发送:“主要脚本未知”

nginx php5-fpm“文件未找到”——FastCGI 在 stderr 中发送:“主要脚本未知”

所以我第一次尝试在 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。

相关内容