1、基于ip地址的虚拟主机
复制代码
代码如下:Listen 80
DocumentRoot /home/httpd/html1ServerName www.ok1.comErrorLog /usr/local/apache/logs/error1_logCustomLog /usr/local/apache/logs/access1_log combinedDocumentRoot /home/httpd/html2ServerName www.ok2.comErrorLog /usr/local/apache/logs/error2_logCustomLog /usr/local/apache/logs/access2_log combined
2、基于IP 和多端口的虚拟主机配置
复制代码
代码如下:Listen 172.20.30.40:80Listen 172.20.30.40:8080Listen 172.20.30.50:80Listen 172.20.30.50:8080
DocumentRoot /www/example1-80ServerName www.example1.comDocumentRoot /www/example1-8080ServerName www.example1.comDocumentRoot /www/example2-80ServerName www.example1.orgDocumentRoot /www/example2-8080ServerName www.example2.org
3、单个IP 地址的服务器上基于域名的虚拟主机配置
复制代码
代码如下:# Ensure that Apache listens on port 80Listen 80# Listen for virtual host requests on all IP addressesNameVirtualHost *:80
DocumentRoot /www/example1ServerName www.example1.comServerAlias example1.com. *.example1.com# Other directives hereDocumentRoot /www/example2ServerName www.example2.org# Other directives here
如果您感觉上面的文章还不够详细可以看下下面的文章:实验目标:在apache实现基于域名的虚拟主机实验用的XAMPP版本为1.7.7,内含apache版本为2.2.21实验前准备:
1. 为了测试不同的域名,在Windows/System32/drivers/etc/下觅得hosts文件,在其中添加实验用的域名若干,如 -
复制代码
代码如下:127.0.0.1 test1.
NET127.0.0.1 test2.net
如此,则在浏览器中输入该俩域名时,Windows将其解析为127.0.0.1本地地址。即,在浏览器中访问localhost, test1.net, test2.net均可访问XAMPP的欢迎页。
2. 在apache目录下建立目录,以放置您不同的网站。为保护XAMPP原有的htdocs中的欢迎页内容,实验另外建立了与htdocs平级的htdocs1目录,在其下建立了test1.net, test2.net两个子目录用以放置实验用的网站。如下 -apache/htdocs1/test1.net - 放置test1.net网站内容apache/htdocs1/test2.net - 放置test2.net网站内容
在这两个目录中各新建hello world一网页 index.html,内容 -
复制代码
代码如下:
hello~, 这是[对应的网站名,用以区别].net
实验步骤:
1. 找到apache/conf/httpd.conf, 将其中的
ServerAdminServerNameDocumentRoot注释掉。2. 在httpd.conf中,找到行
Include "conf/extra/httpd-vhosts.conf"如被注释则解注。该文件记载了虚拟主机的参数。[以前虚拟主机参数是直接填写在httpd.conf中的,为了更好地组织文件,将其分离出去,类似于某些编程语言一样。因此httpd.conf中include它,即相当于把它的内容填在了httpd.conf中。]3. 这个httpd-vhosts.conf文件格式基本如下 -
复制代码
代码如下:#blah-blahNameVirtualHost *:80#blah-blah#blah-blah
ServerAdmin XXXXXXXXDocumentRoot "XXXXXXXX"ServerName XXXXXXXServerAlias XXXXXXErrorLog "logs/XXXXXX-error.log"CustomLog "logs/XXXXXXX-error.log" combined
需要修改的,就是中的参数了。这个可以参见apache官方文档。根据实验域名,可以增加两个:
复制代码
代码如下:
ServerAdmin adm@test1.netDocumentRoot "C:/xampp/htdocs1/test1.net"ServerName test1.netServerAlias www.test1.netErrorLog "logs/test1-error.log"CustomLog "logs/test1-access.log" combinedorder allow,denyallow from allServerAdmin adm@test2.netDocumentRoot "C:/xampp/htdocs1/test2.net"ServerName test2.netServerAlias www.test2.netErrorLog "logs/test1-error.log"CustomLog "logs/test1-access.log" combinedorder allow,denyallow from all
注意,如果不在各VirtualHost中定义Directory的可访问性,你将遇到的是Access Forbidden!就连原来的localhost也是。4. 由于之前注释掉了httpd.conf中的ServerName, DocumentRoot等,为了仍然能以localhost访问原XAMPP欢迎页,就在增加一个VirtualHost,如下 -
复制代码
代码如下:
ServerAdmin adm@localhostDocumentRoot "C:/xampp/htdocs"ServerName localhostErrorLog "logs/localhost-error.log"CustomLog "logs/localhost-access.log" combinedorder allow,denyallow from all
为了避免出错,把它放置在第一个Virtualhost位置。至此,apache基于域名的虚拟主机配置完成。可以通过访问XAMPP欢迎页,通过和访问各自的主页。## Virtual Hosts#
# If you want to maintain multiple domains/hostnames on your# machine you can setup VirtualHost containers for them. Most configurations# use only name-based virtual hosts so the server doesn't need to worry about# IP addresses. This is indicated by the asterisks in the directives below.## Please see the documentation at#
## Use name-based virtual hosting.#NameVirtualHost *:80
## VirtualHost example:# Almost any Apache directive may go into a VirtualHost container.# The first VirtualHost section is used for all requests that do not# match a ServerName or ServerAlias in any block.#
ServerAdmin kongdaoxian@gmail.comDocumentRoot "E:/skydao/apache2/htdocs"ServerName localhostServerAlias www.skydao.comErrorLog "logs/localhost-error.log"CustomLog "logs/localhost-access.log" combinedorder allow,denyallow from all
ServerAdmin kongdaoxian@gmail.comDocumentRoot "E:/skydao/apache2/htdocs/project1"ServerName project1.comServerAlias www.project1.comErrorLog "logs/project1-error.log"CustomLog "logs/project1-access.log" combinedorder allow,denyallow from all
ServerAdmin kongdaoxian@gmail.comDocumentRoot "E:/skydao/apache2/htdocs/zendTest/public"ServerName zendTest.comServerAlias www.zendTest.comDirectoryIndex index.phpOptions FollowSymLinksAllowOverride NoneOrder allow,denyAllow from all
ServerAdmin kongdaoxian@gmail.comDocumentRoot "E:/skydao/apache2/htdocs/testRewrite"ServerName testRewrite.comServerAlias www.testRewrite.com# DirectoryIndex index.phpOptions FollowSymLinksAllowOverride NoneOrder allow,denyAllow from all
ServerAdmin kongdaoxian@gmail.comDocumentRoot "E:/skydao/apache2/htdocs/test"ServerName test.comServerAlias www.test.comErrorLog "logs/zendTest-error.log"CustomLog "logs/zendTest-access.log" combinedorder allow,denyallow from all
发表评论