如何配置apache虚拟主机的实例小结(如何配置apache虚拟主机的实例小结文件)

如何配置apache虚拟主机的实例小结(如何配置apache虚拟主机的实例小结文件)

扫码添加渲大师小管家,免费领取渲染插件、素材、模型、教程合集大礼包!

1。基于ip地址的虚拟主机

复制代码 代码如下:
Listen 80
<VirtualHost 172.20.30.40>
DocumentRoot /home/httpd/html1
ServerName www.ok1.com
ErrorLog /usr/local/apache/logs/error1_log
CustomLog /usr/local/apache/logs/access1_log combined
</VirtualHost>
<VirtualHost 172.20.30.50>
DocumentRoot /home/httpd/html2
ServerName www.ok2.com
ErrorLog /usr/local/apache/logs/error2_log
CustomLog /usr/local/apache/logs/access2_log combined
</VirtualHost>

2。基于IP 和多端口的虚拟主机配置

复制代码 代码如下:
Listen 172.20.30.40:80
Listen 172.20.30.40:8080
Listen 172.20.30.50:80
Listen 172.20.30.50:8080

<VirtualHost 172.20.30.40:80>
DocumentRoot /www/example1-80
ServerName www.example1.com
</VirtualHost>
<VirtualHost 172.20.30.40:8080>

DocumentRoot /www/example1-8080
ServerName www.example1.com
</VirtualHost>
<VirtualHost 172.20.30.50:80>
DocumentRoot /www/example2-80
ServerName www.example1.org
</VirtualHost>
<VirtualHost 172.20.30.50:8080>
DocumentRoot /www/example2-8080
ServerName www.example2.org
</VirtualHost>

3。单个IP 地址的服务器上基于域名的虚拟主机配置

复制代码 代码如下:
# Ensure that Apache listens on port 80
Listen 80
# Listen for virtual host requests on all IP addresses
NameVirtualHost *:80
<VirtualHost *:80>
DocumentRoot /www/example1
ServerName www.example1.com
ServerAlias example1.com. *.example1.com
# Other directives here
</VirtualHost>
<VirtualHost *:80>
DocumentRoot /www/example2
ServerName www.example2.org
# Other directives here
</VirtualHost>

如果您感觉上面的文章还不够详细可以看下下面的文章:

实验目标:在apache实现基于域名的虚拟主机
实验用的XAMPP版本为1.7.7。内含apache版本为2.2.21

实验前准备:

1. 为了测试不同的域名。在Windows/System32/drivers/etc/下觅得hosts文件。在其中添加实验用的域名若干。如 -

复制代码 代码如下:
127.0.0.1 test1.net
127.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。内容 -

复制代码 代码如下:
<HTML>
<HEAD></HEAD>
<BODY>
<H1>hello~, 这是[对应的网站名。用以区别].net</H1></BODY>
</HTML>

实验步骤:

1. 找到apache/conf/httpd.conf, 将其中的

ServerAdmin
ServerName
DocumentRoot
注释掉。

2. 在httpd.conf中。找到行

Include "conf/extra/httpd-vhosts.conf"
如被注释则解注。该文件记载了虚拟主机的参数。[以前虚拟主机参数是直接填写在httpd.conf中的。为了更好地组织文件。将其分离出去。类似于某些编程语言一样。因此httpd.conf中include它。即相当于把它的内容填在了httpd.conf中。]

3. 这个httpd-vhosts.conf文件格式基本如下 -

复制代码 代码如下:
#blah-blah
NameVirtualHost *:80
#blah-blah
#blah-blah
<VirtualHost *:80>
ServerAdmin XXXXXXXX
DocumentRoot "XXXXXXXX"
ServerName XXXXXXX
ServerAlias XXXXXX
ErrorLog "logs/XXXXXX-error.log"
CustomLog "logs/XXXXXXX-error.log" combined
</VirtualHost>

需要修改的。就是<VirtualHost>中的参数了。这个可以参见apache官方文档。根据实验域名。可以增加两个<VirtualHost>:

复制代码 代码如下:
<VirtualHost *:80>
ServerAdmin adm@test1.net
DocumentRoot "C:/xampp/htdocs1/test1.net"
ServerName test1.net
ServerAlias www.test1.net
ErrorLog "logs/test1-error.log"
CustomLog "logs/test1-access.log" combined

<Directory "C:/xampp/htdocs1/test1.net">
order allow,deny
allow from all
</Directory>
</VirtualHost>
<VirtualHost *:80>
ServerAdmin adm@test2.net
DocumentRoot "C:/xampp/htdocs1/test2.net"
ServerName test2.net
ServerAlias www.test2.net
ErrorLog "logs/test1-error.log"
CustomLog "logs/test1-access.log" combined

<Directory "C:/xampp/htdocs1/test2.net">
order allow,deny
allow from all
</Directory>
</VirtualHost>

注意。如果不在各VirtualHost中定义Directory的可访问性。你将遇到的是Access Forbidden!就连原来的localhost也是。

4. 由于之前注释掉了httpd.conf中的ServerName, DocumentRoot等。为了仍然能以localhost访问原XAMPP欢迎页。就在增加一个VirtualHost。如下 -

复制代码 代码如下:
<VirtualHost *:80>
ServerAdmin adm@localhost
DocumentRoot "C:/xampp/htdocs"
ServerName localhost

ErrorLog "logs/localhost-error.log"
CustomLog "logs/localhost-access.log" combined

<Directory "C:/xampp/htdocs">
order allow,deny
allow from all
</Directory>
</VirtualHost>

为了避免出错。把它放置在第一个Virtualhost位置。

至此。apache基于域名的虚拟主机配置完成。可以通过http://localhost访问XAMPP欢迎页。通过http://test1.net和http://test2.net访问各自的主页。

#
# 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
# <URL:http://httpd.apache.org/docs/2.2/vhosts/>
# for further details before you try to setup virtual hosts.
#
# You may use the command line option '-S' to verify your virtual host
# configuration.

#
# 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 <VirtualHost> block.
#

<VirtualHost *:80>
ServerAdmin kongdaoxian@gmail.com
DocumentRoot "E:/skydao/apache2/htdocs"
ServerName localhost
ServerAlias www.skydao.com
ErrorLog "logs/localhost-error.log"
CustomLog "logs/localhost-access.log" combined

<Directory "E:/skydao/apache2/htdocs">
order allow,deny
allow from all
</Directory>
</VirtualHost>

<VirtualHost *:80>
ServerAdmin kongdaoxian@gmail.com
DocumentRoot "E:/skydao/apache2/htdocs/project1"
ServerName project1.com
ServerAlias www.project1.com
ErrorLog "logs/project1-error.log"
CustomLog "logs/project1-access.log" combined

<Directory "E:/skydao/apache2/htdocs/project1">
order allow,deny
allow from all
</Directory>
</VirtualHost>

<VirtualHost *:80>
ServerAdmin kongdaoxian@gmail.com
DocumentRoot "E:/skydao/apache2/htdocs/zendTest/public"
ServerName zendTest.com
ServerAlias www.zendTest.com
DirectoryIndex index.php
<Directory />
Options FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
</VirtualHost>

<VirtualHost *:80>
ServerAdmin kongdaoxian@gmail.com
DocumentRoot "E:/skydao/apache2/htdocs/testRewrite"
ServerName testRewrite.com
ServerAlias www.testRewrite.com
# DirectoryIndex index.php
<Directory />
Options FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
</VirtualHost>

<VirtualHost *:80>
ServerAdmin kongdaoxian@gmail.com
DocumentRoot "E:/skydao/apache2/htdocs/test"
ServerName test.com
ServerAlias www.test.com
ErrorLog "logs/zendTest-error.log"
CustomLog "logs/zendTest-access.log" combined

<Directory "E:/skydao/apache2/htdocs/test">
order allow,deny
allow from all
</Directory>
</VirtualHost>

分享到 :
相关推荐

VPS和云主机有什么不同

云计算的使用越来越广泛。云主机的普遍程度也越来越高。但仍然有人分不清VPS与云主机之...

租用国内免备案空间靠谱吗(国内免备案空间试用)

大家都知道国内主机建站访问速度快。但租用国内空间是一定要备案的。然而现在市场有出现打...

虚拟主机收费吗(虚拟主机收费吗安全吗)

虚拟主机收费吗?0元虚拟主机是真的免费吗?虚拟主机绝大多数是收费的。虚拟主机价格低。...

免费虚拟主机好用吗(免费虚拟主机好用吗知乎)

免费虚拟主机好用吗?很多站长为了节省虚拟主机租用费用。可能会选择一些免费虚拟主机。虽...

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注