在 Apache2 上同时代管多个网站

如果您已经在 Gandi 的伺服器上使用 Ubuntu 7.10,并安装了 Apache2,您就可以开始向您的朋友或顾客展示网站。

在刚安装完成时,Apache 预设会显示所有的虚拟站台指向同一个网页。如果您只有一个网站,您可以将网页放在 /var/www 内,这样不论是使用网域或是 IP 连线时都会显示同一个网站。

建立虚拟站台

Apache 可以代管一个以上的站台。事实上 Apache 可以代管无上限的站台。这个功能叫做 “虚拟站台”,您可以透过 Apache 设定即可使用。

基本上来说,设定虚拟站台只需要使用到这两个资料夹 /etc/apache2/sites-available/ and /etc/apache2/sites-enabled/

使用 Apache 1.x 版本的人要使用虚拟站台需要将 <virtualhost> 放到 /etc/apache/httpd.conf 内。Apache2 是使用不同的方式来管理虚拟站台,它将每个站台的设定独立放到 “sites-available” 内,然后从 “sites-enabled” 建立一个连结表示启动。

在伺服器的 Apache2 上, 要建立虚拟站台,您需要将设定档存放在 sites-available 内,它会对应到虚拟站台,简单来说: 一个放在 sites-available 内的档案 = 一个代管的虚拟站台

在下面的范例中,我们将在 Gandi 伺服器的 Apache2 上增加一个网站叫做 www.djmadjack.com 。当然,您可以设定伺服器承载多个虚拟网站。如何实做呢?您只需要重复执行下面的步骤,只需要修改虚拟站台名称。

1. 新增一个档案在 "sites-available"

在 /etc/apache2/sites-available/ 这个资料夹内,你会看到一个预设的档案 “default”。请用这个档案当作你虚拟站台的样板档。直接复制这个档案即可,如下操作:

cp default djmadjack.com

为了更清楚,我们建议您使用网域名称来命名设定档。这样在辨视上就非常容易区分理解。当然您可以随心所欲自订也可以。

2. 编辑 "sites-available" 内的新设定档

现在您需要刚刚建立的档案,这个档案就是这台伺服器上这个虚拟站台的设定档。请用您的文字编辑器打开他..

nano djmadjack.com

…编辑内容将他改成您要代管的网站。在这个范例中,我们将示范如何在 “sites-available” 中建立一个 djmadjack.com 的网站。下面是范例:

<VirtualHost *>
      ServerAdmin eric@djmadjack.com
      ServerName www.djmadjack.com
      DocumentRoot /var/www/djmadjack.com/
      <Directory />
              Options FollowSymLinks
              AllowOverride None
      </Directory>
      <Directory /var/www/djmadjack.com/>
              Options Indexes FollowSymLinks MultiViews
              AllowOverride None
              Order allow,deny
              allow from all
      </Directory>

 (...)

您可以移除第一行的 NameVirtualHost * 因为他是从 default 那个档案复制来的。

请确认您有加入 ServerName 这行,这在 default 档案中没有。

DocumentRoot 这行是指定您的网页位置,您的客户将会浏览您指定的网页。您可以指定到任何您想要的地方,但请确认您的路径是否存在。范例中 djmadjack.com 将会连结到指定的位置。

使用虚拟站台是没有数量限制的。您只需要在 sites-available 内建立新的设定档。但是越多的虚拟站台会导致您的伺服器变慢。但是,如果您的 Gandi 虚拟站台变得很慢,只要增加伺服器的等级即可。

3. 从 "sites-enabled" 建立连结

最后您需要建立一个 symbolic link 到您存放在 /etc/apache2/sites-enabled/ 中的档案:

cd /etc/apache2/sites-enabled

先切换到 sites-enabled 目录,然后:

ln -s /etc/apache2/sites-available/djmadjack.com

建立一个连结到您新建立的虚拟站台档案。

另外您可以用 a2ensite 与 a2dissite 来启动或关闭您的虚拟站台设定档。

您可以输入下列指令,它会帮您自动建立连结来启用您的虚拟站台:

a2ensite djmadjack.com

或是输入下列指令来关闭您的虚拟站台:

a2dissite djmadjack.com

4. 重起启动 Apache

在您完成修改后,请记得要重新启动 Apache ,您的变更才会载入系统内,重新启动的命令如下:

/etc/init.d/apache2 restart

另外您可以只重新载入 Apache 的设定档,这对于正在上线的机器来说影响比较小。

/etc/init.d/apache2 reload

恭喜您结束了! 但别忘了将网域名称指向这台虚拟站台伺服器。

5. 故障排除

如果您有修改设定档,请不要忘记重新启动 Apache !

错误:

apache2: apr_sockaddr_info_get() failed for ubuntu

解决方式: 请在 /etc/hosts 内在 localhost 之前增加您的主机名称,如下范例:

127.0.0.1       ubuntu localhost

错误:

apache2: Could not reliably determine the server's fully qualified domain name

解决方式: 您需要在 /etc/apache2/httpd.conf 中告诉 Apache 您的伺服器名称是什么。如果您不知道伺服器名称,请在终端机输入下列指令:

hostname

它会显示伺服器名称是什么; 例如: ubuntu。然后使用您的文字编辑打开 /etc/apache2/httpd.conf 把如下它修改好(请把 ubuntu 修改成你实际的名称):

ServerName ubuntu


最后更改: 2016/06/08 08:47 (外部编辑)