Nginx / FPM / PHP의 모든 PHP 파일은 '파일을 찾을 수 없습니다'라고 말합니다.


8

방금 centos 5.8 최종 64 비트 시스템에 nginx 1.1.13 및 php 5.4.0을 설치했습니다. Nginx와 PHP / Fpm이 실행 중이며 ssh 명령 줄을 통해 PHP 스크립트를 실행할 수 있지만 브라우저에서 계속 '파일을 찾을 수 없습니다'. 모든 PHP 파일에 오류가 있습니다.

이것은 nginx.conf가 PHP 스크립트를 처리하는 방법입니다.

      location ~ \.php$
      {
              root                    /opt/nginx/html;
              fastcgi_pass            unix:/tmp/fpm.sock;
              fastcgi_index           index.php;
              fastcgi_param           SCRIPT_FILENAME /opt/nginx/html$fastcgi_script_name;
              include                 fastcgi_params;
      }

이것은 다른 서버에서 직접 복사 / 붙여 넣기 하여이 설정에서 제대로 작동하지만 이전 버전의 php / fpm을 실행합니다.

왜 이러한 오류가 발생합니까?


1
상관 없어요. 바보 같은 권한 문제였습니다.
Mr.Boon

답변:


17

"include fastcgi_params;"를 넣으십시오. 모든 "fastcgi_param *"줄 앞에 "fastcgi_params 포함"; "fastcgi_param *"줄을 모두 무시합니다 (nginx 디버그 로그 참조).

location ~ \.php$ {
    root                    /opt/nginx/html;
    fastcgi_pass            unix:/tmp/fpm.sock;
    fastcgi_index           index.php;
    include                 fastcgi_params;
    fastcgi_param           SCRIPT_FILENAME /opt/nginx/html$fastcgi_script_name;
}

3
남자, 나는 그것에 4 시간을 낭비했고 당신의 대답이 저에게 도움이되었습니다.
전문가

어제부터이 문제를 극복하려고 노력했습니다. 당신의 대답은 저에게 큰 도움이되었습니다! 감사합니다!!!
Kacper Kołodziej

1
경로를 하드 코딩하지 않고 어떻게해야합니까? $ document_root vars는 문제가없는 것 같습니다.
user1179459

3

나는 같은 문제가 있었다.

내가 해결 한 것은 nginx, php-fpm을 실행하는 사용자를 확인하고 루트가있는 폴더에 액세스 할 수있는 권한을 확인하는 것이 었습니다. 기본 'www-data'입니다.

그러나 ps aux | grep php-fpmps aux | grep nginx명령 을 사용하여 찾을 수 있습니다 .

이러한 프로세스를 실행하는 사용자가 폴더에 액세스 할 수 있는지 확인해야합니다.


실마리 감사합니다. 기본적으로 700 개의 권한이있는 Dropbox 디렉토리 내부에서 프로젝트를 호스팅하려고했습니다. Dropbox 권한을 755로 변경하면 문제가 해결되었습니다.
Rodion Baskakov

1

나는 같은 문제를 겪었고 nginx 서버 설정에서 잘못 구성된 / 존재하지 않는 "루트"지시어였습니다.


1

나는 그러한 구성을 사용합니다. 그것이 당신을 도울 수 있기를 바랍니다. 그것은 OS X에서 작동합니다. 저에게 @Xosofox의 답변이 효과가있었습니다. 루트가 존재하지 않는 디렉토리가되도록 nginx 1.6.2 버전을 1.2.6으로 잘못 입력했습니다.

location ~ \.php$ {
    fastcgi_intercept_errors on;
    root           /usr/local/Cellar/nginx/1.6.2/html;
    fastcgi_pass   127.0.0.1:9000;
    fastcgi_index  index.php;
    include        fastcgi_params;
    fastcgi_param  SCRIPT_FILENAME /usr/local/Cellar/nginx/1.6.2/html$fastcgi_script_name;
}

0

php-fpm.d / www.conf의 사용자 및 그룹을 변경 하여이 문제를 해결합니다.

기본적으로 사용자와 그룹은 'nginx'입니다. 이것을 변경하십시오 ....

도움이 되었기를 바랍니다

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.