家中主機的 Joomla 架一個公開的網站

網友來信詢問:如何利用安裝在家中主機的 Joomla 架一個公開的網站?也就是利用現有的 ADSL及電腦,實現自架主機、快速架站的夢想(固定IP或動態IP架站)。有了 joomla 之後,這一點都不困難,以下就是我們的教學。
Jeff 現有的設備為:
.Seednet ADSL 連線,浮動式IP
.Windows XP 主機,已裝好 Joomla 系統
.網路伺服器軟體為 Appserv 套件(apache 2.0.59 + PHP 4.4.7 + MySQL 5.0.45)
.Buffalu WHR-G54S 無線AP(含IP分享功能)

要讓別人可以連線進來,我們要做幾件事
一.申請一個網址
二.設定無線AP(或IP分享器)的DMZ 或NAT
三.修改 Apache 的設定檔
四.修改 joomla 的設定檔

我們一一來解決上面的問題:
一.申請一個網址:最快的方之一,就是直接去http://www.no-ip.com/ 申請一個ip(例如 joomla123. no-ip.org,至於如何申請,網路上有許多教學,我就不寫重覆的教學了 ,請上 google 搜尋一下).
如果您的ip是浮動的,no-ip提供了一個程式,讓您主機的ip與您的網址隨時結合,網址不會因為ip變動而連不上您的主機。這是adsl浮動式ip架站必備的工具。下圖中為我們在no-ip申請一個 joomla. no-ip.org 這個網址的畫面。IP位址no-ip自己會幫我們找出來(如紅線處)
adsl02.jpg
當然,如果您有固定的ip,還是得需要一個網址.上述的方法仍可執行(只差不需要執行no-ip提供的程式,因為您的ip不會改變)。或者您也可以申請一個正式的網址(如 http://www.xxxxx.com.tw/http://www.xxxxx.idv.tw/),再作好 DNS 的設定,只不過這又是另外一個教學,我們就不在此深談.簡單的作法還是先用 no-ip 處理.方便又免費!
 
 


二.設定無線AP(或IP分享器)的DMZ 或NAT
如果您的電腦是擁有唯一的真實IP,請跳過這個步驟。
因為目前大部份家中的ADSL網路連線,會透過無線AP或IP分享器,將一條網路線可供多台電腦同時使用。在這個過程中,ADSL連線的真實IP會被轉為多個虛擬IP(如 192.168.0.1 , 或是 192.168.x.x 都可能是虛擬IP)。我們在內部使用沒問題,但是別人要連線進來時,這個IP轉換的過程卻會造成問題。因此我們要設定無線AP或伺服器的DMZ 或 NAT,讓真實IP可以對映到某一台電腦(也就是我們安裝 joomla 主機的那一台)的虛擬IP。
1.先確定一下我們安裝joomla 主機的IP(虛擬),請在 dos 模式下打入 ipconfig,可以看到我們的虛擬IP(也就是內部網路的IP,如紅線處,本例為 192.168.11.3)
adsl03.jpg

2. 確定一下我們的真實IP為何,請連上http://www.no-ip.com/ , 登入後可以看到我們的真實IP位址(如下圖紅線處,本例為 210.60.100.105)
adsl01.jpg
 
3.接下我們要設定無線AP或IP分享器的DMZ或NAT的功能,將真實IP跟虛擬IP接在一起,這樣使用者才有辦法由外部連到我們安裝joomla 的電腦。
問題是:每一部無線AP或IP分享器的設法可能不太一樣,這個部份要參考一下您機子的使用說明書,設定一下DMZ或NAT.本例同時採用 DMZ 與 NAT,將 210.60.100.105 (也就是圖上的WAN IP) 與 192.168.0.4 連結在一起.(我們的joomla就是安裝在 192.168.0.4 這一台)
adsl09.jpg
 


三.修改 Apache 的設定檔
經過了上面二階段的設定後,當外面有人打入 joomla123. no-ip.org後,會發生下面的事情:
.這個網址會經由no-ip的網站轉成 210.60.100.105這個IP
.經由這個IP,對方的連線會先連到我們的無線AP(或是IP分享器)
.無線IP經由DMZ或NAT的設定,將它轉到 192.168.0.4這一台主機
我們現在還需要更改一下 apache 網站伺服器的設定,讓別人連線進來時,能自動執行joomla(因為 我們的joomla 是放在 c:\apache\www\joomla 之下,而預設的網站執行目錄為c:\apache\www\ ,所以要小改一下)
1.請由 [程式集 / Appserv/configuration Server/Apache Edit the httpd.conf Configuration File],打開 Apache 的設定檔
adsl04.jpg
 
2.用搜尋的功能( Ctrl + F),找出下列字串,將 DocumentRoot "C:/AppServ/www" 改為 DocumentRoot "C:/AppServ/www/joomla"(註:藍字為您安裝 joomla 的目錄名稱)
adsl05.jpg
 
3..將ServerName localhost:80 改為 ServerName joomla123 no-ip.org:80 (藍色網址名稱為您在no-ip申請的名稱)
 
adsl06.jpg
4.設定完成後,請按重新啟動 Apache,讓設定生效 (程式集/AppServ/Control Server by Service/Apache Restart)
adsl10.jpg
 

四.修改 joomla 的安裝設定檔
經過剛才3個階段的設定,我們可以打入網址連上我們的joomla網站,不過網站還是無法完全正確顯示,可能會看到下面的畫面。(只有文字,卻沒有圖形及框架)
adsl11.jpg
 

這是因為我們在本地主機安裝joomla時,並所輸入的網址(localhost)與現在的網址(joomla123 no-ip.org),所以會造成上述的問題。我們無需重新安裝,只需要將 joomla 的設定檔改一下,就ok了.
1.請進入 joomla 的安裝目錄,打開 configuration.php 這個檔
adsl07.jpg
註:configuration.php 若用記事本打開時,會看到一些亂碼,格式也會跑掉,建議安裝 PSPad這個程式(下載點:http://toget.pchome.com.tw/intro/business_wordprocessing/22789_dl.html
),在編輯PHP時會比較好用(當然,如果您有裝DreamWeaver也可以)
 
2.找出
$mosConfig_live_site = 'http://localhost/joomla';
改為 $mosConfig_live_site = 'http://joomla123 no-ip.org';
adsl08.jpg
 
完成到這個程序,別人就可以從遠端連上您的 joomla 主機了.成功囉!

5. 內部連線需修改 hosts 設定檔
完成到上面的程序後,您可以發現您可以由”外部”連上您的joomla 網站,Jeff特別強調外部這二個字,是因為如果您的joomla主機與您要連線的主機在同一個虛擬IP網域中(例如:我想從家中另一台電腦連到joomla主機,這些主機都接同一台IP分享器),會無法順利連線。之前 Jeff 在實驗時,還以為我設定錯誤,後來發現....外部電腦仍可以順利連線。如何解決這個問題呢?Jeff 找了許多相關資料,才解決了這個問題。
1.請打開 host 這個windows的設定檔(目錄為:c:\windows\system32\driver\etc)
adsl12.jpg
2.加入一行
192.168.11.4   joomla123. no-ip.org
前面為安裝 joomla 主機的虛擬IP位置(可參考上面步驟二),後面為我們申請的網址。打完後按存檔,重新打開瀏覽器,連線就可以成功了。
adsl13.jpg
下面為站長完成設定後,連線到自己家中主機 joomla 的畫面。用ADSL在家中架一個自己的網站,您也很容易可以做的到哦!
adsl14.jpg