|
Red Hat 8.0上有运行PHP权限的Apache的虚拟主机安全问题。
我先简单说说我的配置过程一下:
A、我在 /etc/hosts 文件中添加了如下内容
127.0.0.1 www.aaa.com
127.0.0.1 www.bbb.com
B、我在 /var/www/html/ 下建了 www.aaa.com 及 www.bbb.com 两个目录,在 www.aaa.com 下有个PHP文件(1.php)内容如下:
<?php
include "../www.bbb.com/2.php";
echo $file;
?>
在 www.bbb.com 下有个2.php文件,内容如下:
<?php
$file="2.php";
?>
C、apache的httpd.conf的虚拟主机设置如下
<VirtualHost 127.0.0.1>
ServerAdmin sc@lin.net.cn
DocumentRoot /var/www/html/www.aaa.com/
ServerName www.aaa.com
</VirtualHost>
<VirtualHost 127.0.0.1>
ServerAdmin sc@lin.net.cn
DocumentRoot /var/www/html/www.bbb.com/
ServerName www.bbb.com
</VirtualHost>
重启动apache后,在IE中看http://www.aaa.com/1.php的输出结果是:2.php
这说明 www.aaa.com 虚拟主机中的文件已经读取了它目录以外的文件。如何防止这种情况的出现?
我试图将
<VirtualHost 127.0.0.1>
ServerAdmin sc@lin.net.cn
DocumentRoot /var/www/html/www.aaa.com/
ServerName www.aaa.com
</VirtualHost>
改为
<VirtualHost 127.0.0.1>
ServerAdmin sc@lin.net.cn
DocumentRoot /var/www/html/www.aaa.com/
ServerName www.aaa.com
<Directory "/var/www/html/www.aaa.com/">
php_admin_value safe_mode 0
php_admin_value open_basedir "/"
</Directory>
</VirtualHost>
可是这样一改。Apache就报错,启动不了。
请问我改怎么做?才能达到每个虚拟主机下的PHP文件只能读取其根文档下(如 /var/www/html/www.aaa.com/ )的文件,谢谢! |
|