Windows 2000系统上有运行PHP权限的Apache的虚拟主机安全问题。
本问题在apache版为: http://expert.csdn.net/Expert/topic/2244/2244180.xml?temp=.2409784
我先简单说说我的配置一下:
A、我在C:\WINNT\system32\drivers\etc\hosts文件中添加了如下内容
127.0.0.1 www.aaa.com
127.0.0.1 www.bbb.com
B、我在D盘下建了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 d:/www.aaa.com/
ServerName www.aaa.com
</VirtualHost>
<VirtualHost 127.0.0.1>
ServerAdmin sc@lin.net.cn
DocumentRoot d:/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 d:/www.aaa.com/
ServerName www.aaa.com
</VirtualHost>
改为
<VirtualHost 127.0.0.1>
ServerAdmin sc@lin.net.cn
DocumentRoot d:/www.aaa.com/
ServerName www.aaa.com
<Directory d:/www.aaa.com/>
php_admin_value safe_mode 0
php_admin_value open_basedir "/"
</Directory>
</VirtualHost>
可是这样一改。Apache就报错。(the requested operation has failed!)
请问我改怎么做?才能达到每个虚拟主机下的PHP文件只能读取其根文档下(如 d:/www.aaa.com/)的文件,谢谢!