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.