中文 Linux WWW HOWTO <author>原著作者: Mr. Poet, <tt> <htmlurl url="mailto:poet@linuxports.com" name="poet@linuxports.com"></tt> <newline> 譯者: 王世渠﹝Wang, Shyh-Chyu﹞ <date>v0.85, 21 August 1999 <abstract> 本文敘述,為了提供全球資訊網﹝WWW﹞的各種服務,在Linux上的設定資訊﹝包括設定伺服端及用戶端程 式﹞。本篇HOWTO的目的,不是在提供一份詳細的手冊,而是在提供一份概略的敘述,並提供如何去找到進 一步資訊的方向。 </abstract> <toc> <!-- Introduction SECTION ================================================== --> <sect>前言<label id="Intro"> <p> 為了追求一個真正<em>擅長網際網路</em>的操作系統,許多人因而開始試用Linux。 另外,又有一些學院.、大學、非營利事業、及一些小型企業。他們希望建立一個網站, 又不需要什麼經費。這就是 WWW-HOWTO 原始的目的。本文件主要敘述如何為網際網路 中最主要的<em>全球資訊網﹝World Wide Web﹞</em>設定伺服端及用戶端程式。 文中的價格一律以美金計算。並假設你的Linux是建立在Intel的平台上。如果你使用其他 平台,指令及產生的結果可能會不一樣。你可經由許多連結來下載此文件,如果可能請儘 量經由映射站來下載,並保留一份在你的主伺服器上。 <sect1>著作權聲明 <p> 本文件的著作權 (c) 1999 屬於 Mr. Poet。 本文件的著作權 (c) 1999 屬於本文件原始作者 Peter Dreuw。﹝0.8版前的所有文件﹞ 本文件為自由軟體文件,在不違反自由軟體協會發行的GNU General Public Licence﹝第二版或 任何《參考你的意見後的》後續版本﹞下,可以自由複製發行或改寫。 本HOWTO的發行,只期望能夠是一份有用的資料,而沒有附帶任何的保證。對任何商業行為不隱含任何 保證,對任何特定的目的也不保證絕對符合。相關細節請參考GNU General Public Licence。 要取得一份GNU General Public License,請來信給自由軟體協會﹝Free Software Foundation﹞, 地址:Inc., 675 Mass Ave, Cambridge, MA 02139, USA.。 文件中所提到的註冊商標,歸各自擁有者所有。 <p> 原著作內容(Origional Copyright): <P> This document is Copyright (c) 1999 by Mr. Poet This document is Copyright (c) 1997 by Wayne Leister. The original author of this document was Peter Dreuw.(All versions prior to 0.8) This HOWTO is free documentation; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This document is distributed in the hope that it will be useful, but without any warranty; without even the implied warranty of merchantability or fitness for a particular purpose. See the GNU General Public License for more details. You can obtain a copy of the GNU General Public License by writing to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. Trademarks are owned by there respective owners. <!-- Insert new Copyright --> <sect1>讀者意見 <p> 歡迎所有的意見,筆者並非萬事通,有些資料來源還是一些蠻爛的網站,疏忽錯誤 在所難免。但在反映錯誤前,請先比對一下最新版本。也許你所發現的問題,已經在 下一版中訂正了。﹝下一段告訴你如何取得最新版本﹞。 讀者意見請寄至 <htmlurl url="mailto:poet@linuxports.com" name="poet@linuxports.com">. <sect1>最新版本 <p> 最新版本可經由下面的永久網址中取得: <htmlurl url="http://www.linuxports.com/howto/www" name="Website">. <!-- WWW = CLIENT SECTION =========================================== --> <sect>如何設定全球資訊網用戶端軟體 (Antiquated) <p> <quote>請注意!本章自1997年來,一直都還未修改過。它所以保留下來,只是要告訴你以 前的作法。所有有關Linux的軟體,都是來自Netscape及Lynx。它們也是Linux上最主要的 瀏覽器,如果你還沒有這些瀏覽器,那麼趕快依照相關章節的線索去下載吧!</quote> 下面章節介紹如何設定全球資訊網瀏覽器。如果你認為某個瀏覽器值得一題,卻不在其中, 請惠於賜教。在這一版本中,只有某些瀏覽器有單獨的章節。但是在概論中,會盡量含蓋所 有可以找得到的瀏覽器。某些主要瀏覽器如果真的值得細說,也會在未來另闢章節加以介紹。 「概述」是用來提供你一些資訊,幫助你決定要用什麼瀏覽器。「細說」針對每一瀏覽器, 細述如何去安裝、設定及維護。 事實上,平常當我不想放出X-Window/Netscape這個怪獸出來搗蛋時,我只用Lynx。 <sect1>概述 <p> <descrip> <tag><ref id="netscape" name="Navigator/Communicator"></tag> Navigator是本文中唯一在Linux上支援完整HTML功能的瀏覽器。例如,Frame、Java、 Javascript自動更新、及Layers的功能。它還可以收發news及mail。但是,它對電腦資源 也許太像一隻貪婪的豬,吃掉一大堆CPU time及記憶體。而且,還在硬碟中設快取空間, 浪費硬碟空間。 現在Netscape乃是一OpenSource的軟體,可以從 <htmlurl url="ftp://ftp.netscape.com" name="ftp.netscape.com">下載。 <tag><ref id="lynx" name="Lynx"></tag> Lynx是最小的瀏覽器。為一自由軟體原始程式,可依照GNU的public licence取得。雖然是 以文字為主,但Lynx還是有蠻多特殊功能。現在已可支援table、color﹝非curses﹞及frame。 <quote>Lynx支援的frame功能:</quote> <quote> Lynx只支援部份的frame功能。一旦發現了frame,它會讀frame的標題,顯示成連結。這常常在語意上讓人誤解。</quote> <tag/Kfm/ Kfm為K Desktop Environment﹝KDE﹞的一部份。KDE是在X-Windows上的一個系統。提供一些 像drag and drop、sound、trashcan及look and feel的功能。Kfm是K file manager ,也是瀏覽器。用來當瀏覽器時,可以支援frame、table、ftp下載,檢查tar文件庫﹝Archieve﹞ 等等•••。現在的版本為1.1.1而1.1.2即將啟用。雖然在沒有KDE下,可以使用Kfm,但KDE的函 式庫還是要有。KDE及Kfm的細節,請參考<url url="http://www.kde.org">。 <tag><ref id="emacs" name="Emacs"></tag> Emacs是個萬能的程式。是文件處理器、是news閱讀器、是Mail閱讀器、也是瀏覽器。要學習使用 Emacs,一開始時,要學的東西實在太多了,因為你必須去學所有按鍵的功能。而X-Windows的版 本就容易得多了,因為大部份的功能都在選單中。但是有一個缺點,即它主要是以文字模式為主 。﹝註:在X-Windows中,Emacs可以畫圖。﹞Emacs也是自由軟體,原始程式可依據GNU的 public licence取得。 <tag/NCSA Mosaic/ Mosaic是Illinois大學的NCSA﹝National Center for Supercomputing Application﹞發 展的X-Windows瀏覽器:NCSA曾花四年時間在這個開發計劃,現在已轉移注意力到其它計劃,所以Mosaic 已經無人更新。因為它的原始程式,為自由軟體,如果有人想搞個計劃,開發在非商業用途上的瀏覽器, Mosaic對它來說可能蠻值得考慮的。 <tag/Amaya/ Amaya是為了W3C的HTML3.2標準所開發的X-Windows觀念設計用途瀏覽器,所以可支援所有HTML3.2 標準。它也支援HTML4.0的部份標準。Table、form、用戶端image map、put publishing、gif、 jpeg及png圖形都可支援。不但可當瀏覽器,也可當編輯工具。最新版本為1.0 beta版。1.1 beta 版還在作內部測試,不久就可開放使用。 相關細節參考<url url="http://www.w3.org/Amaya/">。 Amaya可從<url url="ftp://ftp.w3.org/pub/Amaya-LINUX-ELF-1.0b.tar.gz">下載。 <tag/Qweb/ Qweb是另一個X-Windows的基本瀏覽器。Table、form、及伺服器image map都可支援。最新版本為 1.3版。 相關細節參考<url url="http://sunsite.auc.dk/qweb/">。 來源檔可從<url url="http://sunsite.auc.dk/qweb/qweb-1.3.tar.gz">取得。 也可從<url url="http://sunsite.auc.dk/qweb/qweb-1.3-1.i386.rpm">取得RedHat的RPM檔。 </descrip> 筆者建議所有瀏覽器的使用者只使用Netscape 4.x,Lynx或Netscape 5.x Alpha。他們是在 Linux中,唯一支援大部份功能的瀏覽器。個人建議使用Netscape 5.x Alpha。它雖然只是 Alpha版,但極安定且比4.x版更能支援各種標準。 <!-- Lynx =================================== --> <sect>Lynx<label id="lynx"> <p> Lynx是一個現有的輕巧型瀏覽器。因為只展示文字,它不會吃掉太多線路寬頻﹝bandwith﹞, 也不會吃掉太多系統資源。可在任何顯示方式、任何終端機或xterm中展示。執行這個小瀏覽 器,你並不須要<em>X Windows 系統</em>或多餘的系統記憶體。 <sect1>如何取得? <p> 大部份的Linux套件中,就已經有Lynx了。告訴你如何編譯、安裝,可能對你來說沒什麼意義。 最新版本為2.8.2版,可由<url url="http://www.slcc.edu/lynx/fote/">取得,也可從任何 像<htmlurl url="ftp://sunsite.unc.edu/pub/Linux/apps/www/browsers/" name="ftp://sunsite.unc.edu under /pub/Linux/apps/www/broswers/"> 的Linux FTP伺服器或映射站取得。 相關細節,可試試下列網站: <descrip> <tag/Lynx Links/ <url url="http://www.crl.com/~subir/lynx.html"> <tag/Lynx Pages/ <url url="http://lynx.browser.org"> <tag/Lynx Help Pages/ <url url="http://www.crl.com/~subir/lynx/lynx_help/lynx_help_main.html"> (the same pages you get from lynx --help and typing ? in lynx) </descrip> 註:Lynx help page最近遷移,如果你在使用舊版Lynx,請將lynx.cfg﹝在/usr/lib中﹞中 的地址改為上述地址。 Lynx最特殊的處,大概是它的batch mode retrieval。你可以寫一個shell script,用<em/http/, <em/FTP/, <em/gopher/, <em/WAIS/, <em/NNTP/或<em>file://</em>來抓一個檔案、文件庫﹝Archieve﹞ 或類似的東西,然後還可存在磁碟中。你還可只由<em/-post_data/選項來抓標準輸入資料,在 batch mode中填寫HTML form。 Lynx的其餘功能,請參考Lynx的help及man page。如果你發現Lynx的其他功能,而且認為它非常值得 寫入本文件中,請不吝賜教。 <!-- Emacs W3 ================================= --> <sect>Emacs-W3<label id="emacs"> <p> Emacs有許多不同的款式。最受注目的是GNU Emacs及xEmacs。GNU Emacs是最早的Emacs,由Free Software Fundation開放使用。主要以文字為主,但可在X-Windows中執行。Xemacs﹝正式名稱為 Lucid Emacs﹞只能在X-Windows中執行。它還有許多和X-Windows有關的功能﹝較好的目錄等•••﹞。 <sect1>如何取得? <p> 大部份Linux套件含有GNU Emacs。 GNU Emacs的最新版本為19.34。沒有網站,但有FTP站<url url="ftp://ftp.gnu.ai.mit.edu/pub/gnu/">。 最新版的XEmacs是20.2版。FTP站在<url url="ftp://ftp.xemacs.org/pub/xemacs">。 相關資訊參考<url url="http://www.xemacs.org">。 兩者都可以由 <htmlurl url="ftp://sunsite.unc.edu/pub/Linux/apps/editors/emacs/" name="ftp://sunsite.unc.edu under /pub/Linux/apps/editors/emacs/"> 取得。 一旦安裝了GNU Emacs及XEmacs,就有了W3瀏覽器。 Emacs使用Emacs Lisp系統,幾乎含蓋所有的瀏覽器功能。它主要以文字模式為主,但是在 X Windows系統下,至少還可以展示圖形。 要讓XEmacs啟動它的W3模式,點選'apps',再選'brows the web'。 我沒有用過Emacs,如果有人知道怎樣啟動它的W3模式,我可以把它加進這個文件中。上 述資料大都抄襲自原著,如果你發現任何錯誤,或希望加入些什麼題材,請不吝賜教。 <!-- Netscape Navigator/Communicator ======================= --> <sect>Netscape Navigator/Communicator<label id="netscape"> <p> <sect1>各種版本及選項 <p> Netscape Navigator為全球資訊網瀏覽器之王。他幾乎十項全能。若是換一個角度,他卻 是啃蝕記憶體及系統資源最嚴重的程式。 它有3種不同版本: Netscape Navigator 包含瀏覽器、netcaster(push client)及基本的mail程式。 Netscape Communicator 包含瀏覽器、網路文件編輯器、較先進的mail程式、news閱讀器、 netcast﹝push client﹞及一堆網路會議工具。 Netscape Communicator Pro包含 Netscape Communicator的所有功能,外加一堆日曆、 IBM終端機模擬功能及遠端系統管理功能﹝系統管理員可待在自己的桌面﹝desktop﹞,更新 幾千份遠方機器中的 Netscape ﹞。 除了上述三個版本外,還有兩個選項值得注意。 首先有完整安裝及基本須修求安裝。完整安裝可以安裝所有功能;而基本安裝只安裝足以讓 你使用的功能。如有必要你還可以下載其他元件﹝如多媒體支援及netcaster﹞。你可用 Netscape智慧安裝工具來安裝﹝安裝後選'help'→'software updates'﹞。但是現在Linux上 的 Netscape還未支援完整安裝。 第二選項為內銷版或外銷版。在美加地區,你可以使用內銷版,而128 bit加密的安全傳輸﹝SSL﹞ 的強大功能。否則,你只有40 bit加密能。在美加以外,只允許使用此一版本。 Netscape Navigator / Communicator / Communicator Pro的最新版為4.6.1。Linux只擁有 兩種不同版本。其一搭配舊版﹝1.2系列﹞核心系統﹝kernels﹞,另一搭配新版﹝2. x﹞。如 果你還沒有高於2.0版的核心系統,給你一個良心的建議,快快升級吧!新版本已有了許多改善。 Netscape還有beta版。如果測試用beta版,通常有一個月的試用期。 也可以試一下5.0 alpha版。它可從Mozilla計劃 <htmlurl url="www.mozilla.org" name="www.mozilla.org">下載。 你也可以試一下從<htmlurl url="www.mozilla.org" name="www.mozilla.org">下載的 5.0 alpha。我個人非常建議使用Netscape 5。它是我所見過最有彈性、最安定的瀏覽器。 <sect1>如何取得 <p> 取得Netscape軟體最好的方法,就是直接到他們的網站 <url url="http://www.netscape.com/download/">。該站有選單,帶你完成選擇。它會問你 你的Linux版本為何,這時你要用核心系統的版本來回答﹝現在大部份人都用2.0版﹞。如果你不確 定你的Linux版本為何,可用指令'cat /proc/version'來查你的版本。此站為唯一取得內銷版的網站。 如果你要外銷版,可從Netscape FTP伺服器下載。這些FTP站還更新的很快。例如說,我初寫此 文件,其中還沒有Linux的non-beta 4.03版,現在已經在站上了。下列為連到支援Linux 2.0及 2.2的網址: Netscape Navigator 4.6.1在 <url url="ftp://ftp.netscape.com/pub/communicator/4.6/shipping/english/unix/linux20/navigator_standalone/navigator-v403-export.x86-unknown-linux2.0.tar.gz">。 Netscape Communicator 4.6.1 for Linux 2.0 (kernel)在 <url url="ftp://ftp.netscape.com/pub/communicator/4.6/shipping/english/unix/linux20/base_install/communicator-v403-export.x86-unknown-linux2.0.tar.gz">。 但有新版本時,他們的URL可能會更改。如果你連不上,可試試下列的FTP站: <url url="ftp://ftp.netscape.com/pub/communicator/">。 這些站有時會塞車。最好挑非尖端時間或映射台來下載。而且還要有長期抗戰的心理準備,因 為文件庫﹝Archieve﹞都不小。Navigator幾乎有8 megs,Communicator 基本安裝有10 megs。 <sect1>安裝 <p> 本節說明如何安裝 Netscape Navigator Communicator 及 Communicator Pro。 首先,在暫用的目錄中打開﹝unpack﹞文件庫﹝Archieve﹞,執行 <tt/ns-install/ script (type <tt>./ns-install</tt>),然後設定連結,連接 <tt>/usr/local/netscape/netscape</tt>到<tt>/usr/local/bin/netscape</tt> (type <tt>ln -s /usr/local/netscape/netscape /usr/local/bin/netscape</tt>)。 最後設定系統環境變數,將<tt>$MOZILLA_HOME</tt>改為 <tt>/usr/local/netscape</tt>,讓Netscape可以找到自己的檔案。如果你用bash為你的 shell,還要編輯<tt>/etc/profile</tt>並加入: <tscreen><verb> MOZILLA_HOME="/usr/local/netscape" export MOZILLA_HOME </verb></tscreen> 一旦安裝完畢,他們就可以開始用智慧更新功能來作陸續更新了。用法是,打開Netscape 到'help'→'software updates',即可開始更新。 即使只安裝了基本安裝版,你還可以從它去安 裝其他元件。 註:上述步驟並不能移除舊版Netscape,你要用手動方式 移除Netscape(version 3)的執行檔及 其Java class檔。 <!-- WWW - SERVER SECTION ======================================== --> <sect>設定全球資訊網伺服器 <p> 本章節含蓋不同http伺服器軟體套件,及一些伺服器工具﹝例如一些CGI的script語言﹞。現在 市面上有幾十種網路伺服器,但本文只含蓋其中一些功能完整的伺服器。另外,也因為有些是商 用產品,我無法一一試用。文中大部份資料是用一些網頁的內容拼拼湊湊出來的,如有錯誤,在所難 免。尚請惠於賜教。 如要瞭解http的機制,請參考「後續」一章中的參考文件。 我個人較愛用Apache伺服器。它的功能完整而且是自由軟體!不好意思。本文事實上傾向Apache。 所以我集中火力在Apache上,而不是依章節介紹各種伺服器。以後,我可能會把其他伺服器納入 文中。 <!-- Overview =============================== --> <sect1>概述 <p> <descrip> <tag/Cern httpd/ Cern httpd是世上最早的全球資訊網伺服器。由European Laboratory for Particle Physics ﹝CERN﹞發展。現在已沒人維護了。據說它有許多嚴重的臭蟲,很慢而且浪費系統資源。相關 細節參考<url url="http://www.w3.org/Daemon/Status.html">, 也可從<url url="ftp://sunsite.unc.edu/pub/Linux/apps/www/servers/httpd-3.0.term.tpz">下載。 (no it is not a typo, the extension is actually .tpz on the site; probably should be .tgz) <tag/NCSA HTTPd/ NCSA Httpd 是Apache之父﹝它後來發展成兩種不同伺服器﹞。所以設定檔和Apache極為神似。NCSA Httpd是自由軟體,原始檔案也可取得。雖然你可以從閱讀Apache得到相關知識,但本文並不細 述這一個伺服器。NCSA曾經風行一陣子,但愛用者大都已轉向Apache了。Apache改善了NCSA伺 服器的一些缺點﹝它們的Configuration files 相同﹞,NCSA Httpd變成只佔有4.9%的伺服 器用戶﹝資料來源1997年9月 <url url="http://www.netcraft.com/survey/" name="Netcraft survey">﹞。相關細節,參 考<url url="http://hoohoo.ncsa.uiuc.edu">。 <tag><ref id="apache" name="Apache"></tag> Apache為伺服器之王。 Apache 含原始檔都是自由軟體。Apache是以模組化設計,所以新功能 很容易加入,極有彈性,而且有許多的功能,各種系統的用戶佔有率達55%。世上已有3,928,112 個Apache伺服器在運作﹝資料來源1999年8月 <url url="http://www.netcraft.com/survey/" name="Netcraft survey">﹞。正式 Apache漏掉了SSL,但有兩個系統補了這個漏洞。Stronghold是Apache支系中的商品。零售價 $995元;經濟型$495元。﹝經濟型延用Apache舊版﹞。它是僅次於Netscape的 保全伺服器。﹝資料來源 <url url="http://www.c2.net/products/stronghold" name="C2 net"> 及 <url url="http://www.netcraft.com/survey/" name="Netcraft survey">﹞。 相關細節參考<url url="http://www.c2.net/products/stronghold/">。因為它 是在美國國外開發的,所以在全球都具有128 bit SSL。 Apache-SSL實現SSL為一自由軟體,但在美國不可使用在商業用途﹝RSA在美國擁有SSL科技的專 利﹞。如果連接free RSAREE library,可在美國利用在非商業用途上。 相關細節參考<url url="http://www.algroup.co.uk/Apache-SSL/">。 <tag/Netscape Fast Track Server/ Fast Track由Netscape開發,Linux版本在Caldera站上公開。該站說 Fast Track'用於'OpenLinux。 不知道是說它只能在Caldera OpenLinux上執行,還是說也能在其他Linux版本上執行﹝如果你知 道的話,請E-mail告訴我﹞。 Netscape伺服器用戶佔有率為6.11%﹝資料來源1999年8月 <url url="http://www.netcraft.com/survey/">﹞。售價295元。搭配成 Caldera OpenLinux Standard distribution 售價$399元﹝教育用價格$199.50元﹞。該網站聲稱,具有 優良系統管理介面,可在十分鐘內安裝設定完成。可支援40-bit SSL,但是如果要完整128-bit SSL 功能,就須購買Netscape Enterprise Server。不幸的很,這一版本尚不支援Linux﹝支援Linux的 最新版本為2.0版。3.0版有beta版,但尚不支援Linux ﹞。 購買網路版到<url url="http://www.caldera.com/products/netscape/netscape.html">。 相關細節參考<url url="http://www.netscape.com/comprod/server_central/product/fast_track/">。 <tag/WN/ WN有許多吸引人的特色。第一,它比CERN、 NCSA Httpd及 Apache小。它還有一些支援CGI的 內建功能。它還能運用它的filter功能,快速壓縮/解壓縮檔案。它還可以抽取壓縮檔中的部份 項目。它經由GNU public license 開放使用。最新版本為2.08版。相關細節參考 <url url="http://hopf.math.nwu.edu/">。 <tag/AOLserver/ AOL server由美國線上﹝America Online﹞所開發。我不得不承認,美國線上設計的伺服器 的功能的確很驚人。除了支援一些標準功能外,這個伺服器還支援資料庫連接。它允許首頁以 SQL﹝Structured Query Language﹞指令查詢資料庫。可用ODBC﹝Open Database Connectivity﹞ 存取資料庫。另外還有內建式搜尋引擎及TCL scripting。如果還不夠用,你可以用C語言的API ﹝Application Programming Interface﹞加入個人設計模組。還有!還能支援40-bit SSL。 這些功能都屬於一個自由軟體。 相關細節參考<url url="http://www.aolserver.com/server/">。 <tag/CL-HTTP/ CL-HTTP就是Common Lisp Hypermedia Server。如果你是Lisp程式設計師,你要的伺服器 就是這一個了。你可以用Lisp寫CGI script。CL-HTTP還提供以網站為主的設定功能,並且支 援所有的標準。它是個自由軟體,原始程式也可取得。 相關細節參考<url url="http://www.ai.mit.edu/projects/iiip/doc/cl-http/home-page.html">。 </descrip> 如果你是為商業目的架設網站,我建議你使用Apache,也有人建議Netscape,因為它較易於 設定。如果你的網站只是對內的話,它讓你的網站比較有彈性。除非你的需求只能由其他伺 服器來滿足,不然•••﹝原文疏漏﹞。 以上只敘述部份伺服器,如果你要完整項目,可查詢Netcraft的網站: <url url="http://www.netcraft.com/survey/servers.html"> or Web Compare at <url url="http://webcompare.internet.com">. <!-- Apache httpd ============================= --> <sect>Apache<label id="apache"> <p> Apache最新版本為1.3.9。它的主要網站為<url url="http://www.apache.org/">。 Apacheweek也有不錯的資料網站為:<url url="http://www.apacheweek.com/">。 Apache的文件還好啦!所以我不必再多加細述如何設定Apache。他們在網站上,也跟 原始程式在一起﹝HTML格式﹞。雖然也有一般文字檔格式,但以HTML格式較佳。等 到Apache Documentation Project完成後,它應該會更好。但現在大部份的文件 都由他們的開發者自行撰寫。我並不是要批評他們,但是如果不瞭解其中的術語, 還真不瞭解這些文件。 <sect1>如何取得 <p> RedHat 、 Slackware 及 OpenLinux中即已經有 Apache。版本可能不是最新的,但 二位元檔絕對可靠。不幸的是,各種版本都使用不同的目錄。 原始程式可從<url url="http://www.apache.org/dist/">取得。二位元檔可從 <url url="ftp://sunsite.unc.edu/pub/Linux/apps/www/servers/">取得。使用 RedHat的人還可以從<url url="ftp://ftp.redhat.com/pub/contrib/i386/">取得RPM檔。 如果你的伺服器是用於商業用途,最好是從Apache的網頁下載原始程式自行編譯。也 可以使用如 RedHat、 Slackware或 OpenLinux本來就附帶的二位元檔。如果你用其他執 行檔,其中可能會有駭客偷加的'後門'。也可能因為一些patch不夠安定,而造成當機。 如果自行編譯,你還可以掌握實際編譯進去的模組,你也可以決定要放在那一個目錄中。 編譯並不難,而且從編譯的過程中,你還能學到如何成為真正的Linux使用者;) <sect1>編譯及安裝 <p> 首先將文件庫打開﹝untar﹞。放入一暫存目錄中,然後到src目錄。如要加入特殊模組, 就在此修改configuration檔案﹝平常主要的模組已經加入了﹞。然後執行此configuration shell script(<tt>./Configure</tt>)。須確定它正確敘述你是在用Linux平台,而且以 gcc為編譯器。接下來,你可以修改http.h來改變預設的目錄﹝放config檔﹞預設為 <tt>/usr/local/etc/httpd/</tt>,你可能會考慮簡化為<tt>/etc/httpd/</tt>。伺服器 的根目錄﹝放HTML首頁﹞預設為<tt>/usr/local/etc/httpd/htdocs/</tt>,你也可能考 慮改為<tt>/home/httpd/html</tt>﹝這個是RedHat的預設目錄﹞。如果你要使用su-exec 目錄﹝參考後述的各項功能細說﹞,你也可以考慮簡化之。伺服器的預設根目錄還可以用 config檔來更改。如果Apache無法讀到config檔時,還是在http.h中定義編譯後的根目錄 位置吧。其他的的預設目錄都必須用config檔案來修改。最後,在此執行make檔來編譯 Apache。 如果因為遺漏include檔案,而在編譯時出問題,下面這些項目值得檢查一下:確定已安裝 了適合你的核心系統版本的Kernel header﹝即include檔案﹞。並檢查下述的連結是正確的, <tscreen><verb> /usr/include/linux should be a link to /usr/src/linux/include/linux /usr/include/asm should be a link to /usr/src/linux/include/asm /usr/src/linux should be a link to the Linux source directory (ex.linux-2.0.30) </verb></tscreen> 要連結檔案可用<tt>ln -s</tt>指令。這和cp指令相類似,只是它連結而不是複製 ﹝<tt>ln -s source-dir destination-link</tt>﹞。 如果在執行make時沒有問題,現在的目錄中應有個叫httpd的執行檔。把它移到bin目錄中。 <tt>/usr/sbin</tt>或<tt>/usr/local/sbin</tt>都可。 另外將conf.、logs及 icons三個次目錄從src目錄複製到伺服器的home目錄。然後將conf次 目錄中的三個檔案名稱修改一下,拿掉其中的<tt>-dist</tt>,﹝例:將 <tt>httpd.conf-dist</tt>改成<tt>/usr/local/sbin</tt>﹞。 Apache中還有些支援程式。他們都在<tt/support/目錄中,都要各別編譯並安裝。大部份這 些程式都可用該目錄﹝你執行<tt/configure/ script時,已編譯好了﹞中的makefile來編譯。 你使用Apache時,並不一定要用到這些程式,但其中有些可以簡化系統管理員的工作。 <sect1>設定 <p> 此時在<tt/conf/次目錄中,你應該會有四個檔案。其中,<tt/httpd.conf/用來設定伺服器 守護神﹝port號碼、使用者等••﹞。<tt/srm.conf/用來設定root documen tree、 special handle等。而<tt/access.conf/用來設定基本存取。最後,<tt/mine.types/用來告 訴伺服器,那一個延伸檔案名代表送給瀏覽器那一種mine型式。 一旦瞭解其中怪術語,你就會發現這些設定檔中有許多附帶說明。在你啟用伺服器之前,徹 徹底底得讀它一遍。其中的每一個項目在Apache文件中都有說明。 <tt/mine.types/檔案並不是真正的設定檔。伺服器在送資料給瀏覽器之前,將延伸檔案名譯 為mine型式。一般的 mine型式都已在此檔案中了,大多情況下不須修改此一檔案。未來一些 日子以後,有一些新的mine型式開發出來以後,此時才真正要修改這一檔案。 記著一點!每當你改變了設定檔,就須重新啟動Apache。不然也要用<tt/kill/送一個SIGNUP 訊號,來啟動新的設定。這個訊號是要送到父程式而不是子程式。要查出父程式的代號有些 方法,父程式的代號一般較小。父程式的代號也可從log次目錄的<tt/httpd.pid/檔案中查到。 而且如果你送<tt/kill/給子程式,子程式死了,而父程式又會立刻產生一個子程式。 我不想帶著你一步一步地去設定Apache。我想針對一些特殊的案例、選項及功能加以說明。 強烈建議好好讀一讀Apache文件中的保全訣竅。它可以從 <url url="http://www.apache.org/docs/mics/security_tips.html">下載。 <sect1>建立虛擬網站主機 <p> 虛擬主機用於一台電腦擁有數個網域名稱的情況。老的方法是給每一虛擬主機一個專用的 IP位址。新的方法只用一個共用的IP位址,但是如果瀏覽器不支援HTTP 1.1則沒有用。 我建議,如果是用在商業上,先用老方法,直到人人的瀏覽器都支援HTTP 1.1時,再改用 新方法。而且老方法的說明也較多。兩種方法都有虛擬mail功能﹝這對嗎?﹞,但只有老 方法才有虛擬FTP功能。 如果用在小組織或個人網頁,你可考慮新的方法。它可以省去你昂貴的IP位址。 你還可以在同一伺服器混合兩種方法。相關細節參考Apacheweek: <url url="http://www.apacheweek.com/features/vhost">。 <sect2>專用IP位址﹝IP based﹞虛擬主機 <p> 以此一方法,每一虛擬主機各有一個IP位址。使用每一請求﹝request﹞所送往之IP位址 ,Apache及其他程式,決定要用那一個網域來完成服務。這個步驟非常浪費IP空間。以 我的虛擬網域所在的伺服器來舉例,他們都有35,000個虛擬帳號,也就是35,000個IP位址 ,但我相信只有不到50個伺服器是真正在運作。 設定這種虛擬主機有兩大步驟,第一是設定Linux,使它能接受兩個以上的IP位址。其次 ,是設定Apache使它支援虛擬主機功能。 第一步驟,設定Linux,使它接受數個IP位址,這要建立一個新的核心系統,就是使它支 援IP networking 及IP aliasing。﹝在2.0版及其後的版本,這步驟較容易﹞。編譯核 心的說明,參考 <url name="kernel howto" url="http://sunsite.unc.edu/LDP/HOWTO/Kernel-HOWTO.html">。 第二步驟,要設定開機程序中的介面。如果你用的是Red Hat,可用控制台來設定。用 root打開X-Windows,你應該可以看到控制台。雙擎Network configuration,點選 interface panel並選擇你的Network card。點選底下的alias,填入資料,然後點選done。 每一虛擬主機都要一一設定。 如果你不是用Red Hat,你就要用手動方式來設定,在<tt>/etc/rc.d</tt>目錄中的 <tt/rc.local/檔案中加入指令。每一設施都要有個<tt/ifconfig/及<tt/route/指令。 同名設施為一主要設施的次設施。例如:eth0:1 、eth0:2等。下述為設定一同名設施的 例子: <tscreen><verb> ifconfig eth0:0 192.168.1.57 route add -host 192.168.1.57 dev eth0:0 </verb></tscreen> 還可以在ifconfig命令中加入broadcast address及netmask。如果有許多同名地址,可以用 for loop來簡化命令檔。 相關細節參考 <url name="IP alias mini howto" url="http://sunsite.unc.edu/LDP/HOWTO/mini/IP-Alias.html">。 接下來就是設定網域名稱伺服器﹝DNS﹞來查詢這些新的網域。如果你沒有你的網域名稱 ,可到<url name="Internic" url="http://www.internic.net">註冊。可參考DNS-HOWTO來 設定你的DNS。 最後要設定Apache來讓這些虛擬網域正常工作。使用<tt/httpd.conf/設定檔。其中有個例 子,可以參考。所有的指令都放在<tt/virtualhost/指令標簽之內,任何指令都可放入。一 般來說,要設定各別的根目錄,script目錄及log檔案目錄,只要加入<tt/virtualhost/標簽 ,就可以不斷加入新的虛擬主機。 在一些極特殊的情況下,如果某一個虛擬主機需要使用某一指令,但不幸它又不能放入虛 擬主機的標簽中,那就只好使用不同伺服器。Bindaddress指令即為一例。每一個伺服器都 要有不同的名稱及設定檔。每一伺服器只負責一個由Bindaddress指令所指定的位址。結果 系統資源就被大大的浪費掉了。 <sect2>共用IP位址虛擬主機 <p> 此為建立虛擬主機的新方法。單一IP位址被採用,因而IP位址是用在真實機器上﹝而非虛 擬主機﹞。在上述例子中,30,000個虛擬主機只會用掉50個IP位址﹝每台機器一個﹞。這 要搭配HTTP1.1協議,瀏覽器在送出請求時,通知伺服器它要接到那個網站。如果瀏覽器 無法支援HTTP1.1,就會去讀伺服器的首頁,其中應有選單供選擇要使用的虛擬主機。這樣 子,原來你以為你擁有自己的伺服器的那種感覺,就會被破壞了。 設定步驟比固定IP位址的方式容易。你仍然要從Intenic註冊你的網域名稱,然後設定網 域名稱伺服器。但是網域名稱伺服器卻是要指到原來網域名稱的IP位址。Apache的設定方 式仍然不變。因為你在virtualhost標簽內使用相同IP位址,Apache就知道你的虛擬主機 要共用IP位址。 針對老式的瀏覽器則有幾種調整工作要做,我只介紹其中最佳者。首先須將你的首頁目錄 設為一個虛擬主機﹝固定IP或共用IP位址﹞。這樣子你的首頁目錄就可以騰出來用於連接 到各個虛擬主機上去。然後就是為老式瀏覽器開一個'後門'。作法是用<tt/ServerPath/ 指令,為每一個<tt/virtualhost/標簽內的虛擬主機定義路徑。例如,在www.mysite.com 中加一個<tt>ServerPath /mysite/</tt>,老的瀏覽器就可以用www.mysite.com/mysite/ 存取該主機的資料。然後在首頁目錄放入一預設首頁,其中好好地勸使用者改用新的瀏覽 器,並且條列該主機上各個網站的'後門'。如此一旦一個老式瀏覽器讀到此站,就會顯 示一個首頁,告知如何連到正確的網頁。而新式瀏覽器則可直接連到正確的網頁。還要注 意一件事,即你的首頁中的連結必須定義清楚。因為每一頁都可以以兩個不同的URL來連結 ﹝例如:www.mysite.com和www.mysite.com/mysite/﹞。 希望到此為止,你還能保持頭腦清晰,終究上述的內容並不容易搞清楚。搞不好,你最後 還是決定使用專用IP位址。 相關資料可以從Apache網站取得<url url="http://www.apache.org/manual/host.html">。 如果有人有關於共用IP位址的資料,請告訴我。我想知道到底有多少瀏覽器可支援 HTTP 1.1。如有一份清單列出他們的版本就更好。 <sect1>CGI scripts <p> 有兩種方式讓你的網站用戶運用CGI script功能。第一種方式是,只要是CGI script,其 延伸檔名即為<tt/.cgi/。另一種方式是建立一script次目錄﹝通常叫<tt/cgi-bin/﹞。 兩種方式也可並用。不論使用那一種方式,你的script必須設成可執行模式 ﹝<tt/chmod 711/﹞。但是讓用戶使用script存取可能會有保全的風險,所以先要細心的 研究。 我個人比較喜歡使用第一種方式,尤其是當script很複雜時。這種方式允許把script放在 任何目錄中。我個人喜愛將script放入相關首頁目錄中。如果一個網站有許許多多的script ,那麼將他們分散安置比集中在一個目錄中要容易看得多了。而且設定也比較簡單。首先 在<tt/srm.conf/檔後面開啟﹝uncomment﹞<tt/.cgi/標式,然後檢查是否每一目錄的 <tt/access.conf/檔中都有<tt/option ExecCGI/或<tt/All/。 建立script次目錄則較為保全。作法是在<tt/srm.conf/檔中使用scriptAlias指令。第一 個參數是代名﹝Alias﹞,第二個參數是真實目錄。例如指令 <tt>ScriptAlias /cgi-bin/ /usr/httpd/cgi-bin/</tt>定義: 當呼叫目錄<tt>/cgi-bin/</tt>時,真正的script是在<tt>/usr/httpd/cgi-bin/</tt>中執行。 為了保全的理由,在<tt/access.conf/檔中設定該目錄的特性為 <tt>Options none,AllowOveride none</tt>﹝只要開啟﹝uncomment﹞該行即可﹞。但要注意 ,不要把它設為任何首頁的次目錄。例如說,如果你的首頁目錄為 <tt>/home/httpd/html/</tt>,不要設為<tt>/home/httpd/html/cgi-bin</tt>,但可以設為 <tt>/home/httpd/cgi-bin</tt>。 如果要允許用戶有自己的script次目錄,可以使用數個<tt/ScriptAlias/命令。如果使用虛 擬主機,則在<tt/virtualhost/標簽內放入<tt/ScriptAlias/命令。有人可以告訴我不須要 一一加入ScriptAlias命令的方法嗎? <sect1>使用者網頁目錄 <p> 有兩種不同方式來設定使用者的網頁目錄。第一個方法是在使用者的網頁目錄下建立一個 個別的次目錄。﹝一般為<tt/public_html/﹞。第二個方法是,另外為每一個網頁目錄建 立一個目錄樹,兩種方法都須在<tt/access.conf/檔中設定存取選項。 第一個方法是Apache預設的方式。這種方法是,當要讀<tt>/~bob/</tt>的網頁,Apache讀 <tt/public_html/目錄中bob的首頁目錄。作法是在<tt/srm.conf/檔中用<tt/UserDir/指令 來設定。該目錄必須是world可讀取及world可執行。因為要Apache來讀取使用者的目錄,該 目錄必須為world可執行,所以會產生一些保全的風險。 第二種方法則較容易設定。只有<tt>srm.conf</tt>檔中的<tt>UserDir</tt>指令需要被 修改。格式有很多種,請參考Apache的文件,弄清楚各種定義。如果想讓每ㄧ使用者在目 錄<tt>/home/httpd/</tt>下,有自己的目錄,就要使用指令<tt>UserDir /home/httpd</tt>。 那麼當<tt>/~bob/</tt>被讀取時,讀取的目錄就會變為<tt>/home/httpd/bob/</tt>。若 是要讓bob的目錄下另加一個次目錄做為他的首頁目錄,就用 <tt>UserDir /home/httpd/*/html</tt>指令。讀取的目錄就變成 <tt>/home/httpd/bob/html/</tt>,同時也建立一個script目錄﹝例如: <tt>/home/httpd/bob/cgi-bin/</tt>﹞。 <sect1>Daemon模式與Inetd模式 <p> Apache可在下述兩種模式下運作。其一為daemon模式,在這個模式下Apache不停運作﹝ Apache稱之為 standalong﹞。另一為inetd super-server。 daemon模式比inetd模式好。Apache以它為預設模式。使用inetd模式的唯一情況是,當使用 率很低時,例如內部測試script、小型企業的區域網路等•••。Inetd模式可節省記憶體 空間,因為Apache只有當必要時才開啟,平常記憶體中只有inetd daemon。 如果你不常使用Apache,可以考慮讓它維持在daemon模式,而且只有必要時才啟動Apache。 那麼你不再需要時,可以殺掉Apache﹝要殺的是父程式序而不是子程序﹞。 要設定Inetd模式,有一些檔要修改。首先查一下<tt>/etc/services</tt>檔案,看一看 http是否存在,如果不在,則以下列方式加入 <tscreen><verb> http 80/tcp </verb></tscreen> 在Port 79 ﹝finger﹞的後面也許值得考慮。然後修改<tt>/etc/inetd.conf</tt>檔案, 加入 <tscreen><verb> http stream tcp nowait root /usr/sbin/httpd httpd </verb></tscreen> 如果Apache在不同位置,路徑要隨Apache的目錄來改變。第二個http不是typo,它只是 inetd daemon的需求。如果你不再使用inetd daemon,那就把檔案中你不想啟動的服務改為 註解行﹝像FTP、 finger、 telnet及其他常用於inetd daemon的服務項目﹞。 如果你在用inetd daemon,只要給它一個SIGHUP訊號﹝用kill命令,參考kill的man page﹞ 或重新啟動系統讓修改項目生效。如果<tt>inetd</tt>不在使用,可以以手動方式啟動的。 也可以加在init檔案﹝也許是<tt/rc.local/檔﹞中,使得開機時Inetd自動啟動。 <sect1>開放Put及delete命令 <p> 新的網頁發行工具支援以http上載網頁﹝而不限於用FTP﹞。其中有的甚至還不支援FTP 上載。Apache也支援http上載,但所要用的script則沒有包含,因而上載所用的script 可能成為保全的大漏洞。在寫或用別人的script前,請先搞清楚狀況。 如果有人知道任何此類的script,請告訴我。我會把它的網址納入。 相關細節參考 Apacheweek <url url="http://www.apacheweek.com/features/put">。 <sect1>使用Authentication/Access Control <p> 這是我最喜愛的一個功能。它讓你不須要用到CGI script就可以保護目錄或檔案。它還 可以依據用戶的IP位址或網域名稱來決定用戶的存取權。這是一種把不速之客剔出用戶名 單的好方法﹝只要從log檔案查出它們的IP位址及網域名稱即可﹞。 要設定 Authentication,目錄中<tt/access.conf/檔案中必須要有 <tt>AllowOverrides Authconfig</tt>。而設定access control﹝使用網域名稱或IP 位址﹞,則加入AllowOverrides Limit。 設定目錄,就要在其中放入<tt/.htaccess/檔案。要設定使用者的Authentication, 要用到<tt/.htpasswd/檔或外帶一<tt/.htgroup/檔。這兩個檔還可由數個 <tt/.htaccess/檔共用。 為了保全的理由,我個人建議,每個使用者都在他們的access.conf檔使用下述指令: <tscreen><verb> <files ~ "/\.ht"> order deny,allow deny from all </files> </verb></tscreen> 如果你不是系統管理員,但你的目錄已經設為AllowOverride Limit,你仍然可以在 你的 .htaccess檔案中加入這些指令。他們可以防止別人偷窺你的access control 檔案﹝.htaccess 、.htpasswd等﹞。 Access control可運用在許多不同的選項及檔案型式。這已超出本文的範疇。設定使用 者 Authentication的資訊,請參考 <url url="http://www.apacheweek.com/features/userauth">,或NCSA的網頁 at <url url="http://hoohoo.ncsa.uiuc.edu/docs-1.5/tutorials/user.html">。 <sect1>su-exec <p> su-exec功能能以owner的地位執行CGI script。平常都以網頁伺服器﹝不是一般的人﹞ 的地位來執行CGI script。因此,使用者不須將他們的CGI script的存取模式設為world writable﹝這是一個漏洞﹞。但是如果不熟悉su-exec,你可能會搞出更大的漏洞。平常 su-exec在執行前會作保全檢查,但如果設定錯誤,反而產生保全的漏洞。 su-exec不是設計給外行人用的。如果沒有搞清楚,最好不要用,不然你搞出來的漏洞 可以讓使用者具備root存取能力。無論如何不要修改程式,要讀通所有相關文件。 su-exec那麼難設定,是故意設計出來讓外行人知難而退﹝全部手動操作,沒有make檔 ,也沒有安裝script﹞。 su-exec是放在<tt/support/目錄中。首先要為系統修改<tt/suexec.h/檔,然後用下面的 命令編譯su-exec程式 <tscreen><verb> gcc suexec.c -o suexec </verb></tscreen> 然後將su-exec的可執行檔複製到適當的目錄。Apache的預設目錄為 <tt>/usr/local/etc/httpd/sbin/</tt>。如要改變預設目錄,可修改Apache原始程式中 的<tt/httph/,在重新編譯Apache。Apache只會搜尋該目錄,而不會搜尋路徑。另外要 把su-exec的使用者改為root(<tt/chown root suexec/),並且設定suid bit (<tt/chmod 4711 suexec/)。最後重新啟動Apache。此時Apache應該會在螢幕上顯示 su-exec正在運作。 CGI script仍要設為world executable。他們可以以CGI script owner的身份執行。如果 設定他們的SUID﹝set user id﹞bit,則不會執行。如果他們的目錄為world或 group writable,也不會執行。如果owner為system user ﹝root、bin等﹞也不會執行。 相關保全狀況,參考su-exec的文件。如果還有問題,檢查su-exec的log檔<tt/cgi.log/。 在Apache的inetd模式,su-exec不運作,只有在daemon模式才運作。下一版可能會改善 ,因為inetd模式不會再用到了。要玩原始程式的話,就修改http.main.c。你可以刪除 其中使用su-exec wrapper的Apache宣告﹝它在每個輸出之前居然都印一次﹞。 好好讀一下Apache有關su-exec的文件。他們和su-exec的原始程式都在Apache網站中 <url url="http://www.apache.org/docs/suexec.html">。 <sect1>Imagemaps <p> Apache能用來處理伺服器端imagemaps。Imagemaps是網站上的圖形,使用者點選圖形中 某個位置,可以用來決定要連結到那�堨h。要啟動imagemaps,先確定imagemap模式是否 已安裝﹝它是預設要安裝的一個模式﹞。然後將<tt/srm.conf/檔中的<tt/.map/ 標記 開啟﹝uncomment﹞。此時所有以<tt/.map/結尾的檔案都變成了imagemap檔案。 Imagemap檔用一個圖形的各個位置連結到不同的網頁。Apache以標準NCSA格式使用投影 ﹝map﹞檔。下述為投影檔的一例: <tscreen><verb> <a href="/map/mapfile.map"> <img src="picture.gif" ISMAP> </a> </verb></tscreen> 例中,<tt/mapfile.map/即為投影檔。而<tt/picture.gif/為點選用的圖形。 有很多程式可用來產生能與NCSA投影檔共存的檔案,你也可以自己編寫一支。相關細 節請參考:Apacheweek <url url="http://www.apacheweek.com/features/imagemaps">。 <sect1>SSI/XSSI <p> 伺服器端加入﹝SSI﹞可在靜態的網頁中以動態方式加入某些內容。要加入的項目在 網頁中以說明﹝comment﹞的方式表示。伺服器先解析這些項目,然後將所要的內容 加入。SSI可在檔案中加入header及footer,也可以加入最後修改日期,也可執行系 統命令或CGI script。如果使用延伸型伺服端加入 ﹝XSSI; eXtended Server Side Includes﹞,可做的就更多了。它可 加入變數及流程控制﹝如if、else等﹞。這簡直就像一個在使用一個程式語言。 如要對每一個HTML檔都加以解析,會消費太多系統資源。所以要有個方法使那些有SSI 項目的檔案看來不一樣。一般的作法是,把這些HTML的延伸檔名改為<tt/.stml/。 要啟用SSI/XSSI,首先確認是否該功能的模式已經安裝。然後就可修改<tt/srm.conf/ 檔,為<tt/.shml/型式的<tt/AddType/及<tt/AddHandler/開啟﹝uncomment﹞。最後 用<tt/Options Includes/來定義那些目錄下SSI/XSSI檔可運行。這一步驟是在 <tt/access.conf/檔中。那麼所有具<tt/.shtml/延伸檔名的檔案都會被解析執行 SSI/XSSI。 另一種在網頁中加入內容的方式是使用<tt/XBitHack/指令。這個指令一開啟,它會 檢查該檔案是否為user exectable。如果是,而且該目錄用<tt/Options Includes/開 啟的話,該檔案就被視為SSI檔案。但這種方式只對mime 型式的text/html ﹝<tt/.html .htm/檔案﹞有效。所以不是最好的方法。 用SSI來執行系統命令及CGI script,會導致一些保全的風險。所以在 <tt/access.conf/檔中最好使用<tt/Option IncludesNOEXEC/而不要用Option Includes。 其他SSI命令則不須修改。 相關細節參考原始程式附帶的Apache mod-includes文件。 可以從<url url="http://www.apache.org/docs/mod/mod_include.html">取得。 SSI/XSSI實現的相關細節參考Apacheweek <url url="http://www.apacheweek.com/features/ssi">. 有關SSI命令的資訊,參考NCSA文件 <url url="http://hoohoo.ncsa.uiuc.edu/docs/tutorials/includes.html">。 而有關XSSI命令的資訊,參考 <url url="ftp://pageplus.com/pub/hsf/xssi/xssi-1.1.html">。 <sect1>模組系統 <p> Apache可用模組的方式加入任何東西。現在已有的模組很多,但只有一般常用的模組 附帶在Apache套件中。 要查查看還有那些模組,請參考Apache模組寶庫 <url url="http://www.zyzzyva.com/module_registry/">。 而有關模組化設計的資訊,參考 <url url="http://www.zyzzyva.com/module_registry/reference/">。 <!-- Web Server Add-ons ======================= --> <sect>伺服器另集 <p> 抱歉!本章還沒有寫。 我們將討論:mSQL、 PHP/FI、 cgiwrap、 Fast-cgi、 MS frontpage extentions... <!-- WWW常見問題集 ======================================== --> <sect>區域網路﹝Intranet﹞ <p> <p> <BF>區域網路</BF>從字面上來看,是在公司或組織範疇內使用網際網路的技術,而不是用於全球性 的網際網路上。運用此一技術,可以使用最少經費、最短時間及最少操作,將大量資訊送 達各個員工。本文件簡介如何用現有的廉價工具或自由軟體來設定區域網路。 <p> 我們假設你已經知怎樣把Linux用Ethernet卡連上LAN並安裝上TCP/IP。也假設你已有Netware、WinNT 及Mac各系統的基本常識。Netware伺服器的設定步驟是以3.1x版為準。你可以用INETCFG來完成。而 提到用戶端時,假設你是在使用windows 3.1x、 Windows for Workgroup 、 Win95、 WinNT或 Apple PowerPC。 <P> 文中的私人網路地址﹝RFC-1918﹞是以172.16.0.0及172.17.0.0來舉例。你可以選擇適合於你的設定地址。 <quote><verb> Linux Netware WFWG/WinNT Server Server Server 172.16.0.1 172.16.0.2 172.16.0.3 | | | 172.16.0.0 ------+-----+-----+--------+--+-------------- | | 172.16.0.254 W/S 1 Router 172.16.0.5 | 172.17.0.254 | ----------+-------+-------- 172.17.0.0 | W/S 2 172.17.0.5 </verb></quote> <sect1>基本需求 <p> 安裝前要有下列各項軟體: <itemize> <item>HTTP伺服器軟體可從OneStep NCSA HTTPd <htmlurl url="http://hoohoo.ncsa.uiuc.edu/docs/setup/OneStep.html" name="http://hoohoo.ncsa.uiuc.edu/docs/setup/OneStep.html">下載。 <item>HTTP伺服器軟體可從OneStep NCSA HTTPd <htmlurl url="HTTP://support.novell.com/" name="HTTP://support.novell.com/"> (The TCP/IP files are included with the client)下載。 <item>The Microsoft TCP/IP client 可從 <htmlurl url="HTTP://www.microsoft.com/" name="HTTP://www.microsoft.com/">下載。 <item>The Apple MacTCP client可從 <htmlurl url="HTTP://www.apple.com/" name="HTTP://www.apple.com/">下載。 <item>瀏覽器如 Netscape 可從 <htmlurl url="HTTP://home.netscape.com/" name="HTTP://home.netscape.com/"> or MS Internet Explorer at <htmlurl url="HTTP://www.microsoft.com/" name="HTTP://www.microsoft.com/"> or NCSA Mosaic from <htmlurl url="http://www.ncsa.uiuc.edu/SDG/Software/Mosaic/NCSAMosaicHome.html" name="http://www.ncsa.uiuc.edu/SDG/Software/Mosaic/NCSAMosaicHome.html">下載。 </itemize> <sect1>本文件的更新版本 <p> Linux Intranet Server HOWTO的更新版本會不定期在comp.os.linux.annonuce及 comp.os.linux.help中貼出。也會上載到包括sunsite.unc.edu的Linux FTP 網站。 <p> 本文件的最新版本是HTML格式,可從 <htmlurl url="http://www.linuxports.com/" name="http://www.linuxports.com/">取得。 <sect1>讀者意見反映 <p> 如對本文有任何疑問或意見,請來信給Mr.Poot,來信件地址為<htmlurl url="mailto:poet@linuxports.com" name="poet@linuxports.com">。建議、批評都很歡迎。如果發現文中有錯誤,請予告知, 那麼我就可以在下一版中更正。謝謝! <sect>安裝HTTP伺服器 <p> 下載了伺服器時,你有兩個選擇:第一則是下載原始程式,自行編譯。另一則是直接下 載已編譯好的二位元檔。已編譯好的二位元檔在NCSA網站,適於Linux﹝ELF﹞版,而不適 用於舊版。 <sect1>下載前準備工作 <p> NCSA的伺服器會帶著你一步一步去完成設定選項,並為你準備各種檔案。但在下載之前, 請準備好回答下列問題的答案。 <sect2>操作系統 <p> 首先,你要選擇所要下載的原始程式,或來下載已經編好的版本。如果你的操作系統不在 列出系統項中,那最好還是下載原始程式,自行編譯。 <p> 要知道你的Linux的版本,先到命令行,下個命令 <tscreen><verb> linux:~$ uname -a </verb></tscreen> 你的Linux會回答像下列的東西 <tscreen><verb> linux:~$ uname -a Linux linux 2.0.29 #4 Tue Sep 13 04:05:51 CDT 1994 i586 linux:~$ </verb></tscreen> <p> 在此例中,Linux告訴你,它的版本為2.0.29版。 <p> 其餘的參數,可在下載前或下載後在目錄<tt>/usr/local/etc/httpd/conf</tt>中的 <tt>srm.conf</tt>檔中修改。<tt>httpd.conf</tt>檔案中真實指令在括號內。唯一 的例外是<tt>srm.conf</tt>檔案中的DocumentRoot指令。 <sect2>程式型式﹝伺服器型式﹞ <p> 這是用來定義你的電腦要怎樣運作HTTPd伺服器,最好用"standalone"。它會 使HTTPd daemon持續運作。如果你選擇用"inetd"運作HTTPd,伺服器執行程式 只在叫用時才載入記憶體中,這會使伺服器運作速度減慢。 <sect2>Port連接﹝Port﹞ <p> 這是用來決定HTTPd daemon會接到那個Port來接收HTTP請求。如果你能以"root" 登,port則為預設值80;否則可在1025與65535間任選一個號碼。 <sect2>伺服器user代號﹝user﹞ <p> 伺服器在回答請求時,會以此一user代號的權限來存取檔案。只有當你的伺服器是以 "standalone"的模式時,才須回答此一選項。如果你沒有root權限,就以你的 log name來回答。如果你是系統管理員,你可以考慮為它建立一個user,然後你可以控制 它的檔案存取權限。 <sect2>伺服器group代號﹝Group﹞ <p> 伺服器在回答請求時,會以此一group代號的權限來存取檔案。與user代號一樣,只有當 伺服器是用standalone模型來執行時才有效。 <p> 如果你沒有root權限,就以你的主要group名稱來回答。要查詢你的group名稱,在Linux命 令列中敲入<bf>groups</bf>。 <sect2>伺服器管理員email地址﹝ServerAdmin﹞ <p> 當使用此一伺服器出問題時,此一地址是用來報告錯誤用的。只要使用你的個人地址即可。 <sect2>伺服器目錄﹝ServerRoot﹞ <p> 這是伺服器所放在的目錄。如果你有root權限,建議放在<tt>/user/local/etc/httpd</tt>。 如果你不能用root登入,可選擇你的home path下的次目錄。要查詢你的home目錄,使用 <bf>pwd</bf>命令。 <sect2>HTML檔案位置﹝DocumentRoot﹞ <p> 這是伺服器提供的HTML檔案的位置。預設的位置為<tt>/user/local/etc/httpd/htdocs</tt>。 如果你不是以root登入,可使用前面user代號的home目錄,或你自己的home目錄下的次目錄。 <P> 如果你仍然有疑問,可以試試預設值。現在你應該回答了上述各項問題,就可以從 <htmlurl url="http://hoohoo.ncsa.uiuc.edu/docs/setup/OneStep.html" name="http://hoohoo.ncsa.uiuc.edu/docs/setup/OneStep.html">. 開始下載NCSA HTTPd。安裝前讀一讀 <htmlurl url="http://hoohoo.ncsa.uiuc.edu/docs/" name="http://hoohoo.ncsa.uiuc.edu/docs/"> 中的HTTPd檔案。如果你要自行編譯程式,在<tt>support, src, cgi-src</tt>三個目錄中 的makefile都要修改。如果你的版本可完全支援,只要在最上層目錄中﹝例: <tt>/usr/local/etc/httpd</tt>﹞,敲入<bf>make Linux</bf>即可。 <sect1>編譯HTTPd <p> 編譯並不難,只要在命令列中選到伺服器根目錄<tt>make linux</tt>即可。 <bf>註:</bf>pre-ELF Linux使用者須在<tt>portability.h</tt>中開啟﹝uncomment﹞ <tt>#define NO_PASS</tt>,並在編譯HTTPd前在<tt>Makefile</tt>中設定 <tt>DBM_LIBS= -ldbm</tt>。 <sect>測試HTTPd <p> 安裝HTTPd後,以root登入,並敲入<bf>httpd &</bf>﹝假設你安裝為standalone模式﹞。 那麼在<bf>ps</bf>的條例中就可看到它在運行了。最簡單的測試方式是使用Telnet。在Linux的命 令列中敲入 <tscreen><verb> linux:~$ telnet 172.16.0.1 80 </verb></tscreen> 其中80指的是HTTP的port代號。如果你另設其他"Port"代號,就應該敲入你指定的代號。 螢幕應出現 <tscreen><verb> Trying 172.16.0.1... Connected to linux.mydomain. Escape character is '^]'. </verb></tscreen> 此時,不論你敲入什麼東西,然後敲一下Enter,螢幕都應出現 <tscreen><verb> HTTP/1.0 400 Bad Request Date: Wed, 10 Jan 1996 10:24:37 GMT Server: NCSA/1.5 Content-type: text/html <HEAD><TITLE>400 Bad Request < /TITLE> < /HEAD> <BODY><H1>400 Bad Request < /H1> Your client sent a query that this server could not understand.<P> Reason: Invalid or unsupported method.<P> < /BODY> </verb></tscreen> <P> 現在,就可以用其他pc上的全球網際網路瀏覽器,來連上我們的伺服器了。 <sect>連線到Linux伺服器 <p> 請先參考<ref id="Intro" name="Introduction">一章中圖示的地址。其中1號工作站﹝W/S1﹞ 在網路172.16.0.0上,它可以直接存取 Linux伺服器。而2號工作站﹝W/S2﹞在網路172.17.0.0上,必須經由通道﹝gateway﹞﹝即路由器﹞ 172.17.0.254來存取Linux box。當設定在w/s2的用戶時,要提供通道的資訊。Netware稱之為 ‘ip_router’。 <p> 這�堨垛/S2來說明用戶設定的方式。設定W/S1則只要把地址從172.17.0.5改為172.16.0.5,並 忽略通道。 <p> 如果你不會用到路由器,可跳過下一節並直接到 <itemize> <item> 如果使用Netware:<ref id="SetupNW" name="Setup Netware Server">。 <item> 如果使用微軟client:<ref id="MSClient" name="Setup MS Windows Client">。 </itemize> <sect1>設定Linux伺服器 <p> <bf>如果你沒有路由器,跳過本節。</bf> <p> 要讓2號工作站連到伺服器,須設定Linux伺服器,使之感知路由器。要設定Linux伺服器,須以root登入。 在命令列敲入 <tscreen><verb> route add gw default 172.16.0.254 </verb></tscreen> 要在每次啟動Linux伺服器後使用通道,可在<tt>/etc/rc.d/rc.inet1</tt>中定義通道各行改為 <tt>GATEWAY = "172.16.0.254"</tt>。確定一下,這幾行不可寫為說明行。 <p> 另類作法:還可以在路由器另一端加入另一路由器。指令為 <tscreen><verb> route add -net 172.17.0.0 gw 172.16.0.254 </verb></tscreen> 如要使Linux每次啟動就加入路由器,則將指令寫入<tt>/etc/rc.d/rc.local</tt>。 <P> <sect1>設定Netware伺服器<label id="SetupNW"> <p> 要設定Netware伺服器,要有supervisor權限,或至少有Console操作員權限。如果兩者都不無法辦 到,就只好請你的系統操作員代你設定了。在伺服器啟動LAN的Ethernet_II frame type。作法是 AUTOEXC.ncf檔中寫入: <tscreen><verb> load NE2000 frame=Ethernet_II name=IPNET load TCPIP bind IP to IPNET addr=172.16.0.2 mask=FF.FF.FF.0 </verb></tscreen> <P> 你可依照你的電腦型態來決定載入NE2000 driver時的slot或board代號。 (例如: load NE2000 slot=3 frame=.....) <sect1>設定Netware Client<label id="NWClient"> <p> 在pc上,你可用Win3.1、WFWG 或WIN95。如果你要使用微軟或Novell的32 bit Client, 則Win95和老式Windows的安裝方式會不一樣。如果你要用16 bit client,則安裝方式相同,只要參 考window 3.x的安裝說明即可。如要安裝win95的32 bit client直接跳至 <ref id="NWWin95" name="Windows 95 installation">。 <sect2>Windows 3.x<label id="NWWin"> <p> 如果要使用win 3.1或WFWG,可以安裝Netware Client﹝VLMs﹞及隨TCP/IP磁片所附的一些外 加檔案,即 <p> TCPIP.exe, VTCPIP.386, WINSOCK.dll and WLIBSOCK.dll <P> 注意!這個WINSOCK.dll檔與Win95及Trumpet的WINSOCK.dll檔不同。先用Windows來安裝 Netware Client。然後複製VTCPIP.386、WINSOCK.dll 及WLIBSOCK.dll到 SYSTEM目錄, 複製TCPIP.exe到NWCLIENT目錄。現在修改NWCLIENT目錄中的STARTNET.bat為 <tscreen><verb> lsl ne2000 ---> your network card driver c:\windows\odihlp.exe ---->if you are using WFWG ipxodi tcpip ---> add this line nwip ---> if you use Netware/IP vlm </verb></tscreen> <P> 建立一個次目錄﹝例如說<tt>\NET\TCP</tt>﹞並從<tt>/etc</tt>複製HOSTS、 NETWORKS、 PROTOCOLS及 SERVICES到Linux伺服器或Netware伺服器上的<tt>SYS:ETC</tt> 目錄。修改複製的HOSTS檔,加入一行描述新的Linux伺服器如下。這樣在瀏覽器中用 <tt>http://linux.mydomain/</tt>來讀這個伺服器的內容而不須用到 <tt>http://172.16.0.1/</tt>。 <tscreen><verb> 127.0.0.1 localhost 172.16.0.1 linux.mydomain </verb></tscreen> <p> 然後修改NWCLIENT目錄中的NET.cfg檔為: <tscreen><verb> Link Driver NE2000 port 300 int 3 MEM D0000 FRAME Ethernet_802.2 ; ---- add these lines ---- FRAME Ethernet_II Protocol TCPIP PATH TCP_CFG C:\NET\TCP ip_address 172.17.0.5 ip_netmask 255.255.255.0 ip_router 172.17.0.254 ---> 如果你要用通道來連接HTTP伺服器,則 ---> 加入通道的地址 Link Support MemPool 6192 ---> 最小值為1024。試試其他值看看 Buffers 10 1580 ---> 這裡也能改改 ;--------------------------------- ; 如果使用Netware/IP,可以加上下面幾行。 ; NWIP NWIP_DOMAIN_NAME mydomain NSQ_BROADCAST ON NWIP1_1 COMPATIBILITY OFF AUTORETRIES 1 AUTORETRY SECS 10 </verb></tscreen> 修改WINDOWS目錄中的SYSTEM.ini檔,並為VTCPIP.386加入一項目 <tscreen><verb> [386Enh] ..... network=*vnetbios, vipx.386, vnetware.386, VTCPIP.386 ..... </verb></tscreen> <p> 重新開機,執行STARTNET.bat,現在你就可以開始用你最喜愛的瀏覽器來閱讀你的網頁了。如果你使用 <sect2>Windows 95<label id="NWWin95"> <p> 本節介紹如何在Win 95上安裝32 bit 用戶端。首先要安裝下述各項: <tscreen><verb> Netare網路用戶端 ﹝由微軟或Novell提供﹞ 微軟TCP/IP通訊協定 網路介面卡 </verb></tscreen> <p> 要安裝這些項目、單擎、我的電腦、控制台、網路、選'新增'。現在會出現一個視窗,顯示用戶端、 介面卡、通訊協定及服務。 要為Netware網路安裝用戶端: <tscreen><verb> 1.雙擎用戶端 2.單擎Microsoft或Netware Networks 3.雙擎Client for Netware Networks </verb></tscreen> <p> 要安裝TCP/IP通訊協定: <tscreen><verb> 1.雙擎通訊協定 2.單擎Microsoft 3.雙擎TCP/IP </verb></tscreen> <p> Win 95預設自動安裝一些其餘通訊協定。要移除這些預設值的話,先選點之,再選點'移除'鍵即可。一般而 言,Win 95會安裝Microsoft NetBeui通訊協定及IPX/SPX通用通訊協定。NetBeui可刪除。如要 登入Netware伺服器,則IPX/SPX通訊協定須保留。 <p> 要設定TCP/IP,點選Properties,點選IP地址 按鍵 <tscreen><verb> Enter your IP address in the "Specify an IP address " box as 172.17.0.5 In the Subnet Mask box enter 255.255.255.0 </verb></tscreen> 點選通道鍵 <tscreen><verb> Enter your gateway (router) address in the box New gateway as 172.17.0.254 Click the Add button </verb></tscreen> 現在通道地址應出現已安裝通道如下。接下來點選'確定'鍵。 <p> 現在會有訊息視窗出現,要求你重新開機。重新開機後,你就可以開始用瀏覽器來接上你的HTTP伺服器了。 <sect1>設定微軟用戶端<label id="MSClient"> <p> 如果要使用微軟用戶端來存取你的網站,本節告訴你為下述系統安裝TCP/IP的細節資料。  <itemize> <item><ref id="MSWFWG" name="Windows for Workgroups (WFWG)"> <item><ref id="MSWin95" name="Windows 95"> <item><ref id="MSWinNT" name="Windows NT 4.0"> </itemize> <BF>註:</BF>若不想用<tt>http://172.16.0.1/</tt>而要用 <tt>http://linux.mydowain/</tt>來讓瀏覽器及其他網際網路命令定址Linux伺服器,就須修改 <tt>host</tt>檔。另外也可以此為其他主機﹝Netware、Unix、WinNT﹞加入設定行。Windows家 族的HOSTS檔在<tt>\WINDOWS</tt>或<tt>\WINDOWS\SYSTEM</tt>中,這 是由它的版本而定。在其中,為Linux伺服器加入一行指令如下: <tscreen><verb> 127.0.0.1 localhost 172.16.0.1 linux.mydomain 172.16.0.2 netware.mydomain 172.16.0.3 winNT.mydomain 172.16.0.5 ws_1 </verb></tscreen> <sect2>Windows for Workgroups<label id="MSWFWG"> <p> 本節介紹如何在WFWG上安裝32 bit用戶端。首先要從微軟下載Windows所用的TCP/IP驅動器。最新版本 為3.11b版,可從 <htmlurl url="ftp://ftp.microsoft.com" name="ftp://ftp.microsoft.com">或其他 網站下載名為<tt>tcp32b.exe</tt>的檔案。要確定在載入TCP/IP-32 bit驅動器之前已先載入 Win32s。 <p> 一旦把這些TCP/IP檔案在一暫存目錄﹝例<tt>C:\TEMP</tt>﹞中打開後,就到 <tt>\WINDOWS\SYSTEM</tt> 目錄中找 一份<tt>OEMSETUP.INF</tt>檔案。如果在的話,給它一個另外的檔名,然後將此 <tt>OEMSETUP.INF</tt>檔從暫存目錄複製到<tt>\WINDOWS\SYSTEM</tt>目錄中 。如果在系統中也載入了其它的TCP/IP stacks,在繼續設定之前,先把他們移除。 <p> 開啟網路設定或Windows設定/改變網路設定: <tscreen><verb> 點選網路 點選安裝Microsoft Windows Networks選支援新增網路﹝如果問的話﹞ 選點'確定'鍵 </verb></tscreen> 此時會問你網路介面卡-選個合適的答案。如果沒問你的話,則: <tscreen><verb> 點選介面卡鍵 選一介面卡﹝例:NE2000﹞ 點選'確定'鍵 點選通訊協定鍵 選MS TCP/IP-32通訊協定 點選'確定'鍵 </verb></tscreen> 此時會要求你設定各種TCP/IP通訊協定。可以先在介面卡選單中選TCP/IP通訊協定,然後點選'確定'鍵。 <tscreen><verb> 1.在IP位址空格中填入172.17.0.5 2.在Subnet Mask空格中填入255.255.255.0 3.在default gateway空格中填入通道﹝路由器﹞地址為172.17.0.254 </verb></tscreen> 點選確定後,電腦會要求你重新啟動。重新啟動後,你就可以用瀏覽器來接上你的HTTP伺服器了。 <sect2>Windows 95<label id="MSWin95"> <p> 本節介紹如何在Win 95上安裝32 bit 用戶端。首先要安裝下述各項: <tscreen><verb> 微軟網路用戶端 微軟TCP/IP通訊協定 網路介面卡 </verb></tscreen> <p> 要安裝這些項目、單擎、我的電腦、控制台、網路、選新增。現在會出現一個視窗,顯示用戶端、介面卡、 通訊協定及服務。 要為微軟網路安裝用戶端: To install the Client for Microsoft Networks: <tscreen><verb> 1.雙擎用戶端 2.單擎Microsoft 3.雙擎Client for Microsoft Networks </verb></tscreen> <p> 要安裝TCP/IP通訊協定: <tscreen><verb> 1.雙擎通訊協定 2.單擎Microsoft 3.雙擎TCP/IP </verb></tscreen> <p> Win 95預設自動安裝一些其餘通訊協定。要移除這些預設值的話,先選點之,再點選移除鍵即可。一 般而言,Win 95會安裝Microsoft NetBeui通訊協定。 <p> 要設定TCP/IP,點選Properties,點選IP地址按鍵 <tscreen><verb> Enter your IP address in the "Specify an IP address " box as 172.17.0.5 In the Subnet Mask box enter 255.255.255.0 </verb></tscreen> 點選通道鍵 <tscreen><verb> Enter your gateway (router) address in the box New gateway as 172.17.0.254 Click the Add button </verb></tscreen> 現在通到地址應出現已安裝通道如下。接下來點選'確定'鍵。 <p> 現在會有訊息視窗出現,要求你重新開機。重新開機後,你就可以開始用瀏覽器來接上你的HTTP伺服器了。 <sect2>Windows NT<label id="MSWinNT"> <p> 本節介紹如何在WinNT 4.0上安裝32 bit 用戶端。 先開啟控制台/網路 <tscreen><verb> Select the Adapter tab. Click Add to add a new adapter (if you don't have one) </verb></tscreen> 此時會問你網路介面卡─選一個合適的答案。接下來選擇通訊協定 <tscreen><verb> Select the Protocols tab Click Add Select the TCP/IP protocol Click OK </verb></tscreen> 此時會要求你設定各種TCP/IP通訊協定。可以先在選單中點選 TCP/IP通訊協定,然後點選合適的按鍵。 <tscreen><verb> Select the tab IP Address Mark the checkbox 'Specify an IP address' In the IP address box enter 172.17.0.5 In the Subnet Mask box enter 255.255.255.0 Enter your gateway (router) address in the box Default Gateway as 172.17.0.254 </verb></tscreen> 點選'確定'鍵後,現在會有訊息視窗出現,問你是否要重新開機。重新開機後,你就可以開始用瀏覽器來接 上你的HTTP伺服器了。 <sect1>在Macintosh上設定TCP/IP<label id="MacClient"> <p> 如果你要用Macintosh存取你的網站上的資料,本節告訴你為PowerMacs設定MacTCP的細節。 <BF>註:</BF>若不想用<tt>http://172.16.0.1/</tt>,而要用 <tt>http://linux.mydomain/</tt>來讓瀏覽器及其他網際網路命令定址Linux伺服器, 就須修改<tt>hosts</tt>檔。此處的hosts檔與Unix上用的hosts檔不同。 Mac系統的hosts檔是依據RFC-1035標準。另外也可以此為其他主機﹝Netware、Unix、WinNT﹞ 加入設定行。MacOS的HOSTS檔是在<tt>System folder</tt>中的 <tt>Preference folder</tt>中。在其中,為Linux伺服器加入一行指令如下: <tscreen><verb> linux.mydomain A 172.16.0.1 netware.mydomain A 172.16.0.2 winNT.mydomain A 172.16.0.3 ws_1 A 172.16.0.5 </verb></tscreen> <sect2>MacTCP<label id="MacTCP"> <p> 本節說明如何安裝MacTCP。首先要從Apple公司下載或從Internet Connection CD片取得MacTCP。 要設定MacTCP,點選Apple Menu/控制台/TCP/IP。在螢幕上將'Connect via:'的設定改為 'Ethernet'。 <p> 將'Configure'設定內容改為'Manually'。 <tscreen><verb> In the IP address box enter 172.17.0.5 In the Subnet Mask box enter 255.255.255.0 Enter your gateway (router) address in the box Router address as 172.17.0.254 </verb></tscreen> 選'確定',然後你就可以用瀏覽器來連上你的HTTP伺服器了。 <sect>設定區域網路 <p> 如果在不同的平台上無法共用資源,區域網路就不算完整。區域網路必須能支援各種檔案系統,我們才能 存取在他所連接的系統上的資料。本文件說明如何將Linux連到下列的檔案系統: <itemize> <item><ref id="NCPFS" name="NCP filesystem for Netware"> <item><ref id="SMBFS" name="SMB filesystem for Windows"> <item><ref id="NFS" name="NFS filesystem for Unix"> </itemize> <p> 這些檔案系統可以編譯到Linux核心系統中,也可以模組的方式加入,全視的Linux版本而定。如果不清 楚如何編譯核心系統,參考Kernel HOWTO <htmlurl url="http://sunsite.unc.edu/mdw/HOWTO/Kernel-HOWTO.html" name="http://sunsite.unc.edu/mdw/HOWTO/Kernel-HOWTO.html">。 有關以模組方式加入核心系統,參考Module HOWTO <htmlurl url="http://sunsite.unc.edu/mdw/HOWTO/Module-HOWTO.html" name="http://sunsite.unc.edu/mdw/HOWTO/Module-HOWTO.html">。 <p> <sect1>NCPFS<label id="NCPFS"> <p> 若要在Netware伺服器上共用檔案,區域網路就必須能支援NCP﹝ncpfs﹞。1.2.x及1.3.71以上版本 的核心系統可支援NCPFS。雖然無法存取Netware 4.x中的資料庫,但可以使用bindery。如果使用的 版本為Netware 4.x,可以在命令列中以<tt>set Bindery Context</tt>命令,啟動特定 container的bindery支援: <tscreen><verb> set Bindery Context = CORP.MYDOM;WEBUSER.MYDOM </verb></tscreen> 上面這個例子中,有兩個container啟動了bindery支援。 <p> 首先從陽昇的網站<htmlurl url="ftp://sunsite.unc.edu/pub/Linux/system/filesystems/ncpfs/ncpfs.tgz" name="ftp://sunsite.unc.edu/pub/Linux/system/filesystems/ncpfs/ncpfs.tgz"> 下載NCP檔案系統工具(現為ncpfs-2.0.10)。 <p> <sect2>安裝 <p> 要安裝ncpfs工具,敲入 <tscreen><verb> zcat ncpfs.tgz | tar xvf - </verb></tscreen> 則會將相關檔案打開,放入預設的目錄中。這個目錄即為<tt>ncpfs-2.0.10</tt>。要進行安裝,先 跳到這個目錄中,先讀一下其中的README文件。如有必要依其中內容修改一下Makefile檔。 <p> ncpfs的安裝步驟,視核心系統的版本而定。如果是1.2版,只要敲入'make',再敲'make install', 就可安裝可執行檔及man page。 <p> 如果核心系統是1.3.71版或更新的版本,可能就要重新編譯核心系統。這些版本中有的可能在 main source tree中已包括了ncpfs。要檢查是否有必要重新編譯,敲入 <tscreen><verb> cat /proc/filesystems </verb></tscreen> 回答的其中一行可能說ncpfs已經支援了。 <p> 如果ncpfs不被支援,可以考慮重新編譯核心系統或以模組方式加入ncpfs。要重新編譯核心系統, 敲入'make config',然後當它問你 <p> <tt>The IPX protocol (CONFIG_IPX) [N/y/?]</tt> <p> 時,回答'y'。接下來會問你是否要full internal net。一旦核心系統成功安裝後, 重新開機,檢查<tt>/proc/filesystems</tt>,如果一切順利,就可開始安裝ncpfs工具。跳回原 來放置下載的ncpfs工具檔案的目錄,敲入'make'。編譯完成後,再敲入'make install'來安裝各 種工具及man page。 <p> <sect2>掛上NCPFS檔案系統 <p> 先用下面命令檢查檔案系統是否已安裝好 <tscreen><verb> ipx_configure --auto_interface=on --auto_primary=on ....等10秒再鍵入 slist </verb></tscreen> 此時應可看到一串Netware伺服器列了出來。那麼就可以開始在Netware伺服器上共用檔案了。 <p> 假設從MYDOM_NW伺服器的VOL1:卷中的<tt>\home\htmldocs</tt>目錄上存取 HTML檔案,建議你先在伺服器上建立一個使用者帳號﹝例如﹞'EXPORT'給它一個密碼'EXP123', 並設定他存取該目錄的權限為SYSCON或NWADMIN。 <p> 首先在Linux的機器上建立一目錄<tt>/mnt/MYDOM_NW</tt>。要掛上該檔案系統,敲入 <tscreen><verb> ncpmount -S MYDOM_NW -U EXPORT -P EXP123 /mnt/MYDOM_NW </verb></tscreen> 要檢查目錄<tt>MYDOM_NW/VOL1:\HOME\HTMLDOCS</tt>中的檔案,敲入 <tscreen><verb> ls /mnt/MYDOM_NW/vol1/home/htmldocs </verb></tscreen> 如有任何困難,讀一下IPX HOWTO <htmlurl url="http://sunsite.unc.edu/mdw/HOWTO/IPX-HOWTO.html" name="http://sunsite.unc.edu/mdw/HOWTO/IPX-HOWTO.html"> ﹝使用Netware檔案符號﹞,可對IPX系統有更深入的理解。 <sect1>SMBFS<label id="SMBFS"> <p> 若要在Windows伺服器上共用檔案,區域網路就必須能支援SMB﹝smbfs﹞檔案系統。 <p> 首先從陽昇的網站 <htmlurl url="ftp://sunsite.unc.edu/pub/Linux/system/filesystems/smbfs/smbfs.tgz" name="ftp://sunsite.unc.edu/pub/Linux/system/filesystems/smbfs/smbfs.tgz"> 下載NCP檔案系統工具(現為smbfs-2.0.1)。 <p> <sect2>安裝 <p> 要安裝smbfs工具,敲入 <tscreen><verb> zcat smbfs.tgz | tar xvf - </verb></tscreen> 則會將相關檔案打開,放入預設的目錄中。這個目錄即為<tt>smbfs-2.0.1</tt>。要進行安裝,先 跳到這個目錄中,先讀一下其中的README文件。如有必要依其中內容修改一下Makefile檔。 <p> smbfs的安裝步驟,視核心系統的版本而定。如果是1.2版,只要敲入'make'再敲'make install'就可 安裝可執行檔及man page。 <p> 如果核心系統是2.0版或更新的版本,可能就要重新編譯核心系統。這些版本中有的可能在 main source tree中已包括了smbfs。要檢查是否有必要重新編譯,敲入 <tscreen><verb> cat /proc/filesystems </verb></tscreen> 回答的其中一行可能說smbfs已經支援了。 <p> 如果smbfs不被支援,可以考慮重新編譯核心系統或以模組方式加入smbfs。要重新編譯核心系統, 敲入'make config',然後當它問你是否要加入SMB檔案系統時 ,回答'y'。一旦核心系統成功安裝後,重新開機,檢查<tt>/proc/filesystems</tt>目錄, 如果一切順利,就可繼續安裝smbfs工具。跳回原來放置下載的smbfs工具檔案的目錄,敲入'make'。 編譯完成後,再敲入'make install'來安裝各種工具及man page。 <p> <sect2>掛上SMBFS檔案系統 <p> 先假設WinNT伺服器叫'MYDOM_NT'而共用的目錄為<tt>C:\PUB\HTMLDOCS</tt>, 共用帳號為'HTMLDOS',沒有密碼。首先在Linux的機器上建立一目錄<tt>/mnt/MYDOM_NT</tt>。 要掛上該檔案系統,敲入 <tscreen><verb> smbmount //MYDOM_NT/HTMLDOCS /mnt/MYDOM_NT -n </verb></tscreen> <p> 如果無效,則敲入 <tscreen><verb> smbmount //MYDOM_NT/COMMON /mnt/MYDOM_NT -n -I 172.16.0.3 </verb></tscreen> 要檢查目錄<tt>bsol;bsol;MYDOM_NT\PUB\HTMLDOCS</tt>中的檔案,敲入 <tscreen><verb> ls /mnt/MYDOM_NT </verb></tscreen> ﹝使用Windows檔案符號﹞ <p> <sect1>NFS<label id="NFS"> <p> 首先要有個能支援NFS檔案系統的核心系統。它可以是重新編譯後支援,或以模組方式加入而支援的。 <p> 先假設有個支援NFS的Unix主機叫'MYDOM-UNIX',它的IP地址為172.16.0.4。可以用下面的指令 檢查它的那些目錄是輸出的﹝共用的﹞。 <tscreen><verb> showmount -e 172.16.0.4 </verb></tscreen> 一旦知道那些目錄是輸出的,即可以上掛指令把他們掛上你的系統。建議你在'/mnt'下建立一個目錄 'MYDOM_UNIX'﹝例﹞,令它為你的上掛點 <tscreen><verb> mount -o rsize=1024,wsize=1024 172.16.0.4:/pub/htmldocs /mnt/MYDOM_UNIX </verb></tscreen> 其中的rsize及wsize視你的環境調整。 <p> 如果有困難,讀一下NFS HOWTO <htmlurl url="http://sunsite.unc.edu/mdw/HOWTO/NFS-HOWTO.html" name="http://sunsite.unc.edu/mdw/HOWTO/NFS-HOWTO.html"> ,可對NFS系統有更深入的理解。 <p> <sect>存取網站資料<label id="AccessHTML"> <p> 既然已經設定好了HTTP伺服器、用戶端又將Linux伺服器與其他連在一起,為了能用瀏覽器存取這些掛上 了的檔案系統,我們還要稍加調整。 <sect1>存取上掛的檔案系統 <p> 要讓HTML首頁中的連接,成功的連接到上掛的目錄中,有兩種方法: <itemize> <item>在Document Root ﹝<tt>/usr/local/etc/httpd/htdocs</tt>﹞中建立連接到上 掛的目錄 <tscreen><verb> ln -s /mnt/MYDOM_NW/vol1/home/htmldocs netware or ln -s /mnt/MYDOM_NT winNT or ln -s /mnt/MYDOM_UNIX unix </verb></tscreen> <item>修改<tt>/usr/local/etc/httpd/conf</tt>中的<tt>srm.conf</tt>檔案 </itemize> <tscreen><verb> # Alias fakename realname Alias /icons/ /usr/local/etc/httpd/icons/ # alias for netware server Alias /netware/ /mnt/MYDOM_NW/vol1/home/htmldocs/ Alias /winNT/ /mnt/MYDOM_NT/ Alias /unix/ /mnt/MYDOM_UNIX </verb></tscreen> 然後重新啟動HTTPd。如要連到Netware伺服器上的檔案,用 <tt>http://linux.mydomain/netware/index.htm</tt>。其餘系統以此類推。 <sect1>連線到網際網路 <p> 你還可以讓你的區域網路連線到網際網路上,利用網際網路的巧妙資訊存取E-Mail。相關連線細節請參 考ISP Hookup HOWTO <htmlurl url="http://sunsite.unc.edu/mdw/HOWTO/ISP-Hookup-HOWTO.html" name="http://sunsite.unc.edu/mdw/HOWTO/ISP-Hookup-HOWTO.html"> 及Diald mini HOWTO <htmlurl url="http://sunsite.unc.edu/mdw/HOWTO/mini/Diald" name="http://sunsite.unc.edu/mdw/HOWTO/mini/Diald"> for setting up these connections。 <sect1>其餘用途 <p> HTTP伺服器還可以用於辦公室,透明化存取其他伺服器的檔案。所存取的檔案可以是Word、 Lotus spreadsheets或複雜的資料庫。 <p> 這項技術可運用在: <P> <itemize> <item>公司文件發文<p> 包括最新消息、年度報告、地圖、公司設施、價格表、產品資訊及任何有用的公司文件。 <item>存取可搜尋資料<p> 例如大家常查詢的電話簿。資料可建在映射站中﹝以CGI script的方式﹞,網站伺服器可做 為一連到back-end pre-existing或新應用軟體的通道。也就是說,只使用標準存取機器, 資料可經由簡單的程序廣泛的利用。也就是說,像ORACLE及SYBASE可用RDMMS來作為提供及 時資訊的介面。下列為相關的網頁:<P> -Web Access- <htmlurl url="http://cscsun1.larc.nasa.gov/~beowulf/db/web_access.html" name="http://cscsun1.larc.nasa.gov/~beowulf/db/web_access.html"> -CGI gateway- <htmlurl url="HTTP://www.w3.org/hypertext/WWW/RDBGate/Overview.html" name="HTTP://www.w3.org/hypertext/WWW/RDBGate/Overview.html"> <item>公司/部門/個人首頁<p> 當公司文化漸漸進步到,不止每一部門有工作任務,每個個人都有一工作任務時,區域網路可 用來通知各部門或各人最新資訊。強力搜尋引擎,還可以用來查詢每個員工每天對各個問題的解 決方案。 <item>簡單Groupware應用軟體<p> 利用HTML表格,網站可提供簽到、檢視及簡單時程表。 <item>軟體發行<p> 系統管理員可以利用區域網路,把軟體及最新資料,經由公司網路送到客戶手中。這件要 求可由'Java'來完成,因為它不只可以傳送數據及應用程式,還可以用來產生訂購的object, 並保持運算透明化。較新版本的Linux可以有較好的表現,因為他們內建支援Java。 信件 <item>信件<p> 隨著越來越多人開始使用具備標準而簡單的方式附上有檔案、聲音、視效及其餘多媒體的個人 信件系統,信件漸漸成為簡單而實際的通訊方式。信件實質上是個人之間或個人與一個小組織之 間的通訊方式。Linux上有些工具可用來設定如<bf>sendmail、pop3d、imapd</bf>的 E-mail系統。 <item>使用者介面<p> 區域網路技術進步得如此神速,以至於用於HTML的工具可以用來把我們和系統間的介面徹底改 觀。利用HTML,你可以建立一個只被個人想像力限制的使用者介面。最棒的地方是,這些步驟又 非常的簡單。只要點一下HTML的超連結,可以跳到另一個首頁,可以按響一聲鈴,可以跑一個 跑一年才停止的程序,或任何其他電腦可以做到的事。 </itemize> <sect>其他可以辦到的事 <P> 下列為另外一些可以讓你的Linux 區域網路伺服器作的事。其中所提到的軟體都是自由軟體。 <itemize> <item>利用Win 95/NT中'網路上的芳鄰'來查看Linux伺服器:須設定NBT伺服器成WINS型式 的伺服器。參考SAMBA網頁 <htmlurl url="http://lake.canberra.edu.au/pub/samba/samba.html" name="http://lake.canberra.edu.au/pub/samba/samba.html">。 <item>在區域網路上建立搜尋引擎。參考 ht://Dig at <htmlurl url="http://htdig.sdsu.edu/" name="http://htdig.sdsu.edu/">。 <item>設定local reflector來使用CUSeeMe。參考他們的網頁<htmlurl url="http://cu-seeme.cornell.edu/" name="http://cu-seeme.cornell.edu/">。 <item>設定網路會議室。使用<htmlurl url="http://thecity.sfsu.edu/COW/" name="http://thecity.sfsu.edu/COW/">的COW。 <item>開設一個SQL資料庫。參考SQL網頁<htmlurl url="http://Hughes.com.au/" name="http://Hughes.com.au/">。 <item>在Netware伺服器上設定FTP、Gopher、Finger、Bootp伺服器。參考<htmlurl url="http://mft.ucs.ed.ac.uk/" name="http://mft.ucs.ed.ac.uk/">。 <item>模擬Netware伺服器。參考<htmlurl url="ftp://sunsite.unc.edu/pub/Linux/system/filesystems/ncpfs/" name="ftp://sunsite.unc.edu/pub/Linux/system/filesystems/ncpfs/">中的NCP工具。 </itemize> 如果你還知道其他可以在Linux區域網路伺服器上玩的東東,請E-Mail給我。 <sect>貢獻及版權﹝Credits and Legalities﹞ <p> <sect1>感謝﹝Thanks﹞ <p> 謝謝NCSA人員提供的卓越文件。感謝David Anderson及其他試用過本文件並來信的一些人。謝謝 Romel Flores提供有關Netware/IP的細節。 <p> <sect1>著作權資訊﹝Copyright information﹞ <P> 本文件具有版權©1999{Poet} and Linux Ports,只能在下列條件下發行: <P> <itemize> <item>Linux HOWTO文件可以部份或完整複製、散佈、可以利用各種媒體﹝實物或電子方式﹞,但必須 保證原版權仍保留在所有文件上。具商業目的的發行是允許的,也是被鼓勵的,但在發行前應先通知原作者。 <item>不論是直接翻譯、間接參用或是集文成冊,只要是用到Linux HOWTO文件,本著作權聲明一律有效 。也就是說,一旦你參用了HOWTO的內容,就不能對你的產品附加任何發行的權限。在某些特殊條件之下, 若是你想取得某些不違反上述規定的權利,請經由下述地址與Linux HOWTO整合者連絡。 <item>如果有任何疑問,請與Linux整合者Tim Bynum連絡,地址為 <htmlurl url="mailto:linux-howto@sunsite.unc.edu" name="linux-howto@sunsite.unc.edu">。 可用finger查詢電話號碼,用snail查E-Mail地址。 </itemize> <P> 原著作內容(Origional Copyright Information): This document is copyrighted © 1999 {Poet} and LinuxPorts, it is distributed under the following terms: <P> <itemize> <item>Linux HOWTO documents may be reproduced and distributed in whole or in part, in any medium physical or electronic, as long as this copyright notice is retained on all copies. Commercial redistribution is allowed and encouraged; however, the author would like to be notified of any such distributions. <item> All translations, derivative works, or aggregate works incorporating any Linux HOWTO documents must be covered under this copyright notice. That is, you may not produce a derivative work from a HOWTO and impose additional restrictions on its distribution. Exceptions to these rules may be granted under certain conditions; please contact the Linux HOWTO coordinator at the address given below. <item> If you have questions, please contact Tim Bynum, the Linux HOWTO coordinator, at <htmlurl url="mailto:linux-howto@sunsite.unc.edu" name="linux-howto@sunsite.unc.edu"> Finger for phone number and snail mail address. </itemize> <P> <!-- For further reading SECTION ================================= --> <sect>進一步閱讀 <p> <sect1>O'Reilly & Associates Books <p> 個人小小的建議 O'Reilly &書局發行的技術書目獨步全球。他們主要出品有關網際網路、 Unix及程式撰寫的書目。其中往往有許多例子,讀完之後就嚴然變成了個專家。只要讀完他們書目的一半, 不論遇到什麼問題也都不再怕怕了。而且,書中的笑料也比較多。 有名的書囊括HTML、PERL、CGI程式、Java、Javascript、C/C++、Sendmail、Linux等等, 數之不盡。對於變化較快的項目﹝如HTML﹞幾乎每半年就增訂一次。要知道最新動態請參考他們的網站 <url url="http://www.ora.com/" name="O'Reilly & Associates"> ,或到最近的書局查詢。 記得,如果書皮上沒有O'Reilly & Associates,那就絕對不是他們出品的書籍。 <sect1>Internet Request For Comments (RFC) <p> <itemize> <item>RFC1866 written by T. Berners-Lee and D. Connolly, "Hypertext Markup Language - 2.0", 11/03/1995 <item>RFC1867 writtenm by E. Nebel and L. Masinter, "Form-based File Upload in HTML", 11/07/1995 <item>RFC1942 written by D. Raggett, "HTML Tables", 05/15/1996 <item>RFC1945 by T. Berners-Lee, R. Fielding, H. Nielsen, "Hypertext Transfer Protocol -- HTTP/1.0", 05/17/1996. <item>RFC1630 by T. Berners-Lee, "Universal Resource Identifiers in WWW: A Unifying Syntax for the Expression of Names and Addresses of Objects on the Network as used in the World-Wide Web", 06/09/1994 <item>RFC1959 by T. Howes, M. Smith, "An LDAP URL Format", 06/19/1996 </itemize> </article>