nginx отображает PHP как обычный текст

Вопрос или проблема

сервер {
  слушать        80;
  имя_сервера   test.local;

  доступ_журнал /var/log/nginx/access.log;
  журнал_ошибок  /var/log/nginx/error.log;
  корень       /var/www/testsite;

  местоположение ~ \.php$ {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        включить /etc/nginx/fastcgi_params;
  }
}

Запросы к php файлам просто возвращают код в виде простого текста. Заголовки упоминают PHP, так что я предполагаю, что nginx правильно взаимодействует с PHP ..

Я слишком много раз просматривал это, и мне кажется, что я смотрю прямо на проблему. Можете помочь?

Проверьте, начинаются ли ваши файлы с < ? .

Если да, и вы хотите оставить их так, вам нужно будет отредактировать /etc/php5/fpm/php.ini и установить short_open_tag с Off на On и перезапустить php-fpm.

sudo nano /etc/php5/fpm/php.ini

Найдите short_open_tag и установите его в On.

Перезагрузите php-fpm

sudo service php5-fpm restart

Ответ или решение

Когда вы сталкиваетесь с проблемой рендеринга PHP-файлов в виде обычного текста в Nginx, это может быть вызвано несколькими факторами. Рассмотрим вашу конфигурацию и предложим возможные решения.

Анализ конфигурации Nginx

Ваш файл конфигурации Nginx выглядит следующим образом:

server {
  listen        80;
  server_name   test.local;

  access_log /var/log/nginx/access.log;
  error_log  /var/log/nginx/error.log;
  root       /var/www/testsite;

  location ~ \.php$ {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        include /etc/nginx/fastcgi_params;
  }
}

В данной конфигурации Nginx правильно настроен на обработку PHP-файлов, но если они возвращаются в виде обычного текста, вероятнее всего, есть проблема с интеграцией между Nginx и PHP-FPM.

Возможные причины проблемы

  1. Отсутствие обработки PHP: Если PHP не установлен либо неправильно настроен, Nginx не сможет обработать PHP-файлы. Убедитесь, что PHP и PHP-FPM установлены и работают.

  2. Неверное сопоставление файлов: Проверьте, что конфигурация Nginx правильно настроена для обработки *.php файлов. Убедитесь, что ваши PHP-файлы имеют необходимое расширение и находятся в правильной директории.

  3. Ошибка в fastcgi_params: Возможно, в файле /etc/nginx/fastcgi_params отсутствуют необходимые строки для передачи переменных окружения, например, SCRIPT_FILENAME. Этот параметр должен указывать на полный путь файла, который нужно обработать.

Решение проблемы

  1. Обработка заголовков: Убедитесь, что файл /etc/nginx/fastcgi_params содержит следующую строку:

    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

    Эта строка указывает на правильное местоположение PHP-файла, который должен обрабатываться PHP-FPM.

  2. Проверка работы PHP-FPM: Убедитесь, что служба PHP-FPM работает и нет ошибок. Для этого выполните команду:

    sudo service php5-fpm status

    Если служба не запущена, запустите её:

    sudo service php5-fpm start
  3. Проверка наличия short_open_tag: Если ваши PHP-скрипты используют краткие теги (<?) вместо стандартных (< ? php), убедитесь, что short_open_tag включен. Для этого выполните:

    sudo nano /etc/php5/fpm/php.ini

    Найдите строку short_open_tag и установите её значение на On:

    short_open_tag = On

    Затем перезапустите PHP-FPM для применения изменений:

    sudo service php5-fpm restart
  4. Проверка логов: Проверяйте логи Nginx и PHP-FPM на наличие ошибок. Логи могут дать подсказки о том, что именно пошло не так:

    tail -f /var/log/nginx/error.log
    tail -f /var/log/php5-fpm.log

Заключение

Рендеринг PHP кода в виде обычного текста может быть вызван неправильной конфигурацией Nginx или PHP-FPM. Проверьте настройки, убедитесь в правильном наличии всех необходимых параметров и проверьте логи на наличие ошибок. Применение указанных выше решений должно помочь вам устранить проблему. Если, после всех проверок, проблема не устранена, рассмотрите возможность обращения к документации Nginx и PHP-FPM для более глубокой диагностики.

Оцените материал
Добавить комментарий

Капча загружается...