К основному содержимому

Версии PHP в cPanel: как выбрать и переключить

Хостинг и cPanel · 10.03.2026 · 4 мин чтения
Иллюстрация к статье «Версии PHP в cPanel: как выбрать и переключить»

Выбор версии PHP критичен для совместимости CMS и производительности. Разные проекты требуют разных версий: то, что оптимально для нового Laravel-приложения, может полностью сломать пятилетний сайт на самописном движке.

Как выбрать версию PHP под проект

ПроектРекомендуемая версияМинимальная версия
WordPress 6.x8.27.4
Laravel 118.28.2
Laravel 108.28.1
Joomla 58.18.1

«Минимальная версия» — это порог, ниже которого фреймворк или CMS формально не запустится или откажет в установке. «Рекомендуемая» — версия с лучшим балансом скорости и совместимости плагинов на момент актуальности статьи; для конкретного сайта стоит свериться с требованиями используемых плагинов отдельно. Если версия PHP на сервере ниже минимальной, современный Laravel-проект даже не запустит установку зависимостей — Composer сразу остановится с понятным сообщением:

Problem 1
  - Root composer.json requires php ^8.2 but your php version (7.4.33) does not
    satisfy that requirement.

Это не ошибка конфигурации проекта, а прямое требование фреймворка — решается только переключением версии PHP на сервере, а не правкой composer.json в обход проверки.

Переключение версии PHP в cPanel

  1. cPanel → Программное обеспечение → Выбор версии PHP
  2. Выберите версию (рекомендуем PHP 8.2)
  3. Нажмите Установить как текущее
  4. Проверьте совместимость плагинов/тем

Разные версии PHP для разных доменов

В cPanel можно назначить отдельную версию PHP для каждого домена или папки:

  1. cPanel → MultiPHP Manager
  2. Выберите домен → укажите версию

Типичная ошибка при переходе на новую версию

Начиная с PHP 8.1 передача null в параметр функции, который не объявлен nullable, стала выдавать предупреждение об устаревании, а во многих встроенных функциях PHP 8.2+ — фатальную ошибку:

Fatal error: Uncaught TypeError: trim(): Argument #1 ($string) must be of type
string, null given, called in /home/user/public_html/wp-content/plugins/old/init.php
on line 34

Это одна из самых частых причин, по которым старые плагины WordPress ломаются именно на PHP 8.2, а не раньше: код годами передавал в trim(), strlen() или htmlspecialchars() результат, который иногда мог оказаться null (например, несуществующее поле из базы данных), и раньше PHP молча превращал его в пустую строку. Исправление — обновить плагин до версии, где автор добавил явную проверку на null перед вызовом функции.

Настройка PHP расширений

cPanel → Выбор версии PHP → Расширения:

  • Для WordPress: mysqli, gd, curl, mbstring, xml, zip
  • Для Laravel: pdo_mysql, bcmath, tokenizer, fileinfo
  • Для интернет-магазинов (WooCommerce, PrestaShop): дополнительно intl и soap для работы со службами доставки и валютами
  • Для API-интеграций: curl и openssl обязательны для HTTPS-запросов к внешним сервисам

Настройка php.ini через cPanel

# cPanel → PHP Settings (или создайте .htaccess):
php_value upload_max_filesize 64M
php_value post_max_size 64M
php_value max_execution_time 300
php_value memory_limit 256M

Изменения через панель PHP Settings в cPanel применяются мгновенно, а вот при использовании файла .user.ini в качестве альтернативы стоит помнить про задержку кэширования — новые значения директив подхватываются не сразу, а с задержкой до пяти минут, за которую отвечает параметр user_ini.cache_ttl.

Когда не стоит сразу переходить на новейшую версию

  • Сайт использует плагины, последнее обновление которых было больше двух лет назад — риск фатальных ошибок высок, а автор может уже не поддерживать код
  • Нет тестовой копии сайта — переключать версию боевого магазина или сайта с трафиком без staging-проверки рискованно
  • Используется самописный код с прямыми вызовами устаревших функций (each(), create_function(), ${} внутри строк) — они физически удалены в PHP 8.x, и версия здесь не поможет, нужен рефакторинг
  • Хостинг-провайдер ещё не обновил серверные модули (например, ionCube Loader) под новую версию PHP — тогда лицензионные защищённые скрипты просто перестанут запускаться

Проверка текущей версии

# Через SSH:
php -v

# Или создайте phpinfo.php:
<?php phpinfo(); ?>
# Удалите файл после проверки!
Версия PHPСтатусРекомендуется для
PHP 8.3АктуальнаяНовые проекты
PHP 8.2LTSWordPress, Laravel
PHP 8.1Security onlyСтарые проекты
PHP 7.4EOLНе рекомендуется

PHP 7.4 не получает обновления безопасности с декабря 2022 года — эксплуатация известных уязвимостей на такой версии не будет исправлена никогда, и хостинг-провайдер не несёт ответственности за последствия. Даже если сайт на PHP 7.4 сейчас работает без видимых проблем, это не признак безопасности — это признак того, что уязвимость ещё не была найдена и использована именно против вашего сервера. Подробнее об ошибках после смены версии и работе с error_log — в статье логи ошибок в cPanel, а про сам механизм PHP Selector — в статье cPanel PHP Selector.

Статья помогла?
← Назад в базу знаний Задать вопрос поддержке