LAMP介绍
LAMP是一个缩写,它指一组通常一起使用来运行动态网站或者服务器的
开源软件:
Linux,
操作系统;
Apache,网页服务器;
MySQL,数据库管理系统(或者数据库服务器);
PHP和有时
Perl或
Python,
脚本语言。
虽然这些开放源代码程序本身并不是专门设计成同另几个程序一起工作的,但由于它们的廉价和普遍,这个组合开始流行(大多数Linux发行版本捆绑了这些软件)。当一起使用的时候,它们表现的像一个具有活力的解决方案包。其他的方案包有苹果的WebObjects(最初是应用服务器),Java/J2EE和微软的.NET架构。
LAMP包的脚本组件中包括了CGIweb接口,它在90年代初期变得流行。这个技术允许网页浏览器的用户在服务器上执行一个程序,并且和接受静态的内容一样接受动态的内容。程序员使用脚本语言来创建这些程序因为它们能很容易有效的操作文本流,甚至当这些文本流并非源自程序自身时也是。正是由于这个原因系统设计者经常称这些脚本语言为胶水语言。
Michael Kunze在一篇为德国电脑杂志c't(1998,第12期,230页)而写的文章中使用了缩略语
LAMP。这篇文章意在展示一系列的自由软件成为了商业包的替换物。由于IT世界众所周知的对缩写的爱好,Kunze提出
LAMP这一容易被市场接受的术语来普及自由软件的使用。
举例来说,
Wikipedia,免费自由的百科全书,运行的一系列软件具有LAMP环境一样的特点。Wikipedia使用MediaWiki软件,主要在Linux下开发,由Apache HTTP服务器提供内容,在MySQL数据库中存储内容,PHP来实现程序逻辑。
经典LAMP网站架构分析
| System | Server | Storage | Script |
Yahoo | FreeBSD + Linux | Apache | MySQL | PHP |
Facebook | FreeBSD | Apache | MySQL + Memcached | PHP |
Wikimedia | Linux | Apache + Lighttpd | MySQL + Memcached | PHP |
Flickr | Redhat Linux | Apache | MySQL + Memcached | PHP+ Perl |
Sina | FreeBSD + Solaris | Apache + Nginx | MySQL + Memcached | PHP |
YouTube | Suse Linux | Apache + Lighttpd | MySQL | Python |