LAMP这个词的由来最早始于德国杂志“ct Magazine”,Michael Kunze在1990年最先把这些项目组合在一起创造了LAMP的缩写字。这些组件虽然并不是开开始就设计为一起利用的,但是,这些开源软件都可以很方便的随时得到并免费得到。这就导致了这些组件常常在一起利用。在过去的几年里,这些组件的兼容性不断完善,在一起的运用环境变得非常普便。为了改进不同组件之间的协作,已经创建了某些扩展功能。
目前,险些在所有的Linux发布版中都默认包含了“LAMP stack”的产品。这些产品组成了一个强大的Web运用程序平台。“LAMP stack”中的每一个组件都是一个FOSS(免费或者开源软件/Free or Open Source Software)的实例。FOSS方法的好处有三个方面。第一,FOSS软件的性子意味着运用程序可以免费下载,能够让更广泛的人们不用付费就可以利用这个运用软件。这种免费的办法对付广大用户特殊具有吸引力。这些用户如果不该用免费的软件就须要付费购买“专业”的商用软件工具。这在制作网站方面常日是一种昂贵的步骤。FOSS容许证是开放式的,因此对付基于FOSS技能的运用软件的利用和限定都非常少。不须要为软件的发布支付任何容许证费就可以开拓和运用基于LAMP的工程。因此,这对业余爱好者和专业职员都非常有吸引力。FOSS技能(包括LAMP)的增长和利用的紧张缘故原由是由于用户能够访问其资源,修复故障和改进运用软件的性能都非常随意马虎。与开源软件容许证结合在一起,这种方法为许多企业简化了开拓过程,并且为企业供应了专有软件或者商业软件的限定中所没有的灵巧性。
二、WAMP的涌现
以前微软和一些传统的开源厂商认为,是否利用他们的软件乃是一个非此即彼的决定,即:要么选择Microsoft Windows完备排他的.Net根本举动步伐;要么就运行LAMP运用程序栈,这包括Linux、MySQL数据库、Apache Web做事器和3种以P字母开始的程序措辞:Perl、Python和PHP。大略地说,前一种选择担保更随意马虎地管理,但价格更贵;后一种选择具有更低的本钱和更好的安全性,但代价是更高的繁芜性。但随着LAMP逐渐成熟,LAMP也悄悄地蜕变出了WAMP。这是一种中间路线:称之为WAMP(Windows、Apache、MySQL和Perl/Python/PHP)。现在已经有越来越多的IT用户认为,这种办法可以供应两个阵营中最好的东西。
三、WAMP和LAMP 平台的组成
WAMP和LAMP 平台由几个组件组成,呈分层构造。每一层都供应了全体软件栈的一个关键部分:
•Linux和windows:Linux和windows 处在最低层,供应操作系统。其他每个组件实际上也在其上运行。但是,并不一定局限于Linux和windows,如有必要,其他组件包括: Mac OS X 或 UNIX。
•Apache:次低层是 Apache,它是一个 Web 做事器。Apache 供应可让用户得到 Web 页面的机制。Apache 是一款稳定的、支持关键任务的做事器,Internet 上超过 65% 的网站都利用它作为 Web 做事器。PHP 组件实际上是在 Apache 中,动态页面可以通过 Apache 和 PHP 创建。
•MySQL:MySQL 供应 LAMP 系统的数据存储端。有了 MySQL,便可以得到一个非常强大的、适宜运行大型繁芜站点的数据库。在 Web 运用程序中,所有数据、产品、帐户和其他类型的信息都存放在这个数据库中,通过 SQL 措辞可以很随意马虎地查询这些信息。
•PHP:PHP 是一门大略而有效的编程措辞,它像是粘合剂,可以将 LAMP 系统所有其他的组件粘合在一起。您可以利用 PHP 编写能访问 MySQL 数据库中的数据和 Linux 供应的一些特性的动态内容。
•Perl:Perl 是一种脚本措辞。这表示它并不编译成可实行程序,而是在运行时进行阐明的一组指令(脚本)。 Perl 是代表“实际抽取和报告措辞”(practical extraction and report language) 的字首组合词。Perl 被誉为措辞中的“瑞士军刀”。它功能强大且非常灵巧。措辞学家 Larry Wall 在廿世纪八十年代后期在 NASA 担当系统管理员时开拓了 Perl。他创建 Perl 的目的是使构建报告的任务变得更大略。 Perl 现在用来实行许多任务。它大概是用于在 Web 上进行 CGI(公共网关接口)编程最盛行的措辞。其缘故原由便是 Perl 是一种功能非常强大的文本处理器,而 Web 编程紧张便是文本处理。其余,利用 Perl 常日比利用 C/C++、Java 或 Tcl 更大略,而且它比 Python 更早涌现。Perl被称为是一种“胶水措辞”。所谓胶水措辞,也便是说它是可以用来将许多元素连接在一起的措辞。
•Python:Python一种交互式面向工具的阐明型编程措辞。 Python利用非常清晰的语法实现非常强大的功能。它具有模块、类、意外处理以及非常高等别的动态数据类型和动态定义。并且,它具有接口和库函数供多种系统调用。内建模块还可以利用C或C++措辞方便地编写。对付用户界面的编程,Python同样能够胜任。 Python可以运行在Linux 、UNIX、Windows、DOS、OS/2、Mac以及Amiga等等多种环境下。 Python虽然有版权,但完备可以免费利用和分发,乃至是为了商业用场。
WAMP和LAMP 平台由几个组件组成,呈分层构造如图1 。
四、Lamp和wamp的比拟
◆安装繁芜度
早期安装一个LAMP系统是比较卖力的,随着Linux的遍及现在安装一个LAMP系统变得比较大略其余许多Linux发行版本(Redhat 、Debian)安装时可以自动配置Apache、php、mysql等组件。比较反而Wamp安装较为繁芜,不过现在有多各类WAMP软件包可以下载和安装在Windows做事器上。传统情形下,AMPP -- Apache、MySQL、PHP 和 Perl -- 都因此单独产品的形式进行安装和配置。将它们集成到中间件软件中的承诺使得开源项目的开拓相对付 J2EE运用程序的开拓来说更具竞争力,至少对付底层的运用程序来说是如此。紧张包括以下软件:
1.Wamp5: WAMP5 该软件在你的系统上自动地安装Apache, PHP5, 和MySQL。该软件配以一个以系统托盘图标运行的做事管理器,以及一个插件,现在许可你的在同一个做事器上运行PHP4.3.9和PHP5.0.2。 其官方网站: http://www.wampserver.com/
2.AppServ:是 PHP 网页架站工具组合包,泰国的作者将一些网路上免费的架站资源重新包装成单一的安装程序,以方便初学者快速完成架站,AppServ 4.0所包含的软件有:PHP 4.3.8、Apache 1.3.31、MySQL 4.0.20、Zend Optimizer 2.5.3(Zend Performance是老牌的PHP加速/优化软件,依托于PHP领域最有名的Zend公司。目前已经推出4.0版本,它可以为PHP运用供应程序加速,内容缓存,文件压缩,下载做事等,功能十分强大,得到好几个PHP杂志的推举奖。)、phpMyAdmin 2.6.0-rc1、Perl 5.8.4。其官方网站:http://appserv.sourceforge.net/
3.XAMPP:XAMPP 是一个功能全面的 AMPP (Apache、MySQL、PHP、Perl)软件包,这是 Linux和Windows 平台上可以利用的几种非商业 AMPP 中间件之一。采取这种紧密的集成,XAMPP 可以运行任何程序:从个人主页到功能全面的产品站点(虽然这仅仅用于开拓目的;出于安全考虑,XAMPP 还不适于用在产品做事器上)。基本的软件包包括系统、编程和做事器软件: Apache, MySQL, PHP,(在撰写本文时版本为 4.3.8 和 5.0.1) Perl, ProFTPD,一个 FTP 做事器 ,OpenSSL,可以支持安全套接字层。
4.WAPM:WAPM是运行于Windows平台的综合网络做事器系统。 它包含了以下组件: Apache2,是互联网最最最盛行的WEB做事软件,用以供应基本的WEB做事功能,同时支持SSL,GZIP,LIC(IP同时连接数限定)功能; PHP4,PHP5,是互联网最最最盛行的动态网页措辞,用以供应PHP措辞的网络运用程序开拓,同时支持ZendOptimizer优化功能和Zend加密功能,或者Turck MMCahe对PHP的加速、优化、加密、动态缓存功能; Tomcat4,用以供应互联网最最最热门的JSP(JavaServer Pages)和Servlet(Java Servlet)的做事解析。 MySQL4,用以供应互联网最最最盛行的SQL数据库功能。
◆管理繁芜度
常日单独管理LAMP和WAMP都是比较繁芜的。随着许多管理套件的涌现二者的管理难点都趋于大略化。二者比较不相上下。图2 是wamp5在Windows下的管理界面。图3 是XAMPP 在Linux下的管理界面。
wamp5在Windows下的管理界面
XAMPP 在Linux下的管理界面
◆安全性能和实行性能
在安全性能方面笔者认为Lamp目前高于WAMP系统,目前只有部分WAMP软件包自动配置支持SSL连接(包括WAMP和XAMPP),以是XAMPP的官方提示是:以是出于安全考虑,XAMPP 还不适于用在产品做事器上。
实行性能上Lamp目前高于WAMP系统。一些WAMP的软件运行还须要仿照环境工具,如cygwin是一个在windows平台上运行的unix仿照环境,cygnus当初首先把gcc,gdb,gas等开拓工具进行了改进,使他们能够天生并阐明win32的目标文件。然后,他们要把这些工具移植到windows平台上去。他们基于win32 api写了一个unix系统库的仿照层。这样,只要把这些工具的源代码和这个共享库连接到一起,就可以利用unix主机上的交叉编译器来天生可以在windows平台上运行的工具集。以这些移植到windows平台上的开拓工具为根本,cygnus又逐步把其他的工具(险些不须要对源代码进行修正,只须要修正他们的配置脚本)软件移植到windows上来。这样,在windows平台上运行bash和开拓工具、用户工具,觉得彷佛在unix上事情。利用cygwin会影响实行性能。
由于LAMP的不断发展而产生的效果也正符合我们常说的蝴蝶效应,便是当某个地方的蝴蝶扇动了一下的翅膀,却可能影响环球的景象。自从微软推出MSDE后,不但没有遏制LAMP的发展势头,反而使LAMP又蜕变出了WAMP和WIMP(Windows+IIS+MySQL+PHP)以及MMAP (Mac OS+Apache+MySQL+PHP)。作为用户来说我们欢迎WAMP的涌现它供应了更多的选择。