Сайты содержали следующий кусок конфига:
location ~ \.php$ { # skipped lines fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; include fastcgi_params; }
В процессе дебага выяснилось, что из файла /etc/nginx/fastcgi_params выкинули объявление параметра SCRIPT_FILENAME и из-за этого интерпретатору срывает крышу. Случилось это в районе версии 1.6.1-2:
* debian/conf/fastcgi_params: + Sync with upstream and remove `SCRIPT_FILENAME` parameter. This change might break fastcgi sites. (Closes: #718639) + debian/conf/fastcgi.conf: + Ship upstream file.
Теперь в Nginx включен пример конфигурации для PHP-fpm (/etc/nginx/snippets/fastcgi-php.conf)
# regex to split $uri to $fastcgi_script_name and $fastcgi_path fastcgi_split_path_info ^(.+\.php)(/.+)$; # Check that the PHP script exists before passing it try_files $fastcgi_script_name =404; # Bypass the fact that try_files resets $fastcgi_path_info # see: http://trac.nginx.org/nginx/ticket/321 set $path_info $fastcgi_path_info; fastcgi_param PATH_INFO $path_info; fastcgi_index index.php; include fastcgi.conf;
P.S. Особая благодарность создателям socat - он мой новый лучший друг в вопросах отладки. Достаточно запустить
socat -v UNIX-LISTEN:/tmp/php5-debug.sock UNIX-CONNECT:/var/run/php5-fpm.sock
и перенастроить Nginx на подключение к /tmp/php5-debug.sock, как становится виден процесс общения Nginx и PHP-fpm, а соответственно и суть проблемы.
Добрый день
ОтветитьУдалитьстолкнулся с такой же , как у вас проблемой, socat показал ответ от php-fpm... пробовал как у вас, но мне помогло установка локалей.
debian 8.2
у меня тоже было такое. в итоге гугл подсказал как решить проблему. за socat спасибо обязательно попробую
ОтветитьУдалитьЗдравствуйте, подскажите как решить такую же проблему. Сайт сделан на платформе джумла 3, с использованием готового шаблона https://www.templatemonster.com/ru/opencart-templates-type/, в код не лез, поэтому накосячить не мог, по крайней мере мне так кажется. Ничего не обновлял, просто залил сайт выдает пустую страницу, третий день бьюсь на проблемой ничего решить не могу
ОтветитьУдалитьСмотрите какой код возвращает вебсервер (200, 500, 503) и проверяйте лог ошибок вебсервера и PHP.
Удалить