Хотите заменить Apache на Nginx и настроить PHP-FPM в ISPmanager вручную? В этой статье покажем, как правильно организовать связку Nginx + PHP-FPM, не нарушив работу панели, и обеспечить стабильную и быструю работу сайта на VPS.
Введение
По умолчанию ISPmanager использует Apache в качестве веб-сервера. Однако для более высокой производительности, особенно при работе с современными CMS, всё чаще выбирают связку Nginx и PHP-FPM. Эта конфигурация позволяет значительно ускорить отклик сайта, снизить нагрузку на сервер и упростить масштабирование.
Несмотря на то, что в ISPmanager нет встроенной функции переключения на Nginx в качестве основного веб-сервера, всё можно настроить вручную. В этой статье разберём, как правильно установить и подключить Nginx с PHP-FPM, сохранить совместимость с ISPmanager и не потерять управление через панель.
Что потребуется
Перед началом убедитесь, что у вас есть:
- VPS с root-доступом.
- Установленный ISPmanager 5 или 6 (поддерживаются оба).
- Отключённый Apache (возможности → web-сервер → Apache → отключить).
- Установленные nginx и php-fpm.
Шаг 1. Установка необходимых компонентов
Для работы связки Nginx + PHP-FPM на VPS необходимо установить оба компонента вручную. Ниже приведены команды для CentOS 7/8. Если вы планируете использовать более новую версию PHP (например, 8.1 или 8.2), подключите дополнительный репозиторий Remi.
- Установка Nginx:
yum install epel-release -y && yum install nginx -y
- Подключение репозитория Remi (для актуальных версий PHP):
yum install -y https://rpms.remirepo.net/enterprise/remi-release-7.rpm
yum install -y yum-utils
yum-config-manager --enable remi-php81
- Установка PHP и PHP-FPM с базовыми модулями:
yum install php php-fpm php-cli php-mysqlnd php-mbstring php-xml php-gd -y
Вы можете дополнительно установить модули в зависимости от требований CMS (например, php-curl, php-soap, php-intl и т.д.).
- Добавление в автозагрузку и запуск сервисов:
systemctl enable php-fpm nginx
systemctl start php-fpm nginx
- Проверка работы:
Убедитесь, что службы активны:
systemctl status php-fpm
systemctl status nginx
Если вы используете Debian/Ubuntu, синтаксис команд отличается (apt install, systemctl, add-apt-repository и т.д.) — следуйте инструкциям, актуальным для вашего дистрибутива.
Шаг 2. Настройка PHP-FPM
- Откройте файл конфигурации пула (обычно: /etc/php-fpm.d/www.conf).
- Найдите и измените параметры:
listen = 127.0.0.1:9000
user = nginx
group = nginx
- Убедитесь, что директива listen.owner и listen.group соответствуют пользователю веб-сервера (чаще всего nginx).
- Перезапустите PHP-FPM:
systemctl restart php-fpm
Шаг 3. Настройка шаблона веб-сервера в ISPmanager
ISPmanager использует шаблоны конфигурации веб-сервера. Чтобы задать поведение Nginx, создаём или редактируем файл:
/usr/local/mgr5/etc/templates/nginx/web_domain.tpl
Пример базового шаблона:
server {
listen %ip%:%httpport%;
server_name %domain_idn%;
root %docroot%;
index index.php index.html;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
try_files $uri =404;
include fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
access_log /var/www/httpd-logs/%domain%.access.log;
error_log /var/www/httpd-logs/%domain%.error.log;
}
После внесения изменений перегенерируйте конфигурации через ISPmanager или вручную.
Шаг 4. Отключение Apache
Если Apache всё ещё включён, отключите его, но не удаляйте (ISPmanager может зависеть от некоторых его утилит):
systemctl stop httpd && systemctl disable httpd
Шаг 5. Включение Nginx как основного веб-сервера
Добавьте его в автозагрузку и запустите:
systemctl enable nginx && systemctl start nginx
Шаг 6. Проверка работоспособности
- Убедитесь, что Nginx слушает нужный порт:
ss -tulpn | grep nginx
- Проверьте, работает ли PHP через phpinfo().
- Убедитесь, что сайты, добавленные через ISPmanager, открываются корректно.
Дополнительные настройки
- SSL — добавьте блок listen 443 ssl; и путь к сертификатам.
- Редиректы и правила CMS — пропишите вручную в шаблоне или файле .conf для каждого сайта.
- Кеширование — можно дополнительно настроить FastCGI-кеш в Nginx.
Заключение
Ручная настройка связки Nginx и PHP-FPM в ISPmanager требует внимательности, но позволяет добиться заметного прироста производительности на VPS. Вы получите более гибкую и быструю систему, сохранив при этом управление сайтами через удобную панель. Такой подход особенно ценен при работе с ресурсами на WordPress, OpenCart или Bitrix, где важна каждая миллисекунда отклика.
Читайте в блоге:
- Настройка NGINX на Ubuntu 24.04 LTS: от первого запуска до HTTPS
- Интеграция WordPress с Nginx и MariaDB на Ubuntu 24.04: от базы данных до SSL
- Хостинг сайта на Ubuntu 24.04 LTS: NGINX, SSL и WordPress