我知道这是一个常见的问题,但我没有发现与我的案例完全匹配的讨论。
nginx错误日志显示:
在stderr中发送FastCGI:“无法打开主脚本:/usr/share/nginx/drupal7/index.php
但:
这条路是正确的,这是我网站的根
www-data有权访问它(如果我做su www-data然后cat /usr/share/nginx/drupal7/index.php文件被显示)。
将nginx的根目录和fpm/pool.d/myserver.conf chroot都指向相同的文件夹: /usr/share/nginx/drupal7
www-data用户和组有660访问这个相同的文件夹到pool.d/myserver.conf
ps -u www-data显示它拥有nginx和php5-fpm进程
我没有安装SElinux(有些讨论认为这可能是问题)
那为什么www-data用户可以访问我的index.php而不是FastCGI? 为什么FastCGI尝试正确的path,但是说它不存在?
你有一个chroot设置。 当进程在chroot中时,从根目录到脚本的path如下所示:
/index.php
因此,您需要修改与FastCGI脚本调用一起使用的path,以便它们不包含脚本文件的完整目录path。