До основного вмісту

Як змінити версію PHP в cPanel

Хостинг та cPanel · 25.01.2025 · 4 хв читання
Ілюстрація до статті «Як змінити версію PHP в cPanel»

Зміна версії PHP

ZevsHost підтримує PHP 7.4, 8.0, 8.1, 8.2 та 8.3. Ви можете змінювати версію будь-якої миті без перезавантаження сервера — зміна версії зачіпає лише обробку PHP-скриптів, а не веб-сервер цілком.

Через MultiPHP Manager

  1. Увійдіть у cPanel
  2. Перейдіть у розділ «PHP» → «MultiPHP Manager»
  3. Оберіть домен чи директорію
  4. У випадному списку оберіть потрібну версію PHP
  5. Натисніть «Apply»
Учебный макет: MultiPHP Manager. Выделены раздел, поле и следующий шаг.
Учебный макет. Расположение элементов зависит от версии панели. Данные приведены для примера.

Зміна застосовується миттєво і діє лише для обраного домену — інші сайти на тому самому акаунті продовжують працювати на попередній версії.

Через .htaccess

Якщо потрібно задати версію для окремої піддиректорії, а не всього домену, додайте до файлу .htaccess рядок:

AddType application/x-httpd-php83 .php

Такий спосіб працює не на всіх конфігураціях сервера — якщо у хостинг-провайдера вимкнено mod_suphp або використовується суто FPM-обробник без Apache-хендлерів, ця директива буде проігнорована, і версію потрібно змінювати лише через MultiPHP Manager.

Реальні помилки при зміні версії PHP

Після підвищення версії старий код часто перестає працювати з повідомленням такого вигляду:

Fatal error: Uncaught Error: Call to undefined function create_function()
in /home/user/public_html/wp-content/themes/old-theme/functions.php:112

Це означає, що функцію видалено з мови в новій версії (create_function прибрано в PHP 8.0) — єдине рішення — замінити виклик на анонімну функцію в коді, повернення на стару версію PHP не врятує від накопичення таких проблем у майбутньому. При пониженні версії, навпаки, трапляється помилка синтаксису нових конструкцій:

Parse error: syntax error, unexpected '=>' (T_DOUBLE_ARROW), expecting ')'
in /home/user/public_html/index.php on line 8

Так виглядає спроба виконати match-вираз або іменовані аргументи PHP 8.x на рушії PHP 7.4, який їх не розуміє.

Порівняння версій PHP

Версія PHPСтатусРекомендується для
PHP 8.3АктуальнаНові проєкти
PHP 8.2LTSWordPress, Laravel
PHP 8.1Security onlyСтарі проєкти
PHP 7.4EOL з грудня 2022Не рекомендується

Налаштування php.ini для нової версії

У кожної версії PHP в MultiPHP INI Editor (cPanel → «PHP» → «MultiPHP INI Editor») власні значення директив — при перемиканні версії вони не успадковуються автоматично. Рекомендовані значення для більшості CMS:

ДирективаРекомендоване значенняОпис
memory_limit256MПам'ять на один скрипт
max_execution_time60Максимум секунд виконання
upload_max_filesize64MМаксимальний розмір файлу для завантаження
post_max_size64MМаксимальний розмір POST-запиту
max_input_vars3000Максимум змінних у формі

Ці самі значення можна задати через файл .user.ini в корені сайту, якщо провайдер не надає доступу до MultiPHP INI Editor для окремої піддиректорії. Зміни через .user.ini застосовуються не миттєво, а із затримкою до п'яти хвилин — за це відповідає директива user_ini.cache_ttl, і це варто врахувати, якщо правка здається «не спрацювала»:

memory_limit = 256M
max_execution_time = 60
upload_max_filesize = 64M
post_max_size = 64M
max_input_vars = 3000

Детальний розбір кожної директиви — у статті про memory_limit і upload_max_filesize.

Коли не варто змінювати версію одразу

  • Сайт використовує плагіни чи теми, які давно не оновлював автор — спершу перевірте їхню сторінку підтримки на сумісність із новою версією
  • Немає доступу до staging-копії сайту — зміна версії на робочому сайті без перевірки ризикує обвалити сайт на очах у відвідувачів
  • Використовуються саморобні розширення PHP (.so файли) — їх потрібно перезібрати під нову версію, простою зміною в MultiPHP Manager це не вирішується
  • Код активно використовує функції, видалені в PHP 8.x (create_function, each, get_magic_quotes_gpc) — їх доведеться переписати перед переходом

Рекомендації

  • WordPress 6.x найкраще працює на PHP 8.2
  • Старі сайти із застарілим кодом подекуди вимагають PHP 7.4, але ця версія не отримує патчів безпеки з грудня 2022 року
  • Після зміни версії перевірте роботу сайту: головну сторінку, форму зворотного зв'язку, адмін-панель

Перевірка результату

Щоб переконатися, що версія справді змінилася, створіть тимчасовий файл із вмістом:

<?php phpinfo(); ?>

Відкрийте його в браузері, знайдіть рядок «PHP Version» у самому верху сторінки і обов'язково видаліть файл одразу після перевірки — phpinfo() виводить подробиці про сервер, включно зі шляхами до файлів і списком встановлених розширень, які не повинні бути доступні стороннім. Детальніше про ліміти пам'яті та завантаження файлів для нової версії — у статті про PHP Selector і MultiPHP INI Editor, а про діагностику помилок після зміни версії — у статті про розбір error_log у cPanel.

Чи була стаття корисною?
← Назад до бази знань Поставити питання підтримці