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 скрипт возвращает мне код = 200, но я не вижу вывод. Он никогда не вызывался, потому что я пытался добавить туда file_put_contents, и он действительно никогда не вызывался nginx.

Я использую Ubuntu 12.04, полностью обновленную сегодня.

JavaRunner
источник
Каково содержание /var/log/nginx/nginx-errors.com.log?
Самам
Посмотрите, относится ли это к делу: 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, показывающая пустые страницы PHP .

Ваша 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.

Ссылки

SLM
источник
Да, это была моя вина. Я добавил строку: "include fastcgi_params;" к месту и теперь это работает!
JavaRunner
@JavaRunner - рад слышать, что ваша проблема решена!
SLM
13

Это может быть полезно для других, сталкивающихся с этой проблемой,

Вы также можете добавить в свой файл nginx conf fastcgi_paramsследующую строку, поэтому вам не нужно указывать путь к переменнойSCRIPT_FILENAME

fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;

Это особенно удобно, когда у вас много виртуальных хостов.

Адриано Роза
источник
спасибо, это намного лучше, чем постоянно включать разные пути
krdx
1
Это решило мою проблему с Ubuntu 14.04 - это свежая установка, которую nginx собирал из репозиториев. Благодарность!
Арда