1.找到apache配置文件:httpd.conf

关于apache的配置文件,不同的linux主机可能放置在不同的地方,尤其对于那些编译安装的环境来说,放置的位置就更加不固定了,找到httpd.conf用编辑器打开。
打开Apache的安装目录,找到httpd.conf文件,分别去掉下面两行文字前面的#号。

LoadModule vhost_alias_module modules/mod_vhost_alias.so

去掉#意思是启用apache的虚拟主机功能。

Include conf/extra/httpd-vhosts.conf  

去掉这一行的#意思是从conf/extra/httpd-vhosts.conf这个文件导入虚拟主机配置。打开它就可以在httpd-vhosts.conf文件里写虚机配置,而不是一定要在 httpd.conf 里面写了。直接在httpd.conf中写配置也可以,但不建议这么做。

2.修改配置文件,添加虚拟主机

查找如下的配置信息:

# ServerAdmin webmaster@dummy-host.example.com
# DocumentRoot /www/docs/dummy-host.example.com
# ServerName dummy-host.example.com

# ErrorLog logs/dummy-host.example.com-error_log
# CustomLog logs/dummy-host.example.com-access_log common

解释:
ServerAdmin    网站管理员邮箱  随便填
DocumentRoot    项目的根目录   (这个改成你自己项目的根目录)
ServerName   名字 随便填
ServerAlias   名字 随便填
ErrorLog  发生错误的日志文件
CustomLog   也是一个日志文件
<VirtualHost *:80>
# ServerAdmin webmaster@dummy-host.example.com
DocumentRoot /var/www/web/wordpress
ServerName www.mr-c.cn
ErrorLog logs/www.mr-c.cn-error_log
CustomLog logs/www.mr-c.cn-access_log common
</VirtualHost>
<VirtualHost *:80>
# ServerAdmin webmaster@dummy-host.example.com
DocumentRoot /var/www/web/wosn
ServerName www.wosn.net
ErrorLog logs/www.wosn.net-error_log
CustomLog logs/www.wosn.net-access_log common
</VirtualHost>

在这里我们用到两个域名 www.wosn.netwww.mr-c.cn,在实际应用中将其替换为自己的域名。当然,如果你要配置更多的站点,可以参考这样的方式继续添加,我们用两个站点作为说明。

以域名www.wosn.net为例,需要说明一个问题,如果你在解析域名的时候将 www.wosn.net 和wosn.net都进行了解析,这个时候你访问wosn.net的时候可能访问到的是 www.mr-c.cn 这个站点而不是 www.wosn.net,这该怎么办呢?我们可以在配置文件中再添加一个虚拟主机,即在配置文件添加:

<VirtualHost *:80>
# ServerAdmin webmaster@dummy-host.example.com
DocumentRoot /var/www/web/wosn
ServerName wosn.net
ErrorLog logs/www.wosn.net-error_log
CustomLog logs/www.wosn.net-access_log common
</VirtualHost>

3.配置完成,重启apache

修改完配置文件后,记得一定要重启apache,否则修改是不会起到作用的,这是很多刚上手的人员最容易忽略的问题。

4.apache配置文件说明

打开Apache的配置文件httpd.conf,在Listen 80下面添加多个监听端口如:
Listen 8011
Listen 8088
这样就增加了8011和8088端口的监听
然后在最后的位置设置虚拟主机目录
ServerName:    是服务的名字,只能填写一个域名
ServerAlias:    servername的别名,使一个服务可以绑定多个域名,用空格隔开
DocumentRoot /www/aaa/bbb :     网站的根目录
DirectoryIndex example.php :        设置默认的访问页面,即首页
例如访问两个域名aaa.zzz.com, bbb.zzz.com,网站目录/www/aaa/bb
DocumentRoot /www/aaa/bbb
ServerName   aaa.zzz.com
ServerAlias  bbb.zzz.com
DirectoryIndex test.php
再重启apache即可