Многие начинающие вебмастера при настройке нового веб-сайта или блога с помощью Nginx и PHP-FPM, пропускали этот параметр, а затем тратили много времени на поиск этой проблемы в Google. И каждый раз обнаруживали одну и ту же проблему, о которой расскажем в этой статье.
Перед применением этого исправления вы должны проверить свой доступ и журналы ошибок Nginx. Если вы не получили никакой ошибки в журнале ошибок и получите статус HTTP 200/OK в журнале доступа. Но, тем не менее, вы получите пустые страницы на всех страницах PHP, тогда это исправление решит вашу проблему.
Как всегда, мы сделаем это за несколько простых шагов. На самом первом шаге давайте посмотрим конфигурацию нашего сайта для блогов WordPress.
Шаг 1: Конфигурация блока местоположения для всех файлов PHP
Ниже приведен блок местоположения, который мы использовали для блогов WordPress.
location ~ \.php$ { try_files $uri /index.php =404; fastcgi_pass unix:/run/php/php7.3-fpm.sock; fastcgi_index index.php; include fastcgi_params; }
Здесь мы включаем fastcgi_params из ngx_http_fastcgi_module из Nginx. Но забыли добавить следующую строку в нужный файл.
Шаг 2: Добавьте fastcgi_param в файл конфигурации
Нам просто нужно открыть файл /etc/nginx/fastcgi_params и добавить строку ниже в конце файла.
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
ИЛИ вы можете напрямую пропустить эту строку с помощью приведенной ниже команды.
echo "fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;" >> /etc/nginx/fastcgi_params
Теперь перезапустите службу PHP-FPM и службу Nginx, используя приведенные ниже команды.
systemctl restart php7.3-fpm systemctl restart nginx
Как указано в Nginx Docs, параметр должен быть передан на сервер FastCGI. После применения этого исправления ваши PHP-страницы должны работать. Если нет, то у вас, вероятно, была другая проблема. Вы можете написать в комментарии, как вы решили эту проблему.