ISPmanager 6 позволяет запускать разные версии PHP для каждого сайта независимо. PHP работает через FastCGI (FPM) — быстрее mod_php и безопаснее (изоляция пользователей).
Смена PHP версии для сайта
WWW → Домены → выберите домен → Изменить → PHP → выберите версию.
Доступные версии PHP
| Версия | Статус | Рекомендуется для |
|---|---|---|
| PHP 7.4 | EOL (не поддерживается) | Старые CMS |
| PHP 8.0 | EOL | Устаревшие проекты |
| PHP 8.1 | Security fixes | Стабильные проекты |
| PHP 8.2 | Active | WordPress 6.x ✅ |
| PHP 8.3 | Active | Новые проекты ✅ |
EOL (End of Life) означает, что разработчики PHP больше не выпускают патчи безопасности для этой ветки. Сайт на EOL-версии продолжит работать, но каждая новая уязвимость в интерпретаторе останется без исправления — это касается и версии, полученной вместе со старым образом сервера при первой установке.
Установка дополнительных PHP расширений
Настройки → PHP → выберите версию → Расширения → включите нужные. Список расширений индивидуален для каждой версии PHP и обновляется отдельно при обновлении самого ISPmanager.
Часто нужные расширения:
php-redis— Redis object cachephp-imagick— обработка изображенийphp-gd— графикаphp-zip— архивыphp-intl— интернационализация
Изменение параметров PHP (php.ini)
Настройки → PHP → выберите версию → Параметры PHP.
| Параметр | Рекомендуемое значение |
|---|---|
| memory_limit | 256M |
| upload_max_filesize | 64M |
| max_execution_time | 60 |
| max_input_vars | 3000 |
Пользовательский php.ini для сайта
# Создайте файл .user.ini в корне сайта
memory_limit = 256M
upload_max_filesize = 64M
post_max_size = 64M
max_execution_time = 60
Порядок применения настроек PHP
- Системный php.ini версии PHP — базовые значения по умолчанию для всех сайтов
- Настройки пула FPM для конкретного домена, заданные через ISPmanager
- Файл
.user.iniв корне сайта — применяется без перезапуска FPM, но с задержкой до 5 минут по умолчанию - Вызов
ini_set()внутри кода PHP — действует только в рамках текущего запроса и перекрывает всё вышеперечисленное
systemctl restart php8.2-fpmРазбор типичных ошибок PHP после смены версии
| Сообщение | Что означает |
|---|---|
502 Bad Gateway | Nginx не может достучаться до PHP-FPM — часто после смены версии сокет FPM указывает на старый путь |
Fatal error: Uncaught Error: Call to undefined function | В новой версии PHP отсутствует расширение, которое требовалось коду — нужно включить его в разделе Расширения |
Deprecated: Creation of dynamic property | Код написан под PHP 7.x — начиная с PHP 8.2 такие конструкции считаются устаревшими, но пока не фатальны |
PHP Fatal error: Allowed memory size exhausted | Значение memory_limit слишком мало для скрипта — часто всплывает при импорте больших файлов или тяжёлых плагинах CMS |
mod_php, FPM и CGI: сравнение режимов PHP
| Критерий | mod_php (Apache) | PHP-FPM | CGI |
|---|---|---|---|
| Изоляция пользователей | Нет (общий процесс Apache) | Да (отдельный пул на пользователя) | Да, но медленнее |
| Производительность | Средняя | Высокая | Низкая |
| Поддержка в ISPmanager 6 | Только с Apache как основным сервером | По умолчанию для Nginx и Nginx+Apache | Устаревший, не рекомендуется |
Когда смена версии PHP не поможет
- Ошибка вызвана не версией PHP, а отсутствующим расширением — переключение версии без включения нужного расширения просто перенесёт ту же ошибку на новую версию
- Код использует устаревшие конструкции (например,
each(), удалённый в PHP 8.0) — потребуется правка кода, а не только смена версии в панели - Проблема на уровне базы данных или внешнего API — переключение PHP не решает тайм-ауты MySQL или недоступность стороннего сервиса
- Расширение установлено, но не подключено к нужному пулу FPM — после включения расширения в панели иногда требуется явный перезапуск конкретного пула, а не только общей службы PHP
Проверка результата
После смены версии убедитесь, что сайт реально использует нужный PHP, а не старый закешированный процесс.
# Проверить активную версию PHP для сайта через phpinfo
echo "<?php phpinfo(); ?>" > /var/www/user1/data/www/example.com/www/info.php
curl -s http://example.com/info.php | grep "PHP Version"
# Удалите info.php сразу после проверки — phpinfo раскрывает конфигурацию сервера и пути к файлам
Если версия в выводе не совпадает с выбранной в панели — проверьте, что FPM-пул для домена действительно пересоздан, а не остался от предыдущей версии, и что кеш opcache не отдаёт старый скомпилированный байткод. Связанные темы: создание сайта в ISPmanager 6 и установка WordPress на ISPmanager.