免費IT建置--網頁伺服器的完美組合LAMP(上)
文‧圖/柳百郁 2011/7/19 下午 02:46:13
Linux安裝完成之後,建置於其上的Apache、MySQL與PHP,也大多能在其安裝光碟或線上軟體倉儲裡找到,這些套件各有自已的官方網站,提供套件相關資訊與最新版原始程式碼,或編譯完成的二進位制碼,供各類型使用者自由下載。
在以Linux為基礎的架構下,建置網頁伺服器最常見的組合便是LAMP,LAMP指的分別是作業系統Linux、網頁伺服器Apache、資料庫MySQL與程式語言PHP。這四個元素,便能成就中小企業的網頁伺服器解決方案。
在網路時代,取得Linux作業系統幾乎可以說接近零成本。透過網路,找到想要的Linux分支套件,便能自行下載安裝用的iso檔,並且燒錄成安裝光碟。喜歡挑戰的使用者,也可以使用USB磁碟開機啟動安裝程序,或下載小型網路安裝iso檔,以FTP或其它網路方式安裝,除了這些方法外,最直接簡單的作法就是在網路上購買安裝光碟了。
有了安裝光碟後,在分支套件的官方網站上,大多都能找到完整的HOWTO與教戰守則,絕大多數主流分支套件都會提供相當完整的說明文件及討論區。在Open Source的世界裡,透過線上說明或在社群討論區裡找到問題的解答是一種好習慣,因為對初學者而言,問題不在於怎麼裝Linux,而是該選哪一套。Linux安裝完成之後,建置於其上的Apache、MySQL與PHP,也大多能在其安裝光碟或線上軟體倉儲裡找到,這些套件各有自已的官方網站,提供套件相關資訊與最新版原始程式碼,或編譯完成的二進位制碼,供各類型使用者自由下載。
選擇Linux作業系統
簡單來說,Linux可以說是『一群』作業系統的總稱。以特定kernel版本,包裝各種軟體與其它能讓電腦硬體與之互動的驅動模組(驅動程式),令使用者能透過這個作業系統與電腦互動、完成任務。網路上經常看到的Linux分支套件(Distribution),其實也可以說是作業系統,就實際應用上可以這麼看它,例如Fedora、Ubuntu與OpenSUSE都是Linux分支套件。
網路上有太多方式可以找到你要的分支套件,該怎麼選、要怎麼選,端視目的而定,也就是看公司要完成的哪些網路應用或服務。Linux 在這方面的分類,仔細到令人嘆為觀止,可以找到兒童專用、教育方面的分支套件、也會發現LiveCD免安裝的分支套件,甚至是專門用來作setopbox或多媒體家庭影音播放主機的分支套件。
近幾年最有名、也最多非資訊相關工程人員使用的Ubuntu,便擁有針對桌面環境使用的分支套件(還可以細分桌面環境使用或伺服器使用等分支套件),讓非電腦好手的使用者能夠在無須改變太多使用習慣的前提下,使用合法、可自由/免費下載,屬於開放源碼社群的優質作業系統。以業界有名的RedHat、Debian為例,它們可以說是針對企業級應用所發展出來的分支套件,針對由企業營運所衍生之需求與服務,例如網頁伺服器(Web Server)、郵件伺服器(Mail Server)或檔案傳輸伺服器(FTP Server)等,所開發出來的作業系統。
以筆者常用的RedHat派系來說,CentOS是架站的好幫手,與RedHat企業級分支套件(需付費購買)相當類似。但在日常作業上,例如文書處理與多媒體播放則是使用Fedora,後者提供最新的套件版本,前者則著眼於服務的穩定性。至於分支套件裡應用與軟體稱之為套件(package),除使用原始碼安裝外,主流使用的套件管理有兩種:RedHat派系與Mandrake使用RPM套件管理架構,Debian與Ubuntu則使用Deb套件管理。
開始安裝Fedora
到Fedora官方網站,下載Fedora的ISO檔回來安裝,會發現光是在Fedora下就有很多選項。預設Live版本可免安裝,燒錄成光碟後,主機設定為光碟開機即可進入作業系統,此時系統是在RAM裡執行,關機後先前所作的所有設定『都會消失』。若要體驗完整安裝過程,以標準方式將作業系統安裝在硬碟,可從下載Fedora 14 Desktop Edition的ISO檔開始,它預設使用的是GNOME桌面環境,與KDE為RedHat派系下最常見的兩種桌面環境,提供完整的應用程式與系統管理設定,若你比較喜歡KDE的樣式,也可以選擇安裝Fedora 14 KDE Spin,它們都只是與作業系統互動的界面。
▲ Fedora預設GNOME桌面環境(圖片取自官網)
完成安裝光碟DVD燒錄後,系統設定為以光碟開機,就可以進入安裝模式了。Fedora的安裝程式已有繁體中文選項,安裝過程中也不需要太多專業知識,使用者會遇上困難的部份多在於硬碟分割、防火牆設定,或應用軟體種類的選擇。在首次安裝下,建議使用自動分割,並勾選瞭解分割後的硬碟狀況,讓自已對Linux的硬碟指派與分割區格式有所瞭解,如使用手動自訂分割的方式,則建議SWAP為RAM的一至兩倍大小。接下來的防火牆設定,可以說是系統的最後一道防線,無論企業網路作了哪些層層保護,養成本機設定/啟動防火牆的習慣,絕對是有好處的,在這裡勾選允許在此系統進出的服務有哪些後,系統會自動完成設定。
最後軟體選擇的部份,請以使用上的需求為主要考量,例如設定此系統為網頁伺服器,那麼就沒有必要安裝辦公室套件軟體與多媒體影音項目,反之若此系統是用來作家用電腦,那麼網頁伺服器、郵件伺服器等就不需要安裝。無論如何,這些設定、應用與服務還是能在安裝完成後,透過內建的系統管理、套件管理程式或yum指令再作變更。
開機即用免安裝LiveCD
有相當多的分支套件都提供LiveCD版,供使用者在安裝前瞭解作業系統,省去安裝後發現不合用的時間浪費。有些分支套件本身就是LiveCD,它的出現就是為了滿足Troubleshooting的需求,當系統出現無法開機或不能在作業系統裡解決的問題時,便是LiveCD大展身手的好機會。在作業系統停止後,以LiveCD重開機,很可能就能將有問題的資料撈出來、也能夠進行硬碟修復,或修改讓系統無法開機的錯誤設定檔,能作到什麼程度端視使用的LiveCD版本為何,像有名的knoppix與SystemRescueCd都提供相當健全的系統修復功能,協助管理者找出問題、修復它。
▲ SystemRescueCD(圖片取自官網)
不需要背誦一長串的指令,SystemRescureCD提供好操作的圖形界面,讓使用者更容易上手,管理者甚至可以在修復過程中,直接透過機器上網尋找問題的答案或救助,LiveCD可以說是IT人員光碟包裡的必備工具之一。
網頁伺服器Apache
所有伺服器(Server)或服務(Service),都是架構在作業系統上,擁有了作業系統平台後,才在上面架設所需的服務。在Windows系統下使用IIS套件,建置網頁伺服器、提供網站服務,在Linux下則多半透過Apache建置網頁伺服器。Apache是組織名稱、也是套件名稱,由Apache所提供的網頁服務套件部份以apache命名,部份則稱之為httpd,它們指的是一樣的架構。Apache提供網頁服務的套件已相當成熟且普遍,跨平台特性的Apache在Windows與Linux下都能安裝,就網頁伺服器而言,Apache的市佔率已超過50%以上。它是一個有系統的組織,旗下提供的軟體與應用除了一般應用的HTTP伺服器外,還有Java執行環境所用的Tomcat、雲端資料庫CouchDB、阻擋垃圾信的SpamAssassin以及版本控制Subversion等數十種專案。若企業網站應用的開發使用到Java Servlet與JavaServer Page技術,則建議選用Apache Tomcat。
安裝Apache
Apache HTTP伺服器在Fedora下的套件名稱為httpd,以通訊協定名稱http加上daemon命名之。以Fedora作業系統為例,要安裝httpd套件,除了圖形介面下的『系統/管理/新增移除軟體』方式外,也可以透過命令列程式yum執行安裝動作,『應用程式/系統工具/終端機』開啟終端機程式(以下所有命令列指令皆使用此界面):
對專業系統管理而言,使用命令列程式一直是較推薦的方式,一方面由於實務上在安裝伺服器時主要是要使用它的服務,不需要安裝圖形界面,為了節省系統效能也多半啟動在文字模式下,此時無論在本機登入或遠端連線時,都會是在文字模式下;另一方面的理由則是因為命令列模式可以確切掌控指令的執行選項與參數,讓指令只執行必要的功能,因此熟悉終端機界面並多以命令列指令操作系統會是比較建議的作法。
httpd安裝完成後,主要設定檔為httpd.conf,在未作任何設定的情況下,只要啟動httpd服務,即可使用網頁伺服器(基於安全性考量,建議使用者調整設定檔後再啟動):
service命令可用來啟動大部份服務,但有時無法確定服務的名稱。以mysql或mysqld為例,筆者這時會使用服務指令的絕對路徑/etc/init.d/,再搭配bash的Tab命令補足功能,可節省嘗試錯誤的許多時間。Fedora下預設的shell環境為bash(你可以想成是Windows下的命令列模式DOS),此shell的便利之一就是可以在輸入命令或檔案名稱的頭幾個字後,利用tab鍵展開完整的命令或檔案名,例如在命令列輸入ba按下tab鍵,可以看到所有以ba開頭的指令(或檔名),如果只有一個命令相符,則會出現完整指令。
httpd.conf是apache的主要組態檔,其它另有針對各種與apache搭配之應用的各別組態檔,例如httpd/conf.d目錄下的ssl.conf、php.conf等。Apache官方網站提供完整的技術文件與使用說明(http://httpd.apache.org/docs/),包括httpd的安裝、httpd.conf與其它重要設定檔的組態,以及因應各種網站需求所使用的設定說明。簡單來說,安裝完成後,管理者只要將網頁內容置放在/var/www/html下即可,此處是指最快速簡單的流程,現實情況中基於功能與安全性的考量,請務必盡可能瞭解httpd.conf裡所有設定的意義,並依服務與應用的方面完成設定,避免有心人士透過http通訊埠進行破壞行為。
參考網站:
Fedora:http://fedoraproject.org/
Apache:http://www.apache.org/
MySQL:http://dev.mysql.com/
PHP:http://php.net/
CouchDB:http://couchdb.apache.org/
LAMP HowTo:http://www.lamphowto.com/
RPM PBone Search:http://rpm.pbone.net/