Я настроил сервер nginx с php5-fpm. Когда я пытаюсь загрузить сайт, я получаю пустую страницу без ошибок. HTML-страницы обслуживаются нормально, но не php. Я попытался включить display_errors в php.ini, но не повезло. php5-fpm.log не выдает никаких ошибок, как и nginx.
nginx.conf
server {
listen 80;
root /home/mike/www/606club;
index index.php index.html;
server_name mikeglaz.com www.mikeglaz.com;
error_log /var/log/nginx/error.log;
location ~ \.php$ {
#fastcgi_pass 127.0.0.1:9000;
# With php5-fpm:
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}
}
РЕДАКТИРОВАТЬ
вот мой журнал ошибок nginx:
2013/03/15 03:52:55 [error] 1020#0: *55 open() "/home/mike/www/606club/robots.txt" failed (2: No such file or directory), client: 199.30.20.40, server: mikeglaz.com, request: "GET /robots.txt HTTP/1.1", host: "mikeglaz.com"
connect() failed ... fastcgi://127.0.0.1:9000
противоречит вашему nginx conf, перезагрузите nginx conf?Ответы:
Для справки прилагаю
location
блок для ловли файлов с.php
расширением:Дважды проверьте
/path/to/fastcgi-params
и убедитесь, что он присутствует и доступен для чтения пользователем nginx.источник
замещать
с участием
и удалите fastcgi_param SCRIPT_FILENAME ... в nginx.conf
источник
.conf
него отсутствует один дополнительный параметр конфигурации_params
./etc/init.d/nginx restart
) также исправило это для меня в тестировании Debian послеnginx
обновления 10 сентября 2014 года.fastcgi_params
противfastcgi.conf
: blog.martinfjordvald.com/2013/04/…Также был этот вопрос и, наконец, нашел решение здесь . Короче говоря, вам нужно добавить следующую строку в ваш конфигурационный файл nginx fastcgi (/ etc / nginx / fastcgi_params в Ubuntu 12.04)
источник
Многие пользователи попадают в эту ветку, ожидая найти решение для отображения пустых страниц при использовании nginx + php-fpm , я являюсь одним из них. Это резюме того, что я закончил делать после прочтения многих ответов здесь плюс мои собственные исследования (обновлено до php7.2):
1) Откройте
/etc/php/7.2/fpm/pool.d/www.conf
и проверьте значение параметраlisten
.2) Параметр
listen
должен соответствоватьfastcgi_pass
параметру в файле конфигурации вашего сайта (i, e:)/etc/nginx/sites-enabled/default
.3) Проверьте, что файл действительно существует:
4) Если он не существует, это означает, что php7.2-fpm не запущен, поэтому вам нужно перезапустить его:
Что касается
location
раздела в/etc/nginx/sites-enabled/default
:Проверьте, что файл
snippets/fastcgi-php.conf
существует в местоположении/etc/nginx/
:Этот файл содержит список определений переменных, необходимых для php7.2-fpm. Переменные определяются напрямую или через включение отдельного файла.
Этот файл находится по адресу
/etc/nginx/fastcgi.conf
и выглядит так:nginx включает в себя два возможных файла параметров: fastcgi_params и fastcgi.conf . Разница между ними заключается в определении переменной
SCRIPT_FILENAME
:Короче говоря, fastcgi.conf всегда должен работать. Если по какой-то причине вы используете fastcgi_params , вы должны определить
SCRIPT_FILENAME
:Теперь перезагрузите конфигурацию nginx:
И проверьте, что php файл отображается правильно. Например:
/var/www/html/test.php
Где
/var/www/html
находится путь к корню документа.Если, несмотря на все это, вы все еще видите пустой файл, убедитесь, что
php.ini
онshort_open_tag
включен (если вы тестируете страницу PHP с короткими тегами).источник
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
Сделал трюк наконец.Убедитесь, что вы получили это в / etc / nginx / fastcgi_params
Кто знает, почему этого еще нет? Количество времени, которое это должно коллективно потратить!
источник
Я написал короткую программу на C, которая возвращает переменные среды, переданные из nginx в приложение fastCGI.
Сохраните это в файл, например
fcgi_debug.c
Чтобы скомпилировать его, сначала установите,
gcc
аlibfcgi-dev
затем запустите:Чтобы запустить его, установите
spawn-fcgi
и запустите:Затем измените конфигурацию nginx fcgi так, чтобы она указывала на программу отладки:
Перезапустите nginx, обновите страницу, и вы увидите, что все параметры появляются в вашем браузере для отладки! :-)
источник
apt-get install spawn-fcgi libfcgi-dev
.Эти подсказки помогли мне с установкой Ubuntu 14.04 LTS,
Кроме того, мне нужно было включить
short_open_tag
в/etc/php5/fpm/php.ini
источник
Добавьте это в
/etc/nginx/conf.d/default.conf
:источник
/etc/nginx/fastcgi_params
файле было бы более правильным, я думаю.Если у кого-то возникла эта проблема, но ни один из приведенных выше ответов не решил их проблемы, у меня возникла та же проблема, и мне было труднее ее отследить, поскольку мои файлы конфигурации были правильными, мои задания ngnix и php-fpm работали нормально, и не было никаких ошибок, проходящих через любые журналы ошибок.
Глупая ошибка, но я никогда не проверял переменную Short Open Tag в моем файле php.ini, который был установлен в
short_open_tag = Off
. Поскольку мои php-файлы использовались<?
вместо<?php
, страницы показывались пустыми. Short Open Tag должен был быть установленOn
в моем случае.Надеюсь, это кому-нибудь поможет.
источник
Причина, по которой возникает эта проблема, заключается в том, что конфигурации fastcgi в nginx не работают должным образом и на месте или при обработке они отвечают как HTML-данные. Есть два возможных способа настройки nginx, чтобы избежать этой проблемы.
Способ 1:
Способ 2:
Оба метода будут работать правильно, вы можете пойти дальше и взять любой из них. Они почти выполняют одни и те же операции с очень небольшим отличием.
источник
Удачи
источник
Ни один из приведенных выше ответов не работал для меня - PHP правильно отображал все, кроме страниц, основанных на mysqli, для которых он отправлял пустую страницу с кодом ответа 200 и не выдавал никаких ошибок. Как я на OS X, исправление было просто
sudo port install php56-mysql
с последующим перезапуском PHP-FPM и nginx.
Я мигрировал со старой установки Apache / PHP на nginx и не заметил несоответствие версий в драйвере для
php-mysql
иphp-fpm
.источник
У меня была похожая проблема, nginx обрабатывал страницу наполовину, а затем останавливался. Ни одно из предложенных здесь решений не сработало для меня. Я исправил это, изменив буферизацию nginx fastcgi:
После изменений мой
location
блок выглядел так:Для получения дополнительной информации см. Https://www.namhuy.net/3120/fix-nginx-upstream-response-buffered-teilitary-file-error.html.
источник
Если вы получаете пустой экран, это может быть по двум причинам:
Браузер блокирует отображение рамок. В некоторых браузерах кадры считаются небезопасными. Чтобы преодолеть это, вы можете запустить безрамочную версию phpPgAdmin
http://-your-domain-name-/intro.php
Вы включили функцию безопасности в Nginx для X-Frame-Options, попробуйте отключить ее.
источник
Это решило мою проблему:
источник
Это мой vhost для UBUNTU 18.04 + apache + php7.2
Последняя строка отличает его от других ответов.
источник
У меня была похожая ошибка, но в сочетании с Nextcloud. Поэтому, если это не сработало, попробуйте: Взгляните на руководство по Nginx .
источник