Appserv是一套整合了Apach 2.x以及MySQL & PHP的安裝套件, 其中設定的方法不下數百種, 今天我將針對appserv的用戶來個簡單的說明, 讓你能在最短的時間內完成多個子網域的設定.
我的設置:
DNS代管於PCHOME
Appserv:2.5.10
- Apache 2.2.8
- PHP 5.2.6
- MySQL 5.0.51b
- phpMyAdmin-2.10.3
- Sourceforge.net : http://prdownloads.sourceforge.net/appserv/appserv-win32-2.5.10.exe?download
Zend Optimizer 3.3.0 AppServ AddOns
- Sourceforge.net : http://prdownloads.sourceforge.net/appserv/appserv-addons-zendoptimizer-3.3.0.exe?download
本次教學將分成以下數個步驟:
Part 1: 修改httpd.conf
Part 2: 修改httpd-vhosts.conf
Part 3 :修改Windows系統下的hosts
Part 4 :restat apache
Part 1:修改httpd.conf
在我們將appserv安裝完成後, apache的主要設定都將在httpd.conf之內完成, 在開始增加子網域之前, 我們必須先對httpd.conf做一些修改. 首先請先找到位於appserv目錄下的apache2.2\conf資料夾, 使用記事本開啟後找到
![]()
如果Include conf/extra/httpd-vhosts.conf之前有#號的註解的話, 請把注解拿掉後就可以開始進行下一步了
Part 2: 修改httpd-vhosts.conf
在我們修改了httpd.conf之後, apache將會開始使用修改httpd-vhosts.conf這個檔案來定義你的子網域, 在進行下一步之前請先找到httpd-vhosts.conf (通常位於你的httpd.conf所在目錄的extra資料夾之下), 同樣的找到之後請用記事本開啟修改.
開啟後你會看到這些內容
# 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.
#
# Please see the documentation at
# <URL:http://httpd.apache.org/docs/2.2/vhosts/>
# for further details before you try to setup virtual hosts.
#
# You may use the command line option ‘-S’ to verify your virtual host
# configuration.
#
# Use name-based virtual hosting.
#
NameVirtualHost *:80
#
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for all requests that do not
# match a ServerName or ServerAlias in any <VirtualHost> block.
#
<VirtualHost *:80>
ServerAdmin webmaster@dummy-host.x
DocumentRoot "C:/Apache2.2/docs/dummy-host.x"
ServerName dummy-host.x
ServerAlias www.dummy-host.x
ErrorLog "logs/dummy-host.x-error.log"
CustomLog "logs/dummy-host.x-access.log" common
</VirtualHost>
<VirtualHost *:80>
ServerAdmin webmaster@dummy-host2.x
DocumentRoot "C:/Apache2.2/docs/dummy-host2.x"
ServerName dummy-host2.x
ErrorLog "logs/dummy-host2.x-error.log"
CustomLog "logs/dummy-host2.x-access.log" common
</VirtualHost>
假設今天我們的網域為mydomain.com, 今天我的主要網站是www.mydomain.com且這個網站位於C:\www資料夾之下. 如果我想要增加一個名為test.mydomain.com的網站的話且位於C:\www\test\資料夾之下的話, 我們必須將httpd-vhosts.conf修改成:
NameVirtualHost *:80
<VirtualHost *:80>
ServerAdmin test@test.com (網站管理員的email, 也可不打)
DocumentRoot "C:/www" (你的網站資料所在的資料夾, 同時必須注意/這個符號)
ServerName www.mydomain.com
</VirtualHost>
<VirtualHost *:80>
ServerAdmin test@test.com (網站管理員的email, 也可不打)
DocumentRoot "C:/www/test" (你的網站資料所在的資料夾, 同時必須注意/這個符號)
ServerName test.mydomain.com
</VirtualHost>
當所有步驟都完成後, 請存檔接下來進行第三步
Part 3 :修改Windows系統下的hosts
hosts通常位於系統碟的\Windows\System32\drivers\etc之中, 一樣用記事本開起之後你會看到這些設定.
127.0.0.1 localhost
127.0.0.1 www.mydomain.com
127.0.0.1 test.mydomain.com
請在第一行的127.0.0.1之後加入你在httpd-vhosts.conf所設中所定的兩個網域, 所以會變成上面這樣. 此步驟設定完成之後請重新啟動apache或者是reboot, 一切到這就大功告成了!!

您好:
很榮幸在網路上拜讀到您設定虛擬伺服器設定的文章,依照您說的方法,設定好後依然無法去動作會出現Forbidden
You don’t have permission to access / on this server.
——————————————————————————–
Apache/2.2.8 (Win32) PHP/5.2.6 Server at mybbseasy.no-ip.biz Port 80
不知是哪裡出錯?
我用兩個網址去測試均無法顯現,本機的127.0.0.1一樣無法出現正常畫面,不知是否可給予在下指導?謝謝!
本機為xp-sp3
Apache/2.2.8 (Win32) PHP/5.2.6 Server
兩網址均為向no-ip申請
你好, 能不能提供no-ip的提供商給我看看? 如果要IP能夠正確對應, 在no-ip那邊也許需要更進一步的設定.
我的教學中遺漏了一點..除了本機設定要正確之外, 提供DNS轉址的服務方面也必須一併設定才能正常使用.
還有一但您修改了DNS的內容, 需要大概兩天的時間才能讓所有的DNS伺服器能正確解析你的位置. 要確定該網址的DNS是否有正確解析以及對應到你的server, 請用cmd輸入nslookup 你的網址. 來查看是否有正確顯示.
http://www.no-ip.com/
他的網站,是要這個嗎?
不好意思, 能請你mail一份你修改過的httpd-vhosts.conf以及hosts這兩個檔案到我的信箱嗎? 我在幫你看看是哪邊有問題.
我的Mail: exeeman@sparqnet.net
已經寄過去了,謝謝您!
回嘍:)
請問~網站資料夾改在D槽的話應該怎麼設定?
回嘍, 請去信箱檢查看看:)
請教一下我是你的方法後再重啟appserv就會出錯誤無法開啟
把第一步驟的#放回去就又正常
是那裏有問題嗎
版主您好:
我依照您的教學自行設置了一個虛擬目錄,但卻碰到和kosewu相同的問題,不知道您是否可抽空幫我檢查一下hosts與httpd-vhosts.conf兩個檔案呢?主要我是利用VM來架設,而Apache的版本是Appserv2.5.9,感激不盡!
已經回信嘍, 信內附有我修改後的設定檔
我想這可能跟你所安裝的appserv的版本有關係, 請試著安裝較舊的版本看看, 有可能是bug
感謝馬克兄的耐心教材,經教材指導下,我已成功建立Appserv+No-IP多站系統!真的萬分感激,在這衷心祝安康及2009新年快樂!^^
您好~~
我是用Appserv, virtual host怎麼改都改不好,用virtual host 可是兩個網站都跑出同樣的結果,想請問可以請您抽空幫我看,謝謝~~
您好~~
很榮幸在網路上拜讀到您設定虛擬伺服器設定的文章,依照您說的方法,設定好後我的主機主網域與次網域可以正常執行,請朋友從外網連結測試皆連不上次網域,只能連上主網域,請大大不吝指導,
謝謝!
主機配備:
P4主機
windows server 2003
appserv
外部連不上請先檢查上游網域DNS轉址的設定, 這點您必須在當初申購網域的販售商處設定
您好~~
感謝您不吝回答,您說外部連不上是上游網域DNS轉址的設定問題,
我的DNS是向中華電信申請的,相關設定如下:
DNS Server Name IP Address
一 http://www.yesmall.com.tw 60.252.65.49
二 http://www.yesmall.com.tw 60.252.65.49
三
四
五
說明:請您至少填寫二組DNS資料,若您只有一台DNS主機則二組DNS資料填寫一樣
疑問一:
是否需由這邊設定子網域如下
DNS Server Name IP Address
一 http://www.yesmall.com.tw 60.252.65.49
二 forum.yesmall.com.tw 60.252.65.49
三 photo.yesmall.com.tw 60.251.65.49
四 video.yesmall.com.tw 60.251.65.49
五 flash.yesmall.com.tw 60.251.65.49
疑問二
如果是由上面方式加以設定的話,是否意謂著子網域數量僅能設定五組?
謝謝您!
更正
您好~~
感謝您不吝回答,您說外部連不上是上游網域DNS轉址的設定問題,
我的DNS是向中華電信申請的,相關設定如下:
DNS Server Name IP Address
一 [ http://www.yesmall.com.tw 60.251.65.49 ]
二 [ http://www.yesmall.com.tw 60.251.65.49 ]
三 [ ]
四 [ ]
五 [ ]
說明:請您至少填寫二組DNS資料,若您只有一台DNS主機則二組DNS資料填寫一樣
疑問一:
是否需由這邊設定子網域如下
DNS Server Name IP Address
一 [ http://www.yesmall.com.tw 60.251.65.49 ]
二 [ forum.yesmall.com.tw 60.251.65.49 ]
三 [ photo.yesmall.com.tw 60.251.65.49 ]
四 [ video.yesmall.com.tw 60.251.65.49 ]
五 [ flash.yesmall.com.tw 60.251.65.49 ]
疑問二
如果是由上面方式加以設定的話,是否意謂著子網域數量僅能設定五組?
謝謝您!
您好, 必須要設定成你疑問一所輸入的網址, 不過必須要注意不可以加http://, 像你的第一行就打錯了~其他的就是照這樣設定沒錯.
同時你應該也會看到類型中有MX, A, CNAME, 轉址等設定, 以上的網址的類型必須全部設定成A, 每家ISP提共的設定畫面有點不一樣, 所以你可能˙必須自己找找這部分的設定
還有DNS設定完成之後, 要等約48小時才能完全反應出你的設定..可以用nslookup等指令來查詢DNS是否有被正確解析, 詳細用法你可能就得用google查一下嘍
您好~~
感謝您不吝回答,我已經照您的教學測試成功!在Hinet DNS網域設定中加上子網域名稱指向我的Server IP,30分鐘便得到解析,唯一美中不足的就是連同主網域與次網域僅能設定五組,在不滿足下繼續爬文,總算皇天不負苦心人,讓我找到Hinet提供的領域反解服務,立即撥打080客服專線詢問,客服回答只要向Hinet申請網域的客戶,皆可線上申請,手續簡單免傳真而且免費用,前題是要先搞定自己的Server DNS相關設定,有興趣的朋友可至http://hidomain.hinet.net/hidns.html 申請 ,再次向版大說聲thanks!