Отключение 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-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 включена

И так — при отключённой:

open_basedir отключена open_basedir отключена

Помощь

Если у вас возникли вопросы или требуется помощь, пожалуйста, свяжитесь с нами через систему тикетов — мы обязательно вам поможем!

Обновлено:
Нужна помощь?Наши инженеры бесплатно помогут с любым вопросом за считанные минутыНаписать нам