陈力:传智播客古代 珍宝币 泡泡龙游戏开发第十八讲:apache虚拟目录及虚拟主机配置
虚拟目录是网站建设中必须掌握的知识,本节介绍了apache配置虚拟目录、apache访问权限控制、apache虚拟主机配置等内容,最后通过实例进行深入学习。
在网站建设中,我们把web应用放在apache默认的hdocs目录下,apache就会自动的管理,但是大家在网站建设中,可能要考虑一个问题:
假设apache所在磁盘(比如f:分区)空间的问题,我们能不能把web应用放在另外一个分区(比如d:分区),同样让apache去管理呢?
一、apache配置虚拟目录
配置虚拟目录在apache的conf目录下httpd.conf 的<IfModule dir_module>节点后添加如下代码:
1、添加虚拟目录的节点
#配置虚拟目录
<IfModule dir_module>
#direcotory相当于是欢迎页面
DirectoryIndex index.html index.htm index.php
#你的站点别名
Alias /web " D:/wwwroot/PHP/myenv/MyWeb"
<Directory D:/wwwroot/PHP/myenv/MyWeb>
#这是访问权限设置
Order allow,deny
Allow from all
</Directory>
</IfModule>
2、注销documentroot路径,否则不能生效,如果不注销原来那个默认路径也是有效的。
#DocumentRoot "C:/Program Files/Apache Software Foundation/Apache2.2/htdocs"
3、测试
http://localhost/web/news.html
4、如何设置欢迎页面, 输入地址时就显示页面内容,无需输入news.html文件名。
http://localhost/web/
DirectoryIndex news.html index.html index.htm index.php
二、apache访问权限控制
<Directory D:/wwwroot/PHP/myenv/MyWeb>
Order allow,deny
Allow from all
</Directory>
<Directory D:/wwwroot/PHP/myenv/MyWeb>#表示对D盘下目录D:/wwwroot/PHP/myenv/MyWeb的文件权限设置。
Order allow,deny表示先许可所有的IP访问,deny表示拒绝所有。
先许可访问,再拒绝所有,最后也表示拒绝所有。
Allow from all:表示允许所有。
//关于apache安全设置的练习题
order deny,allow
allow from 218.20.253.2
deny from 218.20
解释:
(1)先拒绝所有通过,允许所有通过=》允许所有通过。
(2)218.20开头的被拒绝。(先看写在前面的deny,再看allow)
(3)218.20.253.2这被通过放行。
例二,将allow,deny交换位置后的情况:
order allow,deny
allow from 218.20.253.2
deny from 218.20
解释:
(1)先允许所有通过,拒绝所有通过=》拒绝所有通过。
(2)218.20.253.2放行,(先看写在前面的allow)
(3)218.20又被拒绝,218.20.253.2也被拒绝了,所以全部被拒绝。
三、apache虚拟主机配置
思考问题:
通过前面的配置,可以在浏览器地址栏输入http://localhost/web/news.html 即可访问。
我们在实际贵阳网站建设中,我们访问网站的过程中,不可能使
http://localhost:80 的方式去访问网站,实际上使用类似:
http://www.sina.com.cn 或者
http://news.sina.com.cn 的方式去访问网站,这个又是怎么实现这功能的呢?
目前我们是 http://localhost/web/
需求我希望通过
http://www.gjl.com和http://www.sohu.com即实现相同的功能。
操作步骤如下:
(1)启用httpd-vhosts.conf
方法是在httpd.conf 文件中
# Virtual hosts ,虚拟主机
Include conf/extra/httpd-vhosts.conf
表示虚拟主机的配置是放在conf/extra/httpd-vhosts.conf文件中的。
(2)在httpd-vhosts.conf文件中做配置
#贵阳网站建设人员可以在这个地方配置自己的虚拟主机
<VirtualHost 127.0.0.1:8080>
DocumentRoot "D:/wwwroot/PHP/myenv/MyWeb"
#这里配置欢迎首页面
DirectoryIndex news.html index.html index.htm index.php
<Directory />
Options FollowSymLinks
#AllowOverride表示不许可别人修改我们的页面
AllowOverride None
#设置访问权限
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
(3)修改hosts 文件
在C盘系统目录找到:C:\Windows\System32\drivers\etc\hosts
在hosts中修改
127.0.0.1 localhost
127.0.0.1 www.gjl.com
完成之后重新启动apache,在浏览器地址栏输入www.gjl.com即可显示http://localhost/web/news.html所示的页面内容。
四、apache虚拟主机配置实例
实例:在httpd.conf文件中配置一台www.sohu.cn的虚拟主机,然后在window系统中注册www.sohu.cn这台主机。
步骤:
(1)在httpd.conf 文件中启用 httpd-vhosts.conf(即把就是把#注销掉)
# Virtual hosts,注释行,虚拟主机,此行#号不注销。
Include conf/extra/httpd-vhosts.conf
(2)假设我们的虚拟主机在D:/myweb盘 [该站点要在配置之前建好的,其中有一个abc.html的文件]
(3)设置http-vhosts.conf文件
#配置我们自己的虚拟主机
<VirtualHost 127.0.0.1:80>
DocumentRoot "d:/myweb"
#这里配置欢迎首页面
DirectoryIndex abc.html index.html index.htm index.php
<Directory />
Options FollowSymLinks
#不许可别人修改我们的页面
AllowOverride None
#设置访问权限
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
(4)在hosts文件中添加ip 和主机映射关系
c:/windows/system32/drivers/etc/hosts
127.0.0.1 www.sohu.cn
完成之后即可在浏览器中输入www.sohu.cn则访问127.0.0.1下面的abc.html
【推荐阅读】
陈力:传智播客古代 珍宝币 泡泡龙游戏开发第十八讲:apache虚拟目录及虚拟主机配置