Основные настройки PHP-FPM для веб-сервера

Правильная конфигурация PHP-FPM критически важна для безопасности и стабильности работы веб-приложений. Разберём ключевые параметры из файла конфигурации пула (обычно /etc/php/8.x/fpm/pool.d/www.conf).

1. Пользователь и группа (user/group)

user = www-data
group = www-data
  • Назначение: Определяет, от какого пользователя будут выполняться PHP-скрипты
  • Рекомендации:
    • Всегда используйте отдельного пользователя (не root!)
    • www-data — стандартный пользователь для веб-серверов в Ubuntu/Debian
    • Для изоляции разных сайтов создавайте отдельных пользователей
  • Безопасность: Ограничивает права PHP-скриптов в системе

2. Группа сокета (listen.group)

listen.group = www-data
  • Назначение: Указывает группу, которой доступен Unix-сокет PHP-FPM
  • Важно: Веб-сервер Nginx должен быть в этой же группе
  • Проверка:
    ps aux | grep nginx | grep -v grep
    groups www-data

3. Права доступа к сокету (listen.mode)

listen.mode = 0660
ПраваВладелецГруппаОстальные
0660rw-rw-
  • Безопасность: Запрещает доступ всем, кроме владельца и группы
  • Альтернативы:
    • 0666 — небезопасно (доступ всем)
    • 0600 — только владельцу (могут быть проблемы с веб-сервером)

4. Дополнительные важные настройки

ПараметрРекомендуемое значениеОписание
pmondemandРежим управления процессами (для серверов с переменной нагрузкой)
pm.max_children50Максимальное число процессов (зависит от памяти сервера)
request_terminate_timeout30sМаксимальное время выполнения скрипта
security.limit_extensions.phpОграничивает выполнение только PHP-файлов

5. Проверка и применение настроек

# Проверка синтаксиса
sudo php-fpm8.x -t

# Перезагрузка PHP-FPM
sudo systemctl restart php8.x-fpm

# Проверка прав сокета
ls -la /run/php/php8.x-fpm.sock

Вывод

  • Используйте отдельного пользователя/группу для PHP-FPM
  • Ограничивайте права доступа к сокету (0660 — оптимально)
  • Регулярно проверяйте логи PHP-FPM на ошибки
  • Настройки зависят от нагрузки и специфики приложения

Эти настройки обеспечат баланс между безопасностью и производительностью вашего веб-сервера.

Комментарии

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *