2020 年 3 月 25 日

IT Skills 波林

Polin WEI – 資訊工作者的技術手札

利用 Apache 的 Virtual Host 功能來架設虛擬網站

2 min read
Tea Cup

利用 Apache 的 Virtual Host 功能來架設虛擬網站

  1. Apache 安裝概念
  2. 虛擬主機示意圖
  3. DNS 設定
  4. Apache 設定

 

  • Apache 安裝概念

要架設這個平台最方便、最簡單的方法是到 AppServ 或是 XAMPP 去下載已經打包好的軟體去安裝. 「AppServ」它是一個三合一的包裝,包含了「Apache」、「MySQL」、「PHP」,安裝的方法十分簡單, 就和一般軟體安裝沒有兩樣。建立好 Apache 網站伺服器,它預設安裝在 C:\AppServ (以後稱此目錄為 「APACHE_ROOT」 ),預設網址的主目錄是 「APACHE_HOME\www」 ,這是在 Apache 伺服器的設定檔( 「APACHE_ROOT\Apache2.2\conf\httpd.conf」 )中定義的。

「APACHE_ROOT\Apache2.2\conf\httpd.conf 」檔案的內容:

/**
* DocumentRoot: The directory out of which you will serve your
* documents. By default, all requests are taken from this directory, but
* symbolic links and aliases may be used to point to other locations.
*
* 預設一台主機只有一個獨立的網站,若您想要在同一台主機能夠有一個以上的獨立網站,
* 可以利用 Apache 伺服器中的 Virtual Host 的設定,從下面的示意圖可以瞭解,這些不同的獨立網站都架設在同一個IP的主機上。
*/ 

DocumentRoot "C:/AppServ/www"

 

  • 虛擬主機示意圖

apache-virtual-host

 

  • DNS 設定

要有上圖這樣的效果,可以藉由下面的步驟來達成:申請個人網域後( polinwei.com ),在原有主機上(127.0.0.1)加設虛擬主機為個人網站(http://polinwei.local/)。這裡的 http://polinwei.local/ 是以本站為例,您應該改為您個人專屬的網域。

在 DNS 伺服器的設定

dns        IN   A      127.0.0.1 /** 這個IP 的名稱是dns,是本尊 */
www        IN   CNAME  dns  /** 第一個虛擬網站 polinwei.local   --分身
forum      IN   CNAME  dns  /** 第二個虛擬網站 forum.polinwei.local --分身
phpMyAdmin IN   CNAME  dns  /** 第三個虛擬網站 phpmyadmin.polinwei.local --分身 */

若您沒有 DNS 伺服器,也可以直接修改 C:\Windows\System32\drivers\etc\host 檔案也可以,只是這樣的設定只限這台主機適用。Windows XP/Vista/7/8/10 的 host 檔案

/** Copyright (c) 1993-2009 Microsoft Corp.
* This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
*/

127.0.0.1  polinwei.local forum.polinwei.local phpmyadmin.polinwei.local

 

  • Apache 設定

在 APACHE_ROOT\Apache2.2\conf\httpd.conf 的內容

/** Real-time info on requests and configuration */
/** Include conf/extra/httpd-info.conf */

# Virtual hosts
Include conf/extra/httpd-vhosts.conf  /** 將前面的 # 刪除,並修改 APACHE_ROOT\Apache2.2\conf\extra/httpd-vhosts.conf 這個檔案 */

在 APACHE_ROOT\Apache2.2\conf\extra\httpd-vhosts.conf 的內容

#
# Virtual Hosts
#
# If you want to maintain multiple domains/hostnames on your
# machine you can setup VirtualHost containers for them. Most configurations
# use only name-based virtual hosts so the server doesn't need to worry about
# IP addresses. This is indicated by the asterisks in the directives below.
#
# You may use the command line option '-S' to verify your virtual host
# configuration.
# Use name-based virtual hosting.
#
NameVirtualHost 127.0.0.1:80

# 這是第一個虛擬網站 polinwei.local   --分身
<VirtualHost *:80>
    ServerAdmin webamin@localhost.com
    DocumentRoot "C:/AppServ/www/polinwei"
    ServerName polinwei.local
</VirtualHost>

#這是第二個虛擬網站 forum.polinwei.local --分身
<VirtualHost *:80>
    ServerAdmin webamin@localhost.com
    DocumentRoot "C:/AppServ/www/forum"
    ServerName forum.polinwei.local
</VirtualHost>

#這是第三個虛擬網站 phpmyadmin.polinwei.local --分身
<VirtualHost *:80>
    ServerAdmin webamin@localhost.com
    DocumentRoot "C:/AppServ/www/phpMyAdmin"
    ServerName phpmyadmin.polinwei.local
</VirtualHost>

 

重新啟動 Apache 伺服器,就可以了,測試一下吧。

 

Copyright © All rights reserved. | Newsphere by AF themes.