open_basedir ограничивает файлы, которые могут быть открыты PHP в дереве каталогов.
Я храню несколько библиотек классов и файлов конфигурации вне моего корневого каталога. Таким образом, веб-сервер не делает их общедоступными. Однако, когда я пытаюсь включить их из своего приложения, я получаю ошибку ограничения open_basedir следующим образом:
Предупреждение: realpath() [function.realpath]: open_basedir ограничение по сути. Файл (/var/www/vhosts/domain.tld/zend/application) не находится в пределах допустимого пути (путей): (/var/www/vhosts/domain.tld/httpdocs:/tmp) в /var/www/vhosts/domain.tld/httpdocs/index.php в строке 5
Мой веб-корень здесь:
/var/www/vhosts/domain.tld/httpdocs
Мои библиотеки и каталог конфигурации находятся здесь:
/var/www/vhosts/domain.tld/zend
Каким будет оптимальное решение для ограничения ограничения open_basedir, чтобы дерево каталогов в папке домена стало доступно моему приложению? У меня есть ряд доменов, с которыми я хочу это сделать, и я также явно опасаюсь создания уязвимостей безопасности.
Примечание. Я использую CentOS, Apache, Plesk, и у меня есть root ssh доступ к серверу. И хотя это не относится к Zend Framework напрямую, я использую его в этом экземпляре. Итак, вот включение из бутстрапа Zend:
define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/../zend/application/'));
set_include_path(APPLICATION_PATH . '/../zend/library' . PATH_SEPARATOR . get_include_path());