Apache 有效的open_basedir限制和子域
出于安全原因,我将我的Apache 有效的open_basedir限制和子域,apache,yii,Apache,Yii,出于安全原因,我将我的yii文件夹放在html根目录下,因此我的结构如下所示 /conf /httpdocs /httpsdocs /yii 运行站点时,我得到一个错误open_basedir限制,实际上yii.php调用index.php的httpdocs不在允许的路径中。由于此站点是子域,我是否编辑主域或子域的vhosts.conf 正确的设置是什么 /var/www/vhosts/example.com/subdomains/mysubdomain/yii 可访问的路径 编辑 所以
yii
文件夹放在html根目录下,因此我的结构如下所示
/conf
/httpdocs
/httpsdocs
/yii
运行站点时,我得到一个错误open_basedir限制,实际上yii.php
调用index.php
的httpdocs
不在允许的路径中。由于此站点是子域,我是否编辑主域或子域的vhosts.conf
正确的设置是什么
/var/www/vhosts/example.com/subdomains/mysubdomain/yii
可访问的路径
编辑 所以我的
/var/www/vhosts/example.com/conf/vhost.conf
文件现在看起来像这样:
AddHandler fcgid-script .php
<Directory /var/www/vhosts/example.com/httpdocs>
php_admin_value open_basedir ".:/var/www/vhosts/example.com/subdomains/mysubdomain/httpdocs:/tmp/:/var/www/vhosts/example.com/subdomains/mysubdomain/yii"
FCGIWrapper /var/www/vhosts/example.com/bin/php-cgi .php
Options +ExecCGI +FollowSymLinks
allow from all
</Directory>
在虚拟主机中:
php_admin_value open_basedir ".:/var/www/vhosts/example.com/subdomains/mysubdomain/httpdocs:/my/own/tmp:/var/www/vhosts/example.com/subdomains/mysubdomain/yii"
我找到了答案。您必须指定不同的模块,否则简单地编辑vhost文件不会有多大效果。这是为了关闭open_basedir,但您可以相应地编辑设置
<Directory /var/www/vhosts/YOURDOMAIN.COM/subdomains/YOUSUBDOMAIN/httpdocs>
<IfModule sapi_apache2.c>
php_admin_value open_basedir none
</IfModule>
<IfModule mod_php5.c>
php_admin_value open_basedir none
</IfModule>
</Directory>
完整的文章可以在这里找到:你看了吗:?对于那些仍在挣扎的人,这里有一篇文章帮助我解决了这个问题:
<Directory /var/www/vhosts/YOURDOMAIN.COM/subdomains/YOUSUBDOMAIN/httpdocs>
<IfModule sapi_apache2.c>
php_admin_value open_basedir none
</IfModule>
<IfModule mod_php5.c>
php_admin_value open_basedir none
</IfModule>
</Directory>
# /usr/local/psa/admin/bin/websrvmng --reconfigure-vhost --vhost-name=YOURDOMAIN.COM
# apachectl stop
# apachectl start