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

Как изменить версию 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.

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