我知道这是一个常见的问题,但是我发现没有与我的情况完全匹配的讨论。
nginx 错误日志显示:
FastCGI 在 stderr 中发送:“无法打开主脚本:/usr/share/nginx/drupal7/index.php
但:
此路径是正确的,这是我的网站的根目录
www-data
有权访问它(如果我有,su www-data
那么cat /usr/share/nginx/drupal7/index.php
文件就会显示出来)。nginx root 和
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 尝试了正确的路径,但后来却说它不存在?
答案1
您已设置 chroot。当进程处于 chroot 状态时,从根目录到脚本的路径如下:
/index.php
因此,您需要修改 FastCGI 脚本调用所使用的路径,以便它们不包含脚本文件的完整目录路径。