====== 在 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 版本的人要使用虚拟站台需要将 放到 /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 的网站。下面是范例: ServerAdmin eric@djmadjack.com ServerName www.djmadjack.com DocumentRoot /var/www/djmadjack.com/ Options FollowSymLinks AllowOverride None Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all (...) 您可以移除第一行的 **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 ---- ----