Как настроить Nginx для страницы PHP

В этой статье мы показали, как настроить Nginx для страницы PHP на CentOS.

Для этого урока мы установили NGINX. В этом руководстве будет рассмотрена базовая конфигурация веб-сервера NGINX для обработки приложений PHP и их сервера через порт 80. Рекомендуется изучить NGINX и PHP-FPM.

Предпосылки

  • Выделенный или облачный сервер с установленной CentOS.
  • NGINX установлен на CentOS.
  • Установлен PHP.
  • SSH как пользователь root (вы можете использовать обычного пользователя с правами sudoer, используйте sudo с каждой командой).

Вот статьи по установке Nginx и установке PHP .

После установки обоих откройте основной файл конфигурации PHP-fpm:

# vi /etc/php.ini

Ищем параметр, который устанавливает cgi.fix_pathinfo . Мы будем раскомментировать, удалив точку с запятой (;) и установив значение 0.

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

Итак, мы изменим оба этих условия, раскомментировав строку и установив для нее значение «0» следующим образом:

cgi.fix_pathinfo=0

Как только вы закончите, сохраните и выйдите.

Затем перезапустите службу php-fpm:

# systemctl restart php-fpm

Настроить серверный блок Nginx для использования PHP-процессора

# vi /etc/nginx/sites-available/default

Примечание: имя файла блока сервера может отличаться от указанного выше.

Серверный блок Ngnix по умолчанию может выглядеть так:

server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;

root /usr/share/nginx/html;
index index.html index.htm;

server_name localhost;

location / {
try_files $uri $uri/ =404;
}
}

  • Здесь нам нужно добавить директиву index.php index, чтобы разрешить обслуживание файлов PHP при запросе каталога.
  • Измените директиву server_name. Замените localhost своим доменным именем FQDN или общедоступным IP-адресом.
  • Добавьте директиву try_files, чтобы убедиться, что Nginx не передает неверные запросы нашему процессору PHP.

Серверный блок выглядит так:

server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;

root /usr/share/nginx/html;
index index.php index.html index.htm;

server_name server_domain_name_or_IP;

location / {
try_files $uri $uri/ =404;
}

error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}

location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}

Настройте, как указано выше, сохраните файл и выйдите из него.

Перезапустите Ngnix, чтобы внести необходимые изменения:

# systemctl restart nginx

Теперь создайте тестовый файл PHP:

# vi /usr/share/nginx/html/info.php

Добавьте действительный PHP-код, возвращающий отформатированную информацию о нашем сервере:

<>
phpinfo();
?>

Сохранить и выйти.

Вот и все, что мы сделали как необходимую конфигурацию, так и модификации.

Наконец, давайте обратимся к файлу info.php, который мы создали ранее:

https://server_domain_name_or_IP/info.php

Вы должны увидеть созданную PHP веб-страницу с информацией о вашем сервере.

Если вы видите информационную страницу PHP, созданную PHP, вы успешно настроили обработку PHP с помощью Nginx.

А пока удалите файл, набрав:

sudo rm /usr/share/nginx/html/info.php

В этой статье мы увидели, как наши инженеры службы поддержки настраивают Nginx для страницы PHP.


Как исправить проблемы WordPress 5.0

Как исправить проблемы WordPress 5.0

Наконец-то выходит WordPress 5.0, и он приносит с собой совершенно новый опыт редактирования с помощью Gutenberg.

Как отключить редактор блоков и установить классический редактор в WordPress 5.0

Как отключить редактор блоков и установить классический редактор в WordPress 5.0

Начиная с WordPress 5.0, редактором по умолчанию в WordPress является новый редактор блоков. Новый редактор кардинально отличается

Как установить классический редактор в качестве редактора по умолчанию в WordPress вместо Gutenberg

Как установить классический редактор в качестве редактора по умолчанию в WordPress вместо Gutenberg

Редактор Гутенберга скоро станет редактором по умолчанию в WordPress. У вас будет возможность выбрать классический редактор.

ИСПРАВЛЕНИЕ: «Редактор обнаружил непредвиденную ошибку» в WordPress после обновления

ИСПРАВЛЕНИЕ: «Редактор обнаружил непредвиденную ошибку» в WordPress после обновления

Не можете написать новый пост с помощью нового редактора блоков в WordPress? Скорее всего, вы получаете «Редактор

Как исправить ошибку сопоставления «utf8mb4_0900_ai_ci» при импорте базы данных WordPress

Как исправить ошибку сопоставления «utf8mb4_0900_ai_ci» при импорте базы данных WordPress

Если вы переключаете установку WordPress с сервера MySQL 8 на MySQL 5.7 (или ниже), вы, скорее всего, столкнетесь с

🔧 ИСПРАВЛЕНИЕ: в вашей установке PHP отсутствует расширение MySQL, необходимое для WordPress.

🔧 ИСПРАВЛЕНИЕ: в вашей установке PHP отсутствует расширение MySQL, необходимое для WordPress.

Хотите запустить самоуправляемый сайт на WordPress? Большой. Вы узнаете миллион вещей. Одна из важнейших частей настройки

Как обновить элементы папки в Windows 11

Как обновить элементы папки в Windows 11

Если в контекстном меню отсутствует опция «Обновить», вот как вы можете обновлять элементы в проводнике в Windows 11.

Как включить короткие теги PHP

Как включить короткие теги PHP

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

Настройте mod_evasive для предотвращения DoS- и DDoS-атак на CentOS

Настройте mod_evasive для предотвращения DoS- и DDoS-атак на CentOS

В этой статье мы узнаем, как установить и настроить mod_evasive для предотвращения DoS- и DDoS-атак на CentOS. Модуль mod_evasive Apache.

Как установить PHP с PHP-FPM для NGINX на CentOS

Как установить PHP с PHP-FPM для NGINX на CentOS

как установить PHP с PHP-FPM для NGINX на CentOS. Базовая конфигурация веб-сервера NGINX для обработки приложений PHP и их сервера через порт 80.