主旨
本文旨在讓讀者知道如何在同一台機器上搭建多個網站, 并附帶一些使用技巧. 以操作為主, 不會過多談及原理.
目标
本文是寫給擁有一定的伺服器配置和管理技能, 工作中需要同時維護多個網站的網站主, 網站開發者和網絡管理者. 如果你是網際網路公司的配管工程師, 對計算機伺服器原理和操作十分熟悉, 請忽視本文, 你不會在上面找到太多有價值的東西.
Redhat Enterprise Linux
Redhat Enterprise Linux (包括 CentOS Linux), 是使用最廣的 Linux 伺服器, 大量的網站應用都部署在其上.
1. 打開檔案 /etc/httpd/conf/httpd.conf, 搜尋 VirtualHost example, 找到代碼如下:
#
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for requests without a known
# server name.
#<VirtualHost *:80>
# ServerAdmin [email protected]
# DocumentRoot /www/docs/dummy-host.example.com
# ServerName dummy-host.example.com
# ErrorLog logs/dummy-host.example.com-error_log
# CustomLog logs/dummy-host.example.com-access_log common
#</VirtualHost>
2. 仿照例子, 添加一段代碼來指定某一域名的網站.
# DocumentRoot 是網站檔案存放的根目錄
# ServerName 是網站域名, 需要跟 DNS 指向的域名一緻
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot /var/www/httpdocs/demo_aliluna_com
ServerName demo.aliluna.com
ErrorLog logs/demo.aliluna.com-error.log
CustomLog logs/demo.aliluna.com-access.log common
</VirtualHost>
3. 重新開機 httpd 服務, 執行以下語句.
service httpd restart
Ubuntu Linux
Ubuntu 在 Linux 各發行版中, 個人使用者數量最多的. 很多人在本機和虛拟機中使用. 但 Ubuntu 和 Redhat 的 VirtualHost 設定方法不相同.
1. 打開目錄 /etc/apache2/sites-available/, 發現 default 和 default-ssl 兩個檔案, 其中 default 是 http 虛拟主機服務的配置檔案, default-ssl 是配置 https 服務使用的. 可以複制一份 default 檔案. 并修改配置檔案名, 檔案名必須與域名一緻 (如: demo.aliluna.com)
2. 打開建立的配置檔案, 修改 DocumentRoot, ServerName 和對應的配置目錄. 例子如下:
ErrorLog ${APACHE_LOG_DIR}/demo.aliluna.com-error.log
CustomLog ${APACHE_LOG_DIR}/demo.aliluna.com-access.log combined
3. 通過 a2ensite 激活虛拟主機配置
sudo a2ensite demo.aliluna.com
4. 打開目錄 /etc/apache2/sites-enabled/, 你會發現所有激活的虛拟主機, 可以通過 a2dissite 進行登出
sudo a2dissite demo.aliluna.com
5. 重新開機 Apache 服務, 激活虛拟主機
sudo /etc/init.d/apache2 restart
Windows
Windows 是市場占有率最高的 PC 作業系統, 也是很多人的開發環境. 其 VirtualHost 配置方法與 Linux 上有些差異, 以下方式适合原生 Apache, XAMPP 和 WAMP 套件.
1. 打開目錄 {Apache2 安裝目錄}\conf\extra\, 找到 httpd-vhosts.conf 檔案.