2022-10-23 440
在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所包含的了。打开该文件,发现它其实是一个虚拟主机的配置文件,不过由于该文件中的虚拟主机为*,所以它实际上是一个通用配置文件。如果我们要建立虚拟主机的话,那么就要把该文件改成如下所示:
NameVirtualHost10.39.6.59 [VirtualHost10.39.6.59] ServerNamewww.britepic.org ServerAdminUbuntu@gmail.com"]Ubuntu@gmail.com DocumentRoot/var/www/ [Directory/] OptionsFollowSymLinks AllowOverrideNone [/Directory] [Directory/var/www/] OptionsIndexesFollowSymLinksMultiViews AllowOverrideNone Orderallow,deny allowfromall #Thisdirectiveallowsustohaveapache2'sdefaultstartpage #in/apache2-default/,butstillhave/gototherightplace #CommentedoutforUbuntu #RedirectMatch^/$/apache2-default/ [/Directory] ScriptAlias/CGI-bin//usr/lib/cgi-bin/ [Directory"/usr/lib/cgi-bin"] AllowOverrideNone OptionsExecCGI-MultiViews+SymLinksIfOwnerMatch Orderallow,deny Allowfromall [/Directory] ErrorLog/var/log/apache2/error.log #Possiblevaluesinclude:debug,info,notice,warn,error,crit, #alert,emerg. LogLevelwarn CustomLog/var/log/apache2/Access.logcombined ServerSignatureOn Alias/doc/"/usr/share/doc/" [Directory"/usr/share/doc/"] OptionsIndexesMultiViewsFollowSymLinks AllowOverrideNone Orderdeny,allow Denyfromall Allowfrom127.0.0.0/255.0.0.0::1/128 [/Directory] [/VirtualHost]
下面我们来分析一下上面这段设置中与虚拟主机有关的设置语句:
`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。当然这个文件名中是没有"."
或"#"这两个字符的了。然后编辑该文件:
[VirtualHost10.39.6.59] ServerNameedunuke.britepic.org ServerAdminUbuntu@britepic.org DocumentRoot"/var/www/edunuke/" ErrorLog"/var/log/apache2/edunuke_errors.log" CustomLog"/var/log/apache2/edunuke_Accesses.log"common [/VirtualHost]
设置的具体含义同上面的相似,这是我就不再多说了。然后再运行命令:
sudoa2ensiteedunuke
这样的话,虚拟主机站点edunuke.britepic.org就已经安装好了。这时你也可以在
/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站点进行维护时,我只要运行命令:
sudoa2dissiteedunuke sudo/etc/init.d/apache2restart
即可,这样既可以维护edunuke这个站点,同时还不影响其他站点的正常运行。
原文链接:https://77isp.com/post/6202.html
=========================================
https://77isp.com/ 为 “云服务器技术网” 唯一官方服务平台,请勿相信其他任何渠道。
数据库技术 2022-03-28
网站技术 2022-11-26
网站技术 2023-01-07
网站技术 2022-11-17
Windows相关 2022-02-23
网站技术 2023-01-14
Windows相关 2022-02-16
Windows相关 2022-02-16
Linux相关 2022-02-27
数据库技术 2022-02-20
抠敌 2023年10月23日
嚼餐 2023年10月23日
男忌 2023年10月22日
瓮仆 2023年10月22日
簿偌 2023年10月22日
扫码二维码
获取最新动态