利用Apache Httpd创建多个站点

默认装好Apache Httpd是只有一个站点的,一般在“/var/www/html/”这个目录,如果需求只有一个站点的话并没什么不方便,但如果想要建立多个站点的话,只一个目录就会很麻烦(我被坑了很久),网上很多搜到的相关资料大部分是通过在默认站点目录“/var/www/html”创建多个子目录来建立多个站点,然后做301跳转,这样做也不是不可以,但是会有很多限制和麻烦,首先只有一个index.php,只有一个.htaccess等等……所有域名解析到服务器ip上时首先访问的永远是/var/www/html目录,控制起来非常繁琐。下面介绍怎么用Apache Httpd来避免这些麻烦。

安装环境:centos6 32位 主要用到的是Httpd的虚拟站点功能,装好Apache后,编辑httpd.conf文件,一般在“/etc/httpd/conf/”目录下,在文件中找到

1
#NameVirtualHost *:80

将这一句前面的#去掉,不这样做的话就不能开启多个站点。 然后继续在httpd.conf文件的结尾处找到

1
2
3
4
5
6
7
8
9
10
11
12
13
#
\# VirtualHost example:
\# Almost any Apache directive may go into a VirtualHost container.
\# The first VirtualHost section is used for requests without a known
\# server name.
\#
#<VirtualHost *:80>
\# 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
#</VirtualHost>

这里可以看到关于虚拟站点配置的介绍,在文件最后面加上

1
2
3
4
5
6
7
8
9
<VirtualHost *:80>
DocumentRoot /var/www/html/soft
ServerName soft.xxx.com
</VirtualHost>

<VirtualHost *:80>
DocumentRoot /var/www/html/game
ServerName game.xxx.com
</VirtualHost>

这样就配置好了两个站点,其中xxx.com就是域名。 意思就是说当浏览器访问soft.xxx.com时,会进入/var/www/html/soft目录下的网站,game.xxx.com同理。 再到/var/www/html目录下创建两个站点文件夹soft和game。 然后重新启动apache httpd服务

1
service httpd restart

如果没有提示错误的话,就表示多站点建立完毕了。 这时就可以在soft和game目录下放入不同的index.html文件,然后浏览器访问soft.xxx.com和game.xxx.com看看是不是就分别进入了不同的站点了。 注:这样配置以后,“/var/www/html”就不再是站点目录了。此时默认的站点目录变成了“/var/www/html/soft”,也就是说当用没有配置过的二级域名访问时,比如news.xxx.com默认访问的就是soft.xxx.com里的内容,如果想要让默认站点变成game.xxx.com的话就将game.xxx.com的节点放在soft.xxx.com之前,如下:

1
2
3
4
5
6
7
8
9
<VirtualHost *:80>
DocumentRoot /var/www/html/game
ServerName game.xxx.com
</VirtualHost>

<VirtualHost *:80>
DocumentRoot /var/www/html/soft
ServerName soft.xxx.com
</VirtualHost>

所以配置文件 httpd.conf 中第一个被配置的站点就是服务器的默认站点。这时如果要做news.xxx.com的301跳转的话就需要在/var/www/html/game下的.htaccess文件中配置。(这里假设news.xxx.com未做站点配置,如果做了就要在news.xxx.com对应的站点目录下进行)

本文所讲内容并没有做太多的深入研究,仅个人实践结果,若有不对的地方,还请见谅,同时欢迎指正指出。

  • 本文作者: Tshine Zheng
  • 本文链接: 229.html
  • 版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!