На хостинге ZevsHost доступны PHP 7.4, 8.0, 8.1, 8.2, 8.3. Вы можете выбрать версию для каждого домена независимо через MultiPHP Manager, а затем настроить конкретные директивы php.ini тремя разными способами — и от выбора способа зависит, сработает ли настройка вообще.
Смена версии PHP
cPanel → Software → MultiPHP Manager. Поставьте галочку напротив домена → выберите версию PHP → Apply. WordPress 6.x требует PHP 7.4+ и рекомендует 8.1 или 8.2 для лучшей производительности.
Настройка php.ini через MultiPHP INI Editor
cPanel → Software → MultiPHP INI Editor → выберите домен.
| Директива | Рекомендуемое значение | Описание |
|---|---|---|
| memory_limit | 256M | Память на скрипт |
| max_execution_time | 60 | Максимум секунд |
| upload_max_filesize | 64M | Макс. размер загрузки |
| post_max_size | 64M | Макс. размер POST |
| max_input_vars | 3000 | Макс. переменных POST |
Приоритет применения настроек
| Способ | Работает с mod_php | Работает с PHP-FPM |
|---|---|---|
| MultiPHP INI Editor | Да | Да |
| .htaccess (php_value) | Да | Нет, игнорируется |
| .user.ini | Нет, не читается | Да |
Большинство современных серверов cPanel используют PHP-FPM по умолчанию, а не mod_php — это значит, что директивы php_value в .htaccess попросту молча игнорируются, если сервер работает на FPM, и правка .htaccess не даст никакого эффекта, даже без явной ошибки. MultiPHP INI Editor работает всегда, потому что редактирует сам файл php.ini для выбранного обработчика, а не пытается переопределить его сверху.
Типичная ошибка: настройка не подействовала
Если после смены версии PHP старый .htaccess ссылается на несуществующий обработчик, Apache возвращает 500 с записью в error_log:
[php:error] [pid 4521] AH01071: Got error 'Primary script unknown'
while reading response header from upstream, referer: https://example.com/
Это значит, что строка вида AddHandler application/x-httpd-php82 .php ссылается на обработчик, которого не существует под этим именем на сервере — например, если версия называется ea-php82, а не просто php82. Решение — удалить устаревшую директиву AddHandler из .htaccess и управлять версией только через MultiPHP Manager.
Вторая частая ловушка — попытка изменить директиву уровня PHP_INI_SYSTEM (например, disable_functions или open_basedir) через .htaccess или .user.ini. Такие директивы можно менять только на уровне главного php.ini сервера или через MultiPHP INI Editor — попытка через .htaccess не вызывает ошибку 500, но значение просто остаётся прежним без каких-либо предупреждений. Отладка таких случаев отнимает больше всего времени именно потому, что нет сообщения об ошибке — единственный способ убедиться в реальном значении директивы — заново открыть phpinfo() и свериться со строкой Local Value для нужного параметра.
Настройка через .htaccess (альтернатива)
# Установить версию PHP для папки
<IfModule mime_module>
AddHandler application/x-httpd-php82 .php
</IfModule>
# Или через php_value
php_value memory_limit 256M
php_value max_execution_time 60
php_value upload_max_filesize 64M
Настройка через .user.ini
# Создайте файл .user.ini в корне сайта
memory_limit = 256M
max_execution_time = 60
upload_max_filesize = 64M
post_max_size = 64M
max_input_vars = 3000
Когда MultiPHP Manager не подходит
- Нужна разная версия PHP для двух поддиректорий одного домена, а не для всего домена целиком — MultiPHP Manager переключает версию на уровне домена, тонкая настройка требует .user.ini в конкретной папке
- Версия PHP в командной строке (SSH, cron) отличается от версии сайта — MultiPHP Manager управляет только веб-обработчиком PHP-FPM, а
php -vв терминале может показывать системную версию по умолчанию, если явно не указан путь вроде/usr/local/bin/ea-php82 - Нужно изменить директиву уровня PHP_INI_SYSTEM (disable_functions, open_basedir) для отдельного сайта — это делает только администратор сервера в основном php.ini, аккаунт cPanel такого доступа не имеет
- Требуется версия PHP, которой нет в списке MultiPHP Manager — список версий формируется администратором сервера через WHM EasyApache, добавить свою версию из cPanel нельзя
Проверить текущую версию PHP
<?php phpinfo(); ?>
// Сохраните как info.php, откройте, удалите после проверки!
# Через SSH версия CLI может отличаться от версии сайта:
php -v
Если версия в браузере (через phpinfo) и версия в терминале (через php -v) не совпадают — это нормально для cPanel: веб-версия управляется MultiPHP Manager отдельно от версии PHP CLI по умолчанию в системе. Для запуска cron-скриптов используйте полный путь к нужному бинарнику PHP, а не просто команду php. Подробнее о диагностике после смены версии — в статье логи ошибок в cPanel, а про сам механизм PHP Selector — в статье cPanel PHP Selector.