目录
在 Apache2 上同时代管多个网站
如果您已经在 Gandi 的伺服器上使用 Ubuntu 7.10,并安装了 Apache2,您就可以开始向您的朋友或顾客展示网站。
在刚安装完成时,Apache 预设会显示所有的虚拟站台指向同一个网页。如果您只有一个网站,您可以将网页放在 /var/www 内,这样不论是使用网域或是 IP 连线时都会显示同一个网站。
建立虚拟站台
Apache 可以代管一个以上的站台。事实上 Apache 可以代管无上限的站台。这个功能叫做 “虚拟站台”,您可以透过 Apache 设定即可使用。
基本上来说,设定虚拟站台只需要使用到这两个资料夹 /etc/apache2/sites-available/ and /etc/apache2/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 将会连结到指定的位置。
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. 故障排除
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