gpt4 book ai didi

php - 如何放宽 PHP 的 open_basedir 限制?

转载 作者:IT王子 更新时间:2023-10-28 23:53:29 26 4
gpt4 key购买 nike

open_basedir限制 PHP 在目录树中可以打开的文件。

我在我的 web 根目录之外存储了几个类库和配置文件。这样,Web 服务器就不会让它们公开访问。但是,当我尝试从我的应用程序中包含它们时,我得到一个 open_basedir 限制错误,如下所示:

Warning: realpath() [function.realpath]: open_basedir restriction in effect. File(/var/www/vhosts/domain.tld/zend/application) is not within the allowed path(s): (/var/www/vhosts/domain.tld/httpdocs:/tmp) in /var/www/vhosts/domain.tld/httpdocs/index.php on line 5

我的网络根目录在这里:

/var/www/vhosts/domain.tld/httpdocs

我的库和配置目录在这里:

/var/www/vhosts/domain.tld/zend

放宽 open_basedir 限制以便域文件夹下的目录树可供我的应用程序使用的最佳解决方法是什么?我有许多域想要这样做,而且我显然也对创建安全漏洞持谨慎态度。

注意:我使用的是 CentOS、Apache、Plesk,并且我拥有对服务器的 root ssh 访问权限。虽然这并不直接适用于 Zend Framework,但我在本例中使用它。所以这里是 Zend 的 Bootstrap 中包含的内容:

define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/../zend/application/'));
set_include_path(APPLICATION_PATH . '/../zend/library' . PATH_SEPARATOR . get_include_path());

最佳答案

您也可以使用 Apache(假设这是您的 Web 服务器)配置文件(例如 httpd.conf)在每个目录的基础上轻松完成此操作

<Directory /var/www/vhosts/domain.tld/httpdocs>
php_admin_value open_basedir "/var/www/vhosts/domain.tld/httpdocs:/var/www/vhosts/domain.tld/zend"
</Directory>

你也可以完全解除限制

<Directory /var/www/vhosts/domain.tld/httpdocs>
php_admin_value open_basedir none
</Directory>

关于php - 如何放宽 PHP 的 open_basedir 限制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/223800/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com