Отключение open_basedir в Hestia CP
Руководство по отключению ограничения open_basedir для сайта.
Hestia CP — одна из самых популярных и удобных панелей управления хостингом. С её помощью можно добавлять сайты, управлять почтой и базами данных, настраивать SSL, работать с файлами и планировщиком задач.
Что такое open_basedir и зачем её отключать
Функция open_basedir ограничивает доступ PHP-скриптов к файлам и каталогам за пределами корневой директории сайта. Это изолирует сайты друг от друга: каждый видит только свои файлы и не может влиять на работу других.
Однако в некоторых случаях эта функция мешает нормальной работе — например, когда скрипты легитимно обращаются к файлам за пределами корня сайта. Признак проблемы — ошибка в логах или на странице:
open_basedir restriction in effect
Если вы столкнулись с такой ошибкой, функцию можно отключить для конкретного сайта.
Отключение open_basedir
Файлы шаблонов PHP-FPM располагаются по пути:
/usr/local/hestia/data/templates/web/php-fpm/
Каждый шаблон соответствует определённой версии PHP. Например, для PHP 8.0 это файл PHP-8_0.tpl.
Файлы шаблонов PHP-FPM в Hestia CP
В нужном файле найдите строку:
php_admin_value[open_basedir] = ...
Закомментируйте её, добавив ; в начало:
;php_admin_value[open_basedir] = ...
Это можно сделать вручную в любом текстовом редакторе (nano, vim) или выполнить следующую команду, которая найдёт и закомментирует строку автоматически.
Обратите внимание на имя файла в команде — если у вас другая версия PHP, замените
PHP-8_0.tplна соответствующий файл.
sed -i 's/php_admin_value\[open_basedir\]/;php_admin_value\[open_basedir\]/g' /usr/local/hestia/data/templates/web/php-fpm/PHP-8_0.tpl
Сохраните файл (Ctrl + O → Enter → Ctrl + X).
Применение изменений
После редактирования шаблона необходимо применить его к сайту и перезапустить PHP. Выполните команду, предварительно заменив три параметра на свои:
admin— имя пользователя панели управления, в котором размещён сайтexample.com— домен сайтаPHP-8_0— название шаблона, который вы редактировали
v-change-web-domain-backend-tpl admin example.com PHP-8_0
Проверка результата
Убедитесь, что функция отключена, с помощью скрипта phpinfo().
Так выглядит open_basedir при включённой функции:
open_basedir включена
И так — при отключённой:
open_basedir отключена
Помощь
Если у вас возникли вопросы или требуется помощь, пожалуйста, свяжитесь с нами через систему тикетов — мы обязательно вам поможем!