nginx + php5-fpm이 제대로 작동하지 않습니다. 흰색 화면 만 보입니다


11

방금 nginx와 php5-fpm을 설치했으며 포트 82에서 테스트하고 싶습니다. http://mysite.com:82/test555.php를 호출하면 아무 것도 보이지 않습니다. 그냥 흰색 화면입니다. 오류 없음, 경고 없음, 전혀 아무것도 보이지 않습니다 :) nginx의 오류 로그와 php5-fpm의 오류 로그가 있습니다-그러나 ... 오류가 없습니다. 나는 무엇이 잘못되었는지 이해하지 못한다. 그것을 찾도록 도와주세요.

root@localhost:# echo "<?php phpinfo(); ?>" > /home/www/public_html/test555.php
root@localhost:# chmod 755 /home/www/public_html/test555.php
root@localhost:# cat /etc/nginx/sites-available/default
server {
        listen 82;
        root /home/www/public_html;
        index index.php index.html;

        server_name mysite.com;
        access_log /var/log/nginx/nginx-access.com.log;
        error_log /var/log/nginx/nginx-errors.com.log;

        location ~ \.php$ {
                fastcgi_pass unix:/var/run/php5-fpm.sock;
                # fastcgi_pass 127.0.0.1:9000;
                fastcgi_index index.php;
                fastcgi_param SCRIPT_FILENAME   $document_root$fastcgi_script_name;
                fastcgi_param QUERY_STRING              $query_string;
                fastcgi_param REMOTE_ADDR               $remote_addr;
        }
}

root@localhost:# /etc/init.d/nginx status
 * nginx is running

root@localhost:# /etc/init.d/php5-fpm status
 * php5-fpm is running

root@localhost:# ls -la /var/run/php5-fpm.sock
srw-rw-rw- 1 root root 0 Feb  3 01:14 /var/run/php5-fpm.sock

root@localhost:# cat /var/log/php5-fpm.log 
....
[03-Feb-2014 01:14:52] NOTICE: configuration file /etc/php5/fpm/php-fpm.conf test is successful
[03-Feb-2014 01:14:52] NOTICE: fpm is running, pid 19080
[03-Feb-2014 01:14:52] NOTICE: ready to handle connections

root@localhost:# cat /var/log/nginx/nginx-access.com.log
...ip... - - [03/Feb/2014:01:29:44 +0000] "GET /test555.php HTTP/1.1" 200 5 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:26.0) Gecko/20100101 Firefox/26.0"

root@localhost:# cat /var/log/nginx/nginx-errors.com.log

root@localhost:#

무슨 일이 일어나고 있는지 알아 보려면 다음에 무엇을 할 수 있습니까? 나는 그것이 잘 작동하는 것을 본다. PHP 스크립트가 code = 200을 반환하지만 출력이 표시되지 않습니다. 거기에 file_put_contents를 추가하려고 시도했지만 실제로 nginx에 의해 호출 된 적이 없기 때문에 호출되지 않았습니다.

오늘 완전히 업그레이드 된 우분투 12.04를 사용합니다.


내용은 /var/log/nginx/nginx-errors.com.log무엇입니까?
samiam

이것이 관련이 있는지 확인하십시오 : bbs.archlinux.org/viewtopic.php?id=101750
mkc

나는 비슷한 문제가 있었다. nginx는 페이지를 반쯤 처리하고 멈추었다. nginx 로그에는 오류가 없습니다. nginx fastcgi 버퍼링을 변경하여 수정했습니다. 참조 stackoverflow.com/a/43294078/1008916
Mugoma J. Okomba

답변:


16

이 SO Q & A는 제목이 nginx shows blank PHP pages 라는 문제가있는 것처럼 들립니다 .

귀하의 location절은 다음과 유사합니다 :

location ~ \.php$ {
    include /path/to/fastcgi_params;
    fastcgi_pass  127.0.0.1:9000;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME /path/to/www/dir$fastcgi_script_name;
}

참조하려는 스크립트의 경로에 특별한주의를 기울여야합니다 fastcgi_param.

참고 문헌


그래, 그건 내 잘못이야 다음과 같은 줄을 추가했습니다 : "include fastcgi_params;" 위치에 지금 작동합니다!
JavaRunner

@JavaRunner-문제가 해결되었다 니 다행입니다.
slm

13

이 문제에 직면 한 다른 사람들에게 유용 할 수 있습니다.

fastcgi_params다음 줄을 nginx conf 파일에 추가 할 수도 있으므로 변수의 경로를 지정할 필요가 없습니다SCRIPT_FILENAME

fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;

가상 호스트가 많을 때 특히 유용합니다.


감사합니다. 이것은 항상 다른 경로를 포함하는 것보다 훨씬 낫습니다
krdx

1
이것은 우분투 14.04에서 nginx가 저장소에서 온 새로운 설치의 문제를 해결했습니다. 감사!
Arda
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.