Как отключить функцию open_basedir в Hestia CP

2 октября, 2023

Если загрузка страниц на сайте сопровождается проблемами, связанными с open_basedir, можно отключить указанную функцию. Об этом свидетельствует ошибка open_basedir restriction in effect, которая возникает в [логах ошибок] на сервере или на страницах сайта.  

Суть open_basedir заключается в ограничении доступа PHP-скриптов сайта к другим каталогам и скриптам, размещенным за его пределами. Основное назначение функции заключается в изоляции сайтов, чтобы каждый из них выделял файлы или каталоги своей корневой директории без вмешательства в аналогичные системы других сайтов.  

Актуальность приведенного ниже алгоритма сохраняется для панели Hestia. Прежде чем начать работу, пользователю необходимо убедиться в проведении [снапшота сервера], ведь ответственность за процесс возлагается на владельца сервера. Алгоритм действий таков:

  1. Закомментировать строку, относящуюся к указанной функции, в шаблонном конфигурационном файле. Расположение шаблонных файлов можно найти по пути /usr/local/hestia/data/templates/web/php-fpm/. Их названия похожи на наименования версий PHP. Например, для версии 7.4 предусмотрен шаблон с названием PHP-7_4.tpl.  Строку php_admin_value[open_basedir] = необходимо закомментировать. В начало строки добавляется символ точки с запятой, например ;php_admin_value[open_basedir] = … Выполнить поставленное задание можно в любом редакторе файлов — например, vim или nano. Поможет справиться команда sed -i ‘s/php_admin_value\[open_basedir\]/;php_admin_value\[open_basedir\]/g’ /usr/local/hestia/data/templates/web/php-fpm/PHP-7_4.tpl. В ней стоит обратить внимание на имя файла: он должен соответствовать желаемой версии PHP. Пользователь должен изменить название в соответствии с потребностью. 
  2. Внести изменения в основную конфигурацию сайта и перезагрузить службу PHP. Действия выполняются вручную с помощью панели управления или через команду v-change-web-domain-backend-tpl admin example.pp.ua PHP-7_4. В указанной строке есть три переменные: имя пользователя, домен сайта и название шаблона — соответственно admin, example.pp.ua, PHP-7_4. Пользователь изменяет указанные данные по своей необходимости перед запуском команды.
  3. Проверить отключение функции. 

Последний этап проводится с применением скрипта phpinfo.