Ubuntu下如何配置Apache虚拟主机?

运维 系统运维
如果我们想在单台机器上设置多个域名或主机名时,我们就要用到基于名称的虚拟主机了。那么要如何进行设置呢?本文就是介绍了在Ubuntu下配置Apache的虚拟主机的方法。

Ubuntu下如何配置Apache的虚拟主机呢?下文给出了详细的解释,具体内容如下所述。

A基本配置

我们都知道,如果我们想在单台机器上设置多个域名或主机名时,我们就要用到基于名称的虚拟主机了。那么要如何进行设置呢?这就是本指南想解决的问题了。在Ubuntu的/etc/apache2/目录下有个Apache2的主配置文件apache2.conf。在该文件中我们可以看到有这么一行内容:

Include/etc/apache2/sites-enabled/[^.#]*

这行的意思表明该文件包含了/etc/apache2/sites-enabled/目录中文件名不含"."或"#"这两个字符的所有文件。而当我们列出该目录的文件时,发现只有一个000-default的软链接文件,实际连接的是/etc/apache2/sites-available目录中的default文件,不难看出该文件的文件名中并不包含"."或"#"。所以这个文件当然是要被配置文件apache2.conf所包含的了。打开该文件,发现它其实是一个虚拟主机的配置文件,不过由于该文件中的虚拟主机为*,所以它实际上是一个通用配置文件。如果我们要建立虚拟主机的话,那么就要把该文件改成如下所示:

  1. NameVirtualHost10.39.6.59  
  2.  
  3. [VirtualHost10.39.6.59]  
  4.  
  5. ServerNamewww.britepic.org  
  6.  
  7. ServerAdminUbuntu@gmail.com"]Ubuntu@gmail.com  
  8.  
  9. DocumentRoot/var/www/  
  10.  
  11. [Directory/]  
  12.  
  13. OptionsFollowSymLinks  
  14.  
  15. AllowOverrideNone  
  16.  
  17. [/Directory]  
  18.  
  19. [Directory/var/www/]  
  20.  
  21. OptionsIndexesFollowSymLinksMultiViews  
  22.  
  23. AllowOverrideNone  
  24.  
  25. Orderallow,deny  
  26.  
  27. allowfromall  
  28.  
  29. #Thisdirectiveallowsustohaveapache2'sdefaultstartpage  
  30.  
  31. #in/apache2-default/,butstillhave/gototherightplace  
  32.  
  33. #CommentedoutforUbuntu  
  34.  
  35. #RedirectMatch^/$/apache2-default/  
  36.  
  37. [/Directory]  
  38.  
  39. ScriptAlias/CGI-bin//usr/lib/cgi-bin/  
  40.  
  41. [Directory"/usr/lib/cgi-bin"]  
  42.  
  43. AllowOverrideNone  
  44.  
  45. OptionsExecCGI-MultiViews+SymLinksIfOwnerMatch  
  46.  
  47. Orderallow,deny  
  48.  
  49. Allowfromall  
  50.  
  51. [/Directory]  
  52.  
  53. ErrorLog/var/log/apache2/error.log  
  54.  
  55. #Possiblevaluesinclude:debug,info,notice,warn,error,crit,  
  56.  
  57. #alert,emerg.  
  58.  
  59. LogLevelwarn  
  60.  
  61. CustomLog/var/log/apache2/Access.logcombined  
  62.  
  63. ServerSignatureOn  
  64.  
  65. Alias/doc/"/usr/share/doc/"  
  66.  
  67. [Directory"/usr/share/doc/"]  
  68.  
  69. OptionsIndexesMultiViewsFollowSymLinks  
  70.  
  71. AllowOverrideNone  
  72.  
  73. Orderdeny,allow  
  74.  
  75. Denyfromall  
  76.  
  77. Allowfrom127.0.0.0/255.0.0.0::1/128  
  78.  
  79. [/Directory]  
  80.  
  81. [/VirtualHost]  
  82.  

下面我们来分析一下上面这段设置中与虚拟主机有关的设置语句:

`NameVirtualHost10.39.6.59`:表示我们要做的是一个基于名称的虚拟主机,且其IP地址为

10.39.6.59

`[VirtualHost10.39.6.59]和[/VirtualHost]`:表示在其中的是一个虚拟主机的配置

`ServerNamewww.britepic.org`:设置虚拟主机的域名

`ServerAdminUbuntu@gmail.com`:设置该虚拟主机网管员的邮件

`DocumentRoot/var/www/`:设置该虚拟主机的主目录路径

`ErrorLog/var/log/apache2/error.log`:设置该虚拟主机的出错信息

`CustomLog/var/log/apache2/access.logcombined`:设置该虚拟主机的访问信息

这样我们就配置了一个虚拟主机www.britepic.org。但由于这是缺省配置,所以在Apache2重启

之后,无论你输入DNS服务器中指向这个主机的任何域名,都会被导向www.britepic.org这个

缺省配置所指向的/var/www这个目录的。除非该域名被其他虚拟主机配置所用,比如我们还配置

了edunuke.britepic.org指向本机,且配置了相应的虚拟主机,这样的话,输入域名

edunuke.britepic.org就会被对应该域名的目录中。

B进一步说明

为了说明清楚我们再添加一个虚拟主机站点edunuke.britepic.org,首先到/etc/apache2/sites-available/目录中建立一个文件edunuke。当然这个文件名中是没有"."

或"#"这两个字符的了。然后编辑该文件:

  1. [VirtualHost10.39.6.59]  
  2.  
  3. ServerNameedunuke.britepic.org  
  4.  
  5. ServerAdminUbuntu@britepic.org  
  6.  
  7. DocumentRoot"/var/www/edunuke/"  
  8.  
  9. ErrorLog"/var/log/apache2/edunuke_errors.log"  
  10.  
  11. CustomLog"/var/log/apache2/edunuke_Accesses.log"common  
  12.  
  13. [/VirtualHost]  
  14.  

设置的具体含义同上面的相似,这是我就不再多说了。然后再运行命令:

sudoa2ensiteedunuke

这样的话,虚拟主机站点edunuke.britepic.org就已经安装好了。这时你也可以在

  1. /etc/apache2/sites-enabled/目录中发现多了一个到/etc/apache2/sites-available/edun 

uke

的软链接。接下来就是将Apache2重启来使虚拟主机站点运行起来:

sudo/etc/init.d/apache2restart

这样你在浏览器上输入edunuke.britepic.org的话,就会被指向/var/www/edunuke目录了,而输入其他指向本机的域名则都会指到缺省配置中的/var/www目录中。熟悉Apache2的朋友会问为什么这样麻烦,放在一个文件中不也是可以吗?为什么要用两个文件呢?

其实很简单,因为如果我要对edunuke站点进行维护时,我只要运行命令:

  1. sudoa2dissiteedunuke  
  2.  
  3. sudo/etc/init.d/apache2restart  
  4.  

即可,这样既可以维护edunuke这个站点,同时还不影响其他站点的正常运行。

总结:

希望本文介绍的在Ubuntu下配置Apache虚拟主机的方法能够对读者有所帮助,更多有关linux操作系统的知识还有待于读者去探索和学习。

【编辑推荐】

  1. Ubuntu 11.04上安装Xfce桌面
  2. 图解Ubuntu 11.10的新Unity界面
  3. Ubuntu下QQ自动退出的问题解决
  4. windows和linux(ubuntu)双系统如何进行引导恢复?
  5. windowsXP和UbuntuLinux双系统下卸载Linux系统的方法
责任编辑:韩亚珊 来源: 博客转载
相关推荐

2010-01-11 11:19:28

Apache配置

2014-06-09 10:40:05

Ubuntu 14.0虚拟主机

2009-11-25 10:18:25

linuxapache tomc虚拟主机

2010-03-02 13:35:59

Fedora apac

2010-03-29 16:17:07

Nginx虚拟主机

2017-08-15 15:24:21

2011-08-22 16:36:24

CentOSDirectAdmin

2010-03-25 19:23:51

Nginx配置虚拟主机

2013-04-02 11:21:52

Linux操作系统虚拟主机

2011-03-09 16:17:21

CentOSLAMP

2018-11-20 11:22:24

PHP虚拟主机

2010-07-01 13:35:51

vsftpd

2011-03-23 14:38:02

LAMP架设

2013-05-27 09:34:16

2011-03-30 15:05:41

MRTG流量图

2010-11-09 11:35:41

2011-03-22 12:53:35

UbuntuLAMPApache

2010-03-25 19:10:46

Nginx默认虚拟主机

2017-04-05 14:43:20

虚拟主机故障

2011-02-25 12:29:25

Proftpd
点赞
收藏

51CTO技术栈公众号