一,、LAMP的起源 LAMP這個詞的由來最早始于德國雜志“ct Magazine”,,Michael Kunze在1990年最先把這些項目組合在一起創(chuàng)造了LAMP的縮寫字。這些組件雖然并不是開開始就設計為一起使用的,,但是,,這些開源軟件都可以很方便的隨時獲得并免費獲得。 這就導致了這些組件經(jīng)常在一起使用,。在過去的幾年里,,這些組件的兼容性不斷完善,在一起的應用情形變得非常普便,。為了改善不同組件之間的協(xié)作,,已經(jīng)創(chuàng)建了某些擴展功能。 目前,,幾乎在所有的Linux發(fā)布版中都默認包含了“LAMP stack”的產(chǎn)品,。這些產(chǎn)品組成了一個強大的Web應用程序平臺。“LAMP stack”中的每一個組件都是一個FOSS(免費或者開源軟件/Free or Open Source Software)的實例,。FOSS方法的好處有三個方面,。第一,F(xiàn)OSS軟件的性質(zhì)意味著應用程序可以免費下載,,能夠讓更廣泛的人們不用付費就可以使用這個應用軟件,。這種免費的方式對于廣大用戶特別具有吸引力。這些用戶如果不使用免費的軟件就需要付費購買“專業(yè)”的商用軟件工具,。這在制作網(wǎng)站方面通常是一種昂貴的步驟,。FOSS許可證是開放式的,因此對于基于FOSS技術(shù)的應用軟件的使用和限制都非常少,。不需要為軟件的發(fā)布支付任何許可證費就可以開發(fā)和應用基于LAMP的工程,。因此,這對業(yè)余愛好者和專業(yè)人員都非常有吸引力,。FOSS技術(shù)(包括LAMP)的增長和使用的主要原因是因為用戶能夠訪問其資源,,修復故障和改善應用軟件的性能都非常容易。與開源軟件許可證結(jié)合在一起,,這種方法為許多企業(yè)簡化了開發(fā)過程,,并且為企業(yè)提供了專有軟件或者商業(yè)軟件的限制中所沒有的靈活性,。 二、WAMP的出現(xiàn) 以前微軟和一些傳統(tǒng)的開源廠商認為,,是否使用他們的軟件乃是一個非此即彼的決定,,即:要么選擇Microsoft Windows完全排他的.Net基礎設施;要么就運行LAMP應用程序棧,,這包括Linux,、MySQL數(shù)據(jù)庫、Apache Web服務器和3種以P字母起頭的程序語言:Perl,、Python和PHP,。簡單地說,前一種選擇保證更容易地管理,,但價格更貴,;后一種選擇具有更低的成本和更好的安全性,但代價是更高的復雜性,。但隨著LAMP逐漸成熟,,LAMP也悄悄地演化出了WAMP。這是一種中間路線:稱之為WAMP(Windows,、Apache,、MySQL和Perl/Python/PHP)。現(xiàn)在已經(jīng)有越來越多的IT用戶認為,,這種方式可以提供兩個陣營中最好的東西,。 三、WAMP和LAMP 平臺的組成 WAMP和LAMP 平臺由幾個組件組成,,呈分層結(jié)構(gòu),。每一層都提供了整個軟件棧的一個關(guān)鍵部分: •Linux和windows:Linux和windows 處在最低層,提供操作系統(tǒng),。其他每個組件實際上也在其上運行。但是,,并不一定局限于Linux和windows,,如有必要,其他組件包括: Mac OS X 或 UNIX,。 •Apache:次低層是 Apache,,它是一個 Web 服務器。Apache 提供可讓用戶獲得 Web 頁面的機制,。Apache 是一款穩(wěn)定的,、支持關(guān)鍵任務的服務器,,Internet 上超過 65% 的網(wǎng)站都使用它作為 Web 服務器,。PHP 組件實際上是在 Apache 中,,動態(tài)頁面可以通過 Apache 和 PHP 創(chuàng)建。 •MySQL:MySQL 提供 LAMP 系統(tǒng)的數(shù)據(jù)存儲端,。有了 MySQL,,便可以獲得一個非常強大的、適合運行大型復雜站點的數(shù)據(jù)庫,。在 Web 應用程序中,,所有數(shù)據(jù)、產(chǎn)品,、帳戶和其他類型的信息都存放在這個數(shù)據(jù)庫中,,通過 SQL 語言可以很容易地查詢這些信息。 •HP:PHP 是一門簡單而有效的編程語言,,它像是粘合劑,,可以將 LAMP 系統(tǒng)所有其他的組件粘合在一起。您可以使用 PHP 編寫能訪問 MySQL 數(shù)據(jù)庫中的數(shù)據(jù)和 Linux 提供的一些特性的動態(tài)內(nèi)容,。 •erl:Perl 是一種腳本語言,。這表示它并不編譯成可執(zhí)行程序,而是在運行時進行解釋的一組指令(腳本),。 Perl 是代表“實際抽取和報告語言”(practical extraction and report language) 的字首組合詞,。Perl 被譽為語言中的“瑞士軍刀”。它功能強大且非常靈活,。語言學家 Larry Wall 在廿世紀八十年代后期在 NASA 擔任系統(tǒng)管理員時開發(fā)了 Perl,。他創(chuàng)建 Perl 的目的是使構(gòu)建報告的任務變得更簡單。 Perl 現(xiàn)在用來執(zhí)行許多任務,。它也許是用于在 Web 上進行 CGI(公共網(wǎng)關(guān)接口)編程最流行的語言,。其原因就是 Perl 是一種功能非常強大的文本處理器,而 Web 編程主要就是文本處理,。另外,,使用 Perl 通常比使用 C/C++、Java 或 Tcl 更簡單,,而且它比 Python 更早出現(xiàn),。Perl被稱為是一種“膠水語言”。所謂膠水語言,,也就是說它是可以用來將許多元素連接在一起的語言,。 •ython:Python一種交互式面向?qū)ο蟮慕忉屝途幊陶Z言。 Python使用非常清晰的語法實現(xiàn)非常強大的功能,。它具有模塊,、類、意外處理以及非常高級別的動態(tài)數(shù)據(jù)類型和動態(tài)定義,。并且,,它具有接口和庫函數(shù)供多種系統(tǒng)調(diào)用,。內(nèi)建模塊還可以使用C或C++語言方便地編寫。對于用戶界面的編程,,Python同樣能夠勝任,。 Python可以運行在Linux 、UNIX,、Windows,、DOS、OS/2,、Mac以及Amiga等等多種環(huán)境下,。 Python雖然有版權(quán),但完全可以免費使用和分發(fā),,甚至是為了商業(yè)用途,。 WAMP和LAMP 平臺由幾個組件組成,呈分層結(jié)構(gòu)如圖1 ,。 點擊查看大圖 圖1 WAMP和LAMP分層結(jié)構(gòu) 四,、Lamp和wamp的對比 ◆安裝復雜度 早期安裝一個LAMP系統(tǒng)是比較負責的,隨著Linux的普及現(xiàn)在安裝一個LAMP系統(tǒng)變得比較簡單另外許多Linux發(fā)行版本(Redhat ,、Debian)安裝時可以自動配置Apache,、php、mysql等組件,。相比反而Wamp安裝較為復雜,,不過現(xiàn)在有多種種WAMP軟件包可以下載和安裝在Windows服務器上。傳統(tǒng)情況下,,AMPP -- Apache,、MySQL、PHP 和 Perl -- 都是以單獨產(chǎn)品的形式進行安裝和配置,。將它們集成到中間件軟件中的承諾使得開源項目的開發(fā)相對于 J2EE應用程序的開發(fā)來說更具競爭力,,至少對于底層的應用程序來說是如此。主要包括以下軟件: 1.Wamp5: WAMP5 該軟件在你的系統(tǒng)上自動地安裝Apache, PHP5, 和MySQL,。該軟件配以一個以系統(tǒng)托盤圖標運行的服務管理器,,以及一個插件,現(xiàn)在允許你的在同一個服務器上運行PHP4.3.9和PHP5.0.2,。 其官方網(wǎng)站: http://www./ 2.AppServ:是 PHP 網(wǎng)頁架站工具組合包,,泰國的作者將一些網(wǎng)路上免費的架站資源重新包裝成單一的安裝程序,以方便初學者快速完成架站,,AppServ 4.0所包含的軟件有:PHP 4.3.8,、Apache 1.3.31、MySQL 4.0.20、Zend Optimizer 2.5.3(Zend Performance是老牌的PHP加速/優(yōu)化軟件,,依托于PHP領(lǐng)域最知名的Zend公司,。目前已經(jīng)推出4.0版本,它可以為PHP應用提供程序加速,,內(nèi)容緩存,,文件壓縮,,下載服務等,,功能十分強大,獲得好幾個PHP雜志的推薦獎,。),、phpMyAdmin 2.6.0-rc1、Perl 5.8.4,。其官方網(wǎng)站:http://appserv./ 3.XAMPP:XAMPP 是一個功能全面的 AMPP (Apache,、MySQL、PHP,、Perl)軟件包,,這是 Linux和Windows 平臺上可以使用的幾種非商業(yè) AMPP 中間件之一。采用這種緊密的集成,,XAMPP 可以運行任何程序:從個人主頁到功能全面的產(chǎn)品站點(雖然這僅僅用于開發(fā)目的,;出于安全考慮,XAMPP 還不適于用在產(chǎn)品服務器上),?;镜能浖ㄏ到y(tǒng)、編程和服務器軟件: Apache,, MySQL,, PHP,(在撰寫本文時版本為 4.3.8 和 5.0.1) Perl,, ProFTPD,,一個 FTP 服務器 ,OpenSSL,,可以支持安全套接字層,。 4.WAPM:WAPM是運行于Windows平臺的綜合網(wǎng)絡服務器系統(tǒng)。 它包含了以下組件: Apache2,,是互聯(lián)網(wǎng)最最最流行的WEB服務軟件,,用以提供基本的WEB服務功能,同時支持SSL,,GZIP,,LIC(IP同時連接數(shù)限制)功能; PHP4,PHP5,是互聯(lián)網(wǎng)最最最流行的動態(tài)網(wǎng)頁語言,,用以提供PHP語言的網(wǎng)絡應用程序開發(fā),,同時支持ZendOptimizer優(yōu)化功能和Zend加密功能,或者Turck MMCahe對PHP的加速,、優(yōu)化,、加密、動態(tài)緩存功能,; Tomcat4,,用以提供互聯(lián)網(wǎng)最最最熱門的JSP(JavaServer Pages)和Servlet(Java Servlet)的服務解析。 MySQL4,,用以提供互聯(lián)網(wǎng)最最最流行的SQL數(shù)據(jù)庫功能,。 ◆管理復雜度 通常單獨管理LAMP和WAMP都是比較復雜的。隨著許多管理套件的出現(xiàn)二者的管理難點都趨于簡單化,。二者相比不相上下,。圖2 是wamp5在Windows下的管理界面。圖3 是XAMPP 在Linux下的管理界面,。 圖2 wamp5在Windows下的管理界面 圖3 是XAMPP 在Linux下的管理界面 ◆安全性能和執(zhí)行性能 在安全性能方面筆者認為Lamp目前高于WAMP系統(tǒng),,目前只有部分WAMP軟件包自動配置支持SSL連接(包括WAMP和XAMPP),所以XAMPP的官方提示是:所以出于安全考慮,,XAMPP 還不適于用在產(chǎn)品服務器上,。 執(zhí)行性能上Lamp目前高于WAMP系統(tǒng)。一些WAMP的軟件運行還需要模擬環(huán)境工具,,如cygwin是一個在windows平臺上運行的unix模擬環(huán)境,,cygnus當初首先把gcc,gdb,,gas等開發(fā)工具進行了改進,,使他們能夠生成并解釋win32的目標文件。然后,,他們要把這些工具移植到windows平臺上去,。他們基于win32 api寫了一個unix系統(tǒng)庫的模擬層。這樣,,只要把這些工具的源代碼和這個共享庫連接到一起,,就可以使用unix主機上的交叉編譯器來生成可以在windows平臺上運行的工具集。以這些移植到windows平臺上的開發(fā)工具為基礎,,cygnus又逐步把其他的工具(幾乎不需要對源代碼進行修改,,只需要修改他們的配置腳本)軟件移植到windows上來。這樣,,在windows平臺上運行bash和開發(fā)工具,、用戶工具,,感覺好像在unix上工作。使用cygwin會影響執(zhí)行性能,。 由于LAMP的不斷發(fā)展而產(chǎn)生的效果也正符合我們常說的蝴蝶效應,,就是當某個地方的蝴蝶扇動了一下的翅膀,卻可能影響全球的氣候,。自從微軟推出MSDE后,,不但沒有遏制LAMP的發(fā)展勢頭,反而使LAMP又演化出了WAMP和WIMP(Windows+IIS+MySQL+PHP)以及MMAP (Mac OS+Apache+MySQL+PHP),。作為用戶來說我們歡迎WAMP的出現(xiàn)它提供了更多的選擇,。 |
|