Правильная конфигурация 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
Права | Владелец | Группа | Остальные |
---|---|---|---|
0660 | rw- | rw- | — |
- Безопасность: Запрещает доступ всем, кроме владельца и группы
- Альтернативы:
0666
— небезопасно (доступ всем)0600
— только владельцу (могут быть проблемы с веб-сервером)
4. Дополнительные важные настройки
Параметр | Рекомендуемое значение | Описание |
---|---|---|
pm | ondemand | Режим управления процессами (для серверов с переменной нагрузкой) |
pm.max_children | 50 | Максимальное число процессов (зависит от памяти сервера) |
request_terminate_timeout | 30s | Максимальное время выполнения скрипта |
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 на ошибки
- Настройки зависят от нагрузки и специфики приложения
Эти настройки обеспечат баланс между безопасностью и производительностью вашего веб-сервера.
Добавить комментарий