簡易 WWW 伺服器設定
本文已不再維護,更新文章請參考 此處
最近更新日期:2003/10/02
 
我們最常講的『架站』其實就是架設一個 Web 網站啦!那麼什麼是 Web 呢?說穿了,就是全球資訊廣播的意思(World Wide Web),或者也可以稱之為互連網吧!這個是我們目前的人類最常使用的 Internet 的協定之一啦!通常說的上網就是使用 WWW 來查詢使用者所需要的資訊囉!^_^!目前的 WWW 伺服器主要分為兩大陣營,分別是 Unix-Like 上面的 Apache 與 Windows 上面的 IIS ,就以價格效能比來說,當然是 Linux 上面的 Apache 最棒啦!至於 WWW 伺服器的類型可以分為靜態與動態,而這些動態的網站裡面,很多都是以目前的當紅炸子雞 Linux + Apache + MySQL + PHP 架設而成的,簡稱為 LAMP 的咯!這種動態 WWW 主機很有趣喔!他可以溝通 Server 與 Client 端的資料呢!趕緊來進入這個 LAMP 的世界吧!
 
原理
  :什麼是 WWW 與網址( URL )
  :Client 如何向 Server 要求資料
  :有哪些類型的 WWW 網站?什麼是 LAMP
  :SSL 與 CA 的認證機制
套件安裝
  :RPM 安裝 LAMP 方式
  :Tarball 安裝 LAMP 方式 ( Apache 2.xx 2003/09/10 前 )
  :升級與安裝方式的選擇建議
主機設定
  :LAMP 的套件結構與主機規劃
  :基本要求
  :最簡易 Apache 設定(含關於中文顯示之設定)
  :啟動 httpd (如何關閉 https )
  :測試結果
  :用戶的個人網頁啟動
進階安全設定1. CGI ( Perl 檔案 ) 之執行、Index 顯示、查無網頁顯示之設定
      2. 抵擋 IP 與限制使用者動作的設定(allow, deny, limit)
      3. 主機狀態說明網頁設定
      4. 關於權限的意義說明與設定
      5. 設定認證網頁
      6. .htaccess 檔案與 AllowOverride 的用途
      7. 防火牆
登錄檔分析與其重要性
     :1. syslog 與 logrotate
     :2. Web Analyser
虛擬主機架設
客戶端的文字介面 Web 功能
增強 PHP 程式碼執行速度的模組
  :MM Cache
  :Apache 的效能測試
砍站軟體與 Nimda 病毒的抵擋 scripts
安裝 phpBB2 討論板
問題討論
     :1. 關於顯示中文的額外說明
     :2. 關於無法執行 PHP 的說明
     :3. 關於 MySQL 的問題說明
     :4. 關於啟動 httpd 時出現的 perl 問題
課後練習

原理:什麼是 WWW 與網址
    WWW 是 World Wide Web 的縮寫,其中, Web 有廣播網的意思存在,所以,簡單的說,WWW就是全球資訊網,可以結合文字、圖形、影像及聲音等多媒體,並透過 超連結 ( HyperText ) 的方式,將資訊透過 Internet 傳遞到世界各處!那 WWW 的資料是如何傳遞的呢?
     
    如果你常上網瀏覽的話 ( 不論是使用 Mosilla 、IE 或是 Netscape ),你應該會知道,臺灣有個蠻有名氣的入口網站:奇摩雅虎站 ( tw.yahoo.com ),所以你只要在網址列上面輸入『  http://tw.yahoo.com 』就可以瀏覽到奇摩雅虎的網頁資訊囉!這個http://tw.yahoo.com就是所謂的 URL ( Uniform Resource Locator ) ,其中 tw.yahoo.com 就是所謂的主機名稱,亦即是我們前面剛剛提過的 DNS 裡頭的 FQDN ( Fully Qualified Domain Name ) ,即是主機名稱加上領域名稱所得的一個獨一無二的 Internet 上面之名字啦!由於電腦在網路裡面僅認識 IP 而已,所以,奇摩雅虎站的真實 IP 就是透過 DNS 解析 tw.yahoo.com 而找到這部電腦,然後經過 WWW 的協定功能將資料傳到你的眼前來!那麼有哪些格式的 URL 呢?呵呵!整個來說,網址列可以輸入這些咚咚:
     
    <協定>://<主機位址>[:port]/<目錄資源>
       
    舉個例子來說,我們通常去到中山大學的 FTP 網站都是以 Web 介面進入的,因為可以直接以瀏覽與搜尋的功能去捉取資料,因此,這個時候我們可以在網址列輸入:『 http://ftp.nsysu.edu.tw 』以進入 WWW 介面的 FTP 網站!請注意,是 WWW 介面喔!那麼如果我想要直接以 FTP 的模式來進行資料的瀏覽與傳輸呢?呵呵!直接在網址列輸入以 ftp 為方法的網址:『 ftp://ftp.nsysu.edu.tw 』呵呵!是否發現兩者顯示的咚咚不太相同?!沒錯啦!那就是因為我們所連接的主機的協定不一樣的緣故,所以主機回應的資料當然就不同啦!請特別留意這種網址列的格式喔!
     

    Client 如何向 Server 要求資料:
     
    那麼 WWW 是透過什麼樣的協定來傳達資料的呢?呵呵!沒有看到網址列的 http 嗎?對啦! WWW 就是使用所謂的 http 這個協定來傳送資料的,HTTP 即是 HyperText Transfer Protocol 的簡寫,亦即是目前 WWW 的資料傳遞主流協定啦!而在網站上面供人瀏覽的網頁,則大部分需要符合 HyperText Markup Language (HTML) 的語法囉!也就是說,當我們在網址列輸入主機的網址之後:
     
    1. Client 端先經過 DNS 解析得到 WWW 主機的 IP ,然後會發出一個資料封包,以 http 這個協定( 或方法 )聯繫到 WWW 主機,告知 WWW 主機我們要以 http 的方法來取得資料,同時,這個時候使用的是 TCP 協定,亦即需要經過三向交握的過程喔;
    2. WWW 主機收到這個資料封包之後,會根據 Client 端的要求,提供相關的訊息來回應,大部分的情況下皆是使用 http 的協定傳送具有 HTML 語法的網頁資料到 Client 端的瀏覽器上;
    3. 最後 Client 端的瀏覽器將 HTML 的語法經過解析後,以相關的畫面來顯示到螢幕上,提供用戶來觀賞喔!
     
    這就是主要的流程啦,不過,Client 傳到到 WWW 主機,與 WWW 主機回應的訊息裡面,可包含有哪些可能的動作呢?
       
    大致上就有這些功能,當然啦,最主要的就是 GET 這個功能啦!畢竟我們連上 WWW 主機就是為了要取得他的資料嘛! ^_^。要記住的是,因為未來我們可能會去分析網站上的資料,所以,你必需要瞭解一下什麼是 GET 或 HEAD 等等的意思!不然很多東西很難理解喔! ^_^
     

    有哪些類型的 WWW 網站?什麼是 LAMP?
     
    剛剛前頭我們提到的都是關於 Client 端相對於 Server 端求取資料方面的問題,那麼再來要談的,是『咦!到底有哪些主要的 WWW 主機作業系統與軟體之搭配呢?』呵呵!問的好!在回答這樣的問題之前,我們先來討論一下, WWW 主機的主要類型好了。基本的類型我們可以分為兩種:
       
    呵呵!這麼看起來的話,似乎動態網頁比較精彩喔!因為他可以跟使用者互動,也就更增加 WWW 主機的可變性與靈活運用之性質!所以囉,有辦法的話,當然是選擇動態網站的 WWW 主機架設比較好囉!那麼動態網頁的 WWW 主機需要些什麼呢?就如同剛剛我們提到的,最重要的是那個可以隨時更新資料的『資料庫軟體』所提供的資訊,來與使用者互動,因此,一定要有資料庫軟體喔!再來,只有資料庫,沒有存取介面來溝通 Server 與 Client 端的資料傳遞當然還是無法直接在 Web 介面上面存取資料庫的內容啦!因此,我們還需要一個『網頁程式語言』來進行這個介面的編寫哩!當然啦,最主要的還有就是需要 WWW 運作的軟體啦!所以你需要:
       
    那目前有哪些主流的個人動態 WWW 主機系統呢?大致上可以分為兩種:一種是 Windows 系統的 IIS + MS 的 SQL + ASP WWW伺服器,這種 WWW 主機架設上蠻容易的,不過由於 Windows 的某些特性,所以很容易被 Cracker 所破壞;另外一種則是 Linux 系統上面的 Apache + MySQL + PHP 的 WWW 伺服器 ( 簡稱 LAMP ) ,這種伺服器架設上有一定程度的困難度,尤其在升級與維護的方面,但是運作妥當的話,他的硬體要求、性能、安全性等方面,則相對的較佳喔!我們這裡本來就是練習 Linux 的嘛!因此底下鳥哥將針對 Linux 系統上面的動態 WWW 主機進行介紹,當然啦,主角是 WWW 套件的 Apache 啦!至於需要瞭解的是: PHP 與 MySQL 分別是兩個獨立於 Apache 的套件,因此要讓 Apache 這個 WWW 軟體能夠啟用 PHP 與 MySQL 的功能,就必需要啟動 Apache 裡面的 PHP 與 MySQL 的模組啦!首先,不能免俗的,我們還是得分別介紹一下 LAMP 裡面各個小東西的說明:
       

    SSL 與 CA 的認證機制:
     
    我們在前頭有提過關於 HTTP 使用在傳輸上面的協定仍然是以 TCP/IP 為準,他傳輸的時候是使用明碼來傳送的,也就是說,在 Internet 上面流竄的 WWW 資料,基本上,都是以沒有加密過的形式在傳送資料!那麼,當有些有心人士,利用 TCP Listen 的功能,即可將 Internet 上面的資料封包捉下來進行解析,並可能進一步取得該資料封包內的資訊!『嗄!這有什麼了不起,不過就是 WWW 資訊而已,又不像 SSH 這種遠端連線伺服器的重要!』嘿嘿!這您可就有所不知了。要曉得的是,我們的網站並不涉及金流及物流的資訊,所以當然沒有什麼『隱密性』可言,但是,如果今天換成是一個交易網站呢?例如網路書店的信用卡交易,例如一些金融公司提供的網路交易行為!這些訊息當中,很多都是含有相當重要的私人訊息ㄋㄟ∼例如信用卡、身份證等代表個人的證號。萬一被人擷取,呵呵!那可不是鬧著玩的!所以囉,這個時候就需要有『資料加密』的動作了!目前用在 WWW 上面的主要加密功能,有 Secure Socket Layer ( SSL ) 及 Certificate Authorities ( CA )兩個主要的模式。
     
    Secure Socket Layer ( SSL )
    不曉得您是否還記得我們在 遠端連線伺服器 裡面提到的關於 SSH 這個伺服器的連線過程!?也就是利用 Server 提供的 Public Key 並配合 Client 端隨機產生的 Private Key 來組成一組加密( Public Key )與解密( Private Key )的方法!呵呵!這個方法同樣的也被運用於 WWW 主機的設定啦!而支援這個 WWW 主機進行 Public 與 Private 加密的套件,就是很多時候都被拿出來使用的 OpenSSL 這個好傢伙了!所以囉,要讓你的 WWW 具有 SSL 加密的功能,就必需要安裝 OpenSSL 這個套件才成吶!基本上,當 Client 端要向 Server 端求取資料的時候,則利用 Server 端本身提供的 Public Key 及 Client 端隨機產生的 Private Key 組成一組可供利用的密碼組合!則資料由 Server 傳送到 Client 端之前,會先經由 Server 的 Public Key 將資料封包加密,而到了 Client 之後,才經由 Private Key 將資料解密!所以,當資料在 Internet 上面跑時,他是加密過的資料封包喔!即使被人劫取下來,他不曉得 Public 與 Private ,那麼要解密可能也得費上幾天幾夜,甚至是好幾年的功夫ㄋㄟ!因此,資料就會比較安全啦!當然啦,以我們這種主要以分享為主的網站,自然不需要使用這種技術!反正資料本來就是 Open 的! ^_^
     
    Cerificate Authorities ( CA )
    CA 這個方法同樣也是使用 Public 與 Private Key 的方式, ( 呵呵!我們可以說,目前加密與解密的行為大部分都是使用這種類似的觀念來進行的啦! ) 由於 SSL 使用的 Public 是 WWW Server 自行建立與產生的,所以具不具有公信力我們還不是很清楚!萬一你連上去的 WWW 網站是個騙人的集團建立的,那麼有沒有加密對你而言,不都是粉危險的嗎?咦!那麼是否可以透過第三公證人來查驗這個 Server 的 Public Key 呢?呵呵! CA 這個方法就是要達成這個目的啦!基本上, CA 是一個公認的合法組織,他可以用來查驗 WWW Server 提供的 Public Key 是否合法!以保障 Client 者的權益。因此, CA 是要錢的喔!
     
    我們這裡對於 SSL 及 CA 這兩個咚咚僅提及他的概念,底下的文章並沒有提到要怎麼製作!有興趣的朋友得自行到相關的網站去查詢喔:
     

套件安裝
主機設定:
進階安全設定:
登錄檔分析與其重要性
    無論怎麼說,登錄檔永遠是相當重要的!尤其是在 /var/log/httpd 裡面的 error_log 這個檔案!因為:
     
    1. 他記錄了所有試圖進入你主機讀取 apache 的網頁資料,但是卻失敗的所有紀錄,
    2. 此外,如果你的 Apache 設定錯誤,那麼問題也是記錄在這個檔案中;
     
    而至於其他相關的檔案,嘿嘿!那個 /var/log/httpd/access_log 檔案也需要注意一下,因為他記錄了所有來自 Client 端的 IP 以及其他相關的讀取資料之訊息!這個檔案對於未來分析你的 Apache ( WWW )被讀取網頁的所有紀錄喔!相當的重要的啦!
     

    syslog 與 logrotate:
     
    首先針對 Apache 的設定檔當中,要注意的就是那個 syslog 與 logrotate 囉!詳細的資訊可以參考一下『鳥哥的 Linux 私房菜 -- 基礎學習篇』之認識登錄檔。好了,那麼你的 syslog 應該要怎麼設定呢?因為我們畢竟是使用 tarball 安裝的,所以根本就沒有所謂的 syslog 的設定,不過,這個不需要擔心,這是因為 Apache 裡面本來就有 syslog 的設定存在了!所以,這點我們不需要重新來設定啦!只要記得你的登錄檔目錄是在哪裡就可以啦!目前我的登錄檔與 pid file 是在:
       
    然後,我的 logrotate 的紀錄目錄在 /etc/logrotate.d 裡面,因此,我就在裡面新增一個檔案,稱做是 apache,你可以這樣做:
     
    [root@test root]# cd /etc/logrotate.d
    [root@test logrotate.d]# vi apache
    # 新加入這幾行
    /var/log/httpd/access_log /var/log/httpd/error_log {
        rotate 4
       missingok
        sharedscripts
        postrotate
            /bin/kill -HUP `cat /var/log/httpd/httpd.pid 2>/dev/null` 2> /dev/null || true
        endscript
        compress
    }
     
    如果不知道上面的每個資料代表的意義,還是請前往 認識登錄檔 一文喔!然後趕快試看看是否可以執行 logrotate 呢?
    logrotate -f /etc/logrotagte.conf
    呵呵!這樣就對啦!那麼為什麼要加入這個 logrotate 呢?這是因為,未來,如果你的 WWW 伺服器越來越大時,那麼應該 access_log 檔案會『很可怕的大!』例如目前本小站的流量每週可以造成我的登錄檔長大到 400MB 以上∼如果不將他 rotate 的話,哈哈!不出幾個星期,我的硬碟就爆了∼所以, logrotate 是很重要的喔!
     

    Web Analyser
     
    如果我想要知道最近有誰曾經來我的網頁上面逛過,以及該使用者使用的是什麼樣的作業系統呢?該怎麼看?!很簡單吶!直接跑到 /var/log/httpd/access_log 這個檔案裡頭去瞧一瞧就知道啦!裡面的紀錄有點像這樣:
      
    192.168.1.11 - - [27/Dec/2002:00:20:24 +0800] "GET /manual/ HTTP/1.1"  200 7340
     來源 IP       日期與時間          動作與網頁      動作代碼
     
    立刻可以知道在何時,那個 IP 對於本機的動作是什麼,以及是否有成功?很清楚對吧!所以我們可以藉由這個檔案知道我們的主機被利用的狀態!但是,如果像我的主機一樣,一下子就有 400 多 MB 的檔案,您要怎麼分析?看都看不完ㄋㄟ∼呵呵這個時候,就需要使用 Shell scripts 的幫助啦!你可以自行寫一個適合您自己的分析工作,來進行解析的行為!不過,由於目前網路上已經有很多的好用的 Web 分析的工具啦!所以呢,我們只要進行他的安裝即可喔!很方便吧!底下我們介紹幾個好用的 Web 分析工具來給大家瞧一瞧!
     

虛擬主機架設
至於這個設定嘛!真的是很簡單耶!只要幾行就搞定了,設定完成之後還會讓你偷笑ㄋㄟ∼呵呵!看看實例吧!
 
[root@test root]# cd /usr/local/apache2/conf
[root@test root]# vi httpd.conf
# 在這個檔案的最下方加入底下這些字眼!

NameVirtualHost *     # 設定你的虛擬主機判定的依據!這裡是 * 亦即是
             # 所有連上這部機器的名稱都會被使用來當作虛擬主機的設定之用!

<VirtualHost *>
    ServerName    mdk90.vbird.net
    DocumentRoot  /home/mdk90
</VirtualHost>

<VirtualHost *>
    ServerName    www.mdk90.vbird.net
    DocumentRoot  /home/www.mdk90
    CustomLog     /var/log/httpd/www.access_log combined # 特別將登錄檔額外分離出來
</VirtualHost>

<VirtualHost *>
    ServerName    phorum.mdk90.vbird.net
    DocumentRoot  /home/phorum.mdk90
</VirtualHost>

 
要注意的是:
  1. 在虛擬主機的設定上還有很多的可用的功能,不過,最低的限度是需要有 ServerName 及 DocumentRoot 這兩個即可!
  2. 雖然原來我就有 mdk90.vbird.net 這個網域,但是因為設定了虛擬主機之後,自己的原來名稱可能會不見去,所以,這裡必須將自己的名稱也寫入才行!
  3. 上面有發現一個 CustomLog 的設定喔!該設定會讓以 www.mkd90.vbird.net 這個網域登入的登錄檔不再寫入原來的 /var/log/httpd/access_log 檔案,而是自行寫入 /var/log/httpd/www.access_log 這個檔案!
馬上測試看看!呵呵!會發現,咦!我真的有三個主網頁了哩!很不錯吧!這個作法可以讓你的 WWW 網頁更有靈活度喔!舉個例子來說,前一陣子因為酷學園討論區(http://phorum.study-area.org) 常常掛點,所以鳥哥就自告奮勇的跟站長說,只要將 phorum.study-area.org 這個 domain name 指向我的主機 IP ,那麼也可以直接進入我的討論區,如此一來,只要修改一下 DNS 即可轉換到我的討論區啦!並且不需要再進行任何額外的設定!對於網頁維護的靈活度是真的很有幫助的喔!
 
  • 需要注意的事項:

  •  
    虛擬主機並沒有什麼值得特別注意的地方,只要設定正確,大致上就不會有太大的問題!不過,你可能需要特別注意剛剛我們建立起來的新的登錄檔喔!為什麼呢?我們上面不是提過說,登錄檔在大型的網站上面成長的幅度是很可觀的嗎?所以需要進行 logrotate ,但是你剛剛建立的檔案並不在原本的 logrotate 檔案之內呀!呵呵!這個時候請自行加入 logrotate 個手續喔!否則.....嘿嘿嘿嘿!硬碟空間被用光可不要怪鳥哥喔! ^_^

    客戶端的文字介面 Web 功能:
    什麼!?客戶端竟然也有文字介面的瀏覽器?!哈哈!當然是有啦!不然這裡幹嘛要介紹?!那就是鼎鼎大名的 lynx 以及 wget 囉!請注意的是,這兩個套件並不一定會在安裝的時候就已經安裝在你的系統中,所以請先使用 RPM 查詢一下他是否存在於你的系統當中,然後才能執行喔!他的用途是: 這兩個指令之前已經介紹過了!請自行前往觀察一下囉!加油啦!

    增強 PHP 程式碼執行速度的模組:
    砍站軟體與 Nimda 病毒的抵擋 scripts:
    幾個比較知名的網站管理員大概都有這樣的困擾,那就是網站常被砍站軟體所強力下載,結果造成主機的 CPU loading 過重,最後竟然會導致死掉∼唉!真是的∼人怕出名豬怕肥吶!先來解釋一下什麼是砍站吧!所謂的『砍站』,就是以類似多點連線下載的持續性訊息傳遞軟體進行網站資料的下載,而且,一啟用該軟體,該軟體就將『整個網站』的內容都給他 download 下來,很厲害吧!沒錯!是很厲害,但是卻也害死人了∼怎麼說呢?因為這種軟體常常會為了加快 download 的速度,所以採用多點連線的方式,也就是會持續不斷的向 Server 發出要求封包,而由於這些封包並不見得能夠成功的讓 Server 把資料傳導給 Client 端,常常會無法投遞就是啦!這樣的結果就是.....造成 Server 要一直不斷的回應,又無法正確的回應出去,此外,要求太過頻繁,結果主機應接不暇,最後....就當機了...真的是林老師ㄌㄟ∼我們這個小站的主機古早以前,就是因為這樣的原因,導致服務常常斷斷續續的,並且,由於 CPU loading 太高,結果讓正常連線進來看資料的網友沒有足夠的資源,因此網頁開啟的速度就變的很慢∼唉∼這些砍站的人,也太不道德啦!
     
    由於這種砍站軟體真的很麻煩,一不注意馬上就又會被砍站而當機,三天兩頭就要重新開機一次,完全讓 Linux 的穩定性無法發揮!真是氣死了∼後來,我就自行寫了一個 scripts 來擋這樣的 IP !我的作法是這樣的:
    1. 由於砍站軟體要多點連續下載,因此,同一個 IP 在同一個時間內,會有相當多的連線發生;
    2. 由於他是重複不斷的要求連線,因此剛剛建立的連線在達成下載的目的後,會立刻死掉,而又多生出其他的連線出來,因此,這個時候他的連線情況就變的相當的不正常了!
    3. 由於某些較舊的砍站軟體並不會『欺騙』主機,所以,會在主機的登錄檔裡面記錄住 Teleport 的標記!
    4. 既然如此的話,那麼我就讓我的主機每分鐘去檢查兩個東西(1)先檢查 log file ,如果有發現到相關的 Teleport 字詞,就將該 IP 抵擋掉;(2)使用 netstat 來檢查同一個 IP 的同時連線,如果該連線超過一個值(例如同時有 12 個連線)的話,那麼就將該 IP 抵擋掉!
    5. 此外,由於上面的方案可能會將 Proxy 的 Client 端也同時抵擋掉,真是可憐啊!這個時候,這支程式就會主動的將(1)的情況的主機抵擋 3 天,至於(2)的情況則抵擋2小時!過了該抵擋的時限後,該 IP 即可又連上我們的主機了!
    大致上就是這樣吧!這樣的一程式需要與 iptables 相互配合,所以,請先查閱一下簡易防火牆設定那一篇文章,然後再來下載這支程式吧!這支程式您可以在底下的網址下載喔!
    http://linux.vbird.org/download/index.php#http-netstat.sh
    詳細的安裝步驟我已經以中文寫在該檔案裡面了,所以請先查看一下該檔案的前面說明部分吧!此外,Study Area 的 netman 大哥也已經開發了一套很棒的防砍站的程式了!在防堵砍站的原理上面是完全相同的,不過寫法可能不是很雷同就是了!如果有需要的話,也可以前往 Study-Area 搜尋一下囉!
    http://phorum.study-area.org/viewtopic.php?t=13643

    安裝 phpBB2 討論板:
    上面這樣一路走來,哈哈!終於我們的 LAMP 伺服器就已經大致上搞定啦!那麼接下來你可以利用這個 WWW 主機幫你做什麼事呢?嗄!能作的事情可多囉!目前很多支援 PHP 的架站軟體已經被很完整的開發了,例如 PHPNuke 以及鳥哥很喜歡的 phpBB 呢!這些架站軟體都是建構在 LAMP 上面的,而既然我們的 LAMP 已經搞定了,那麼其他的架站軟體的安裝就真的是相當的快速呢!底下介紹 phpBB 的安裝!你可以到底下的連結去看看喔: 上面最後一個是鳥哥前一陣子寫的,目前已經有出較新版本的 phpBB2 囉!所以,請記得到官方網站下載最新的 phpBB 來安裝喔!畢竟比較新的不但功能比較多,而且臭蟲(Bug)也清理的差不多了!另外,由竹貓星球的竹貓三兄弟也有出一本『phpBB 論壇架設寶典』,裡面也有提到相當多的有用的架站心得與技巧的說明!有興趣的可以先到竹貓星球看看其風格與內容,然後再考慮要不要架站吧! ^_^目前我對 phpBB 倒是蠻喜歡的!

    問題討論:
    課後練習
    簡易 WWW 伺服器設定

    2003/01/14:第一次完成
    2003/01/18:新增問題討論:關於中文的說明
    2003/01/21:新增問題討論:關於 PHP 無法使用的問題說明
    2003/04/28:加入砍站軟體的程式說明
    2003/04/29:加入 PHP 原始碼程式優化模組 MM Cache 說明。
    2003/05/07:加入 ab 這個效能測試的說明!
    2003/05/30:使用 Tarball 安裝時常常發生一些困擾,加入 User/Group 的設定說明!
    2003/09/10:將原本在 2002/12 安裝 Tarball 的套件更新為目前 2003/09 最新的版本來安裝喔!
    2003/10/02:加入一些問題的克服之道喔!
    2004/03/25:修訂 MySQL 安裝的流程!第四步驟加入權限的修訂!
    2004/09/03:修改了 MMCache 的主網頁。