Apache 支持CGI程序和SSI程序的設(shè)置方法
2024-08-27 18:24:16
供稿:網(wǎng)友
在這里,網(wǎng)頁教學(xué)網(wǎng)和大家探討如何修改服務(wù)器選項讓服務(wù)器能提供簡單的動態(tài)網(wǎng)頁內(nèi)容,也就是支持CGI程序及 Server-Side Include(SSI)程序。 由于Apache具有相當(dāng)高的可移植性,它支持超過30種操作系統(tǒng),包括Unix、Windows 及Darwin等系統(tǒng),所以目前在網(wǎng)絡(luò)上已注冊的網(wǎng)域里大部份是使用Apache網(wǎng)頁服務(wù)器。目前ApacheSoftware Foundation 正致力于發(fā)展現(xiàn)在已進入alpha測試階段的Apache2.0。在這里,網(wǎng)頁教學(xué)網(wǎng)和大家探討如何修改服務(wù)器選項讓服務(wù)器能提供簡單的動態(tài)網(wǎng)頁內(nèi)容,也就是支持CGI程序及 Server-Side Include(SSI)程序。
1、準(zhǔn)備工作
首先,我假設(shè)你已經(jīng)安裝好Apache而且你的Apache能提供靜態(tài)網(wǎng)頁供瀏覽。Apache的安裝會自動附上靜態(tài)的HTML測試頁,也就是說如果能看到那測試頁,就代表你的Apache能正常運作了?;景惭b下的Apache僅能提供靜態(tài)的HTML網(wǎng)頁。然而,你可以通過使用模塊(modules)來提升它的功能。在原始的設(shè)定下,Apache的編譯會包含mod_include 及 moc_cgi 這兩個模塊。你可以在bin子目錄下執(zhí)行./httpd -l來查看你的Apache是否裝有這兩個模塊。執(zhí)行的輸出會是一長串Apache現(xiàn)在安裝的所有模塊。如果mod_include及moc_cgi 這兩個模塊不在清單里,你必須重新編譯服務(wù)器。重新編譯時,確定依照如何含括 mod_include、moc_cgi 模塊的說明。此外你還必需有提供實時網(wǎng)頁的Server-Side Includes(相關(guān)資料網(wǎng)址:http://www.oreilly.com/catalog/apache/excerpt/ch10.html)。有了 server-side includes (SSI)支持,你就能制作出實時的動態(tài)網(wǎng)頁。接下來,我先從服務(wù)器的SSI支持設(shè)定開始,然后進入CGI的編寫。
2、Apache的設(shè)定
首先你必須先找到Apache這個設(shè)定文件。Apache的原始安裝目錄在 Unix下是/usr/local/apache,在Windows下則是 c:Program FilesApache。接著在conf子目錄下你會找到httpd.conf 文件。這就是Apache的設(shè)定檔。這個設(shè)定文件是個純文字文件,所以你可以使用一般的文字編輯器,如vi或Notepad 等,來編輯。首先要注意的是在這個設(shè)定檔里有些行的起始文字是#符號,這表示這行的文字全為批注。適當(dāng)?shù)卦谀愕脑O(shè)定檔內(nèi)做批注是個好習(xí)慣,因為那幫你記得你曾做了哪些設(shè)定以及為什么。
3、執(zhí)行 SSI 程序
開啟設(shè)定文件并尋找以下這些文字:
#
# To use server-parsedHTMLfiles
#
#AddType text/html .shtml
#AddHandler server-parsed .shtml
刪除AddType及AddHandler這兩行指令前的#符號。AddType指令會要求服務(wù)器在傳回任何附屬檔名為.shtml的網(wǎng)頁時,以 text或HTML做為傳回文件的內(nèi)容格式。AddHandler 則是用來指示服務(wù)器將文件內(nèi)容送交給mod_include 處理。之后,mod_include 就會判斷該如何響應(yīng)這樣的文件。接下來,尋找以下文字:
在這行文字及對應(yīng)的 間會有一行選項行(options line)。原始的設(shè)定是:
Options Indexes FollowSymLinks MultiViews
在這行尾端加上Includes ,結(jié)果看起來會是這樣:
Options Indexes FollowSymLinks MultiViews Includes
這是要求Apache在htdocs子目錄里執(zhí)行 server-side includes 程序。為了讓這些修改生效,我們必須重新啟動服務(wù)器。在 Unix 下重新激活,執(zhí)行kill -HUP `cat /usr/local/apache/logs/httpd.pid`。在 Windows 下,執(zhí)行Apache-k restart?,F(xiàn)在我們來試試剛才的設(shè)定結(jié)果。在/usr/local/apache/htdocs 目錄里新增一個文件 test.shtml。這個文件必須要包含以下程序代碼:
The file hello.txt is long and it was last modified on
這段 SSI 程序會去讀取一個稱為 hello.txt 文件,并將該文件的大小以及最近一次的修改日期輸出到網(wǎng)頁上。顯然的,我們還必須在 htdocs 目錄下新增這個hello.txt 文件。在我的hello.txt 文件里只有一行文字:HOW ARE YOU!。完成新增這些文件后,打開你慣用的瀏覽器并開啟http://localhost/test.shtml網(wǎng)頁。如果你服務(wù)器的安裝并不是通過root用戶,你可能必須改為開啟http://localhost:8080/test.shtml。之后將得到如下結(jié)果: