
나는 이것이 일반적인 질문이라는 것을 알고 있지만 내 사례와 정확히 일치하는 토론을 찾지 못했습니다.
nginx 오류 로그에 다음이 표시됩니다.
FastCGI가 stderr로 전송됨: "기본 스크립트를 열 수 없습니다: /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
사용자는 FastCGI에는 액세스할 수 있지만 index.php
FastCGI에는 액세스할 수 없습니까? FastCGI가 올바른 경로를 시도했지만 존재하지 않는다고 말하는 이유는 무엇입니까?
답변1
chroot가 설정되어 있습니다. 프로세스가 chroot에 있을 때 루트에서 스크립트까지의 경로는 다음과 같습니다.
/index.php
따라서 스크립트 파일에 대한 전체 디렉터리 경로가 포함되지 않도록 FastCGI 스크립트 호출에 사용되는 경로를 수정해야 합니다.