linux系统下的apache2如何配置虚拟主机

1,起因

在一星期前吧,大波说已然我们有了自个的服务器,二级域名了。能够思考如何每人一个域名,别离指向我们各自的空间。主意挺好,避免我们个人的东西放在同一主页上。那就做吧

2,第一次尝试

(1)在域名在万网买的,他们有个服务是支持泛域名解析。选择这个服务后,所有的三级域名  www.*.xin3e.com 都可以指向  www.xin3e.com的IP地址。

(2)按照这个链接的方法进行尝试:http://hsst.blog.sohu.com/52046690.html

因为Ubuntu下,Apache2的配置文件及目录结构不大一样,所以mods-avalilable下的是可用的模块。而真正启用了的模块是在mods-enable目录底下的。自己创建软连接实现启用rewrite模块。

sudo ln -s /etc/apache2/mods-available/rewrite.load /etc/apache2/mods-enabled/rewrite.load

(3)sudo vi /etc/apache2/sites-enabled/000-default

将其中所有的AllowOverride None 修改成 AllowOverride All.
备注:000-default实则为sites-available/default的链接,而AllowOverride None则会完全忽略.htaccess文件,rewrite规则就不能生效

(4)在httpd.conf文件末尾加上类似以下配置:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^[a-zA-Z0-9]+\.xin3e\.com$
RewriteRule ^$ /%{HTTP_HOST}
RewriteRule ^/([a-zA-Z0-9]+)\.xin3e\.com/?$ /web/zyb/index [R]

(5)重启apache,没有效果。

3,第二次尝试

(1)删除上一次第(4)步在httpd.conf文件的操作。  原apache2的httpd.conf文件是空的,现只保留ServerName localhost

(2)配置虚拟主机的目录。

什么是虚拟主机(Virtual Host)。所谓的虚拟主机,基本上就是“让你的一台服务器上,有好多个‘主页面’存在。也就是说,硬件实际上只有一台主机,但由网址上来看,则视乎有好多台主机存在的样子”。举个例子:

www.xin3e.com  ==>  IP/www/index.php

IP/www目录下还有IP/www/zyb,IP/www/fb两个目录。那么:

www.zyb.xin3e.com  ==>  IP/www/zyb

www.fb.xin3e.com  ==>  IP/www/fb

两个域名指向同一IP地址,进去则是不同的信息内容。这就是虚拟主机的主要功能,它可以让你的多级域名对应不同的主网页目录(DocumentRoot 参数),所以看起来像有多台实际主机的样子。

    有1)基于IP地址的虚拟主机配置,2) 基于IP和多端口的虚拟主机配置,3)单个IP地址的服务器上基于域名的虚拟主机配置,4)在多个IP地址的服务器上配置基于域名的虚拟主机。今天只展示单个IP地址的服务器上基于域名的虚拟主机配置。

(3)修改配置文件  /etc/apache2/sites-available/default

添加:

<VirtualHost *:80>
        ServerName www.zyb.xin3e.com
        DocumentRoot /home/normal/website/zyb
        ServerAlias zyb.xin3e.com
        ErrorLog /var/log/apache2/error-zyb.xin3e.com.log
</VirtualHost>

Apache中涉及到的相关选项说明:

ServerName  (设定虚拟主机的名称)

DocumentRoot  (指定虚拟主机的网站主目录)

ServerAlias    (设定虚拟主机的別名)

ErrorLog    (虚拟主机发生错误时要记录在哪个目录,可不设)

(4)保存,重启apache2

sudo /etc/init.d/apache2 restart

(5)测试,成功。

补白:这是大波一星期前给我提的想法,上星期尝试失利后,一星期没找到合适的时刻。今天给了个了解。本来虚拟主机装备中通常都包括进行目录的具体装备,但我还不甚了解其效果和必要性。暂时未处理。

相关新闻

历经多年发展,已成为国内好评如潮的Linux云计算运维、SRE、Devops、容器云、Go、Python开发专业人才培训机构!