LAMP的介绍

运维 系统运维
LAMP是什么?很多人都在问。LAMP指的是Linux、Apache、Mysql、PHP/Perl/Python的一组组合软件,它用来搭建动态或者服务器。本身具有独立的几种程序,却由于共同的功能组合在一起,形成高度兼容web应用平台。本文讲述的是LAMP的介绍。

LAMP的概括

 

[[19730]]

       LampLinux+Apache+Mysql+Perl/PHP/Python一组常用来搭建动态网站或者服务器的开源软件,本身都是各自独立的程序,但是因为常被放在一起使用,拥有了越来越高的兼容度,共同组成了一个强大的Web应用程序平台。随着开源潮流的蓬勃发展,开放源代码的LAMP已经与J2EE和.Net商业软件形成三足鼎立之势,并且该软件开发的项目在软件方面的投资成本较低,因此受到整个IT界的关注。从网站的流量上来说,70%以上的访问流量是LAMP来提供的,LAMP是最强大的网站解决方案.

 

  LAMP的起源

  LAMP这个特定名词最早出现在1998年。当时,Michael Kunze为德国计算机杂志c't写作的一篇关于自由软件如何成为商业软件替代品的文章时,创建了LAMP这个名词,用来指代Linux 操作系统、Apache网络服务器、MySQL 数据库和PHP (Perl或Python)脚本语言的组合(由四种技术的开头字母组成)。由于IT世界众所周知的对缩写的爱好,Kunze提出的LAMP这一术语很快就被市场接受。O'Reilly和MySQL AB更是在英语人群中推广普及了这个术语。随之LAMP技术成为了开源软件业的一盏真正的明灯。

  目前,几乎在所有的Linux发布版中都默认包含了“LAMP stack”的产品。这些产品组成了一个强大的Web应用程序平台。“LAMP stack”中的每一个组件都是一个FOSS(免费或者开源软件/Free or Open Source Software)的实例。FOSS方法的好处有三个方面。第一,FOSS软件的性质意味着应用程序可以免费下载,能够让更广泛的人们不用付费就可以使用这个应用软件。这种免费的方式对于广大用户特别具有吸引力。这些用户如果不使用免费的软件就需要付费购买“专业”的商用软件工具。这在制作网站方面通常是一种昂贵的步骤。FOSS许可证是开放式的,因此对于基于FOSS技术的应用软件的使用和限制都非常少。不需要为软件的发布支付任何许可证费就可以开发和应用基于LAMP的工程。因此,这对业余爱好者和专业人员都非常有吸引力。FOSS技术(包括LAMP)的增长和使用的主要原因是因为用户能够访问其资源,修复故障和改善应用软件的性能都非常容易。与开源软件许可证结合在一起,这种方法为许多企业简化了开发过程,并且为企业提供了专有软件或者商业软件的限制中所没有的灵活性。

  LAMP的平台组成

  LAMP 平台由几个组件组成,呈分层结构。每一层都提供了整个软件栈的一个关键部分:

  Linux和windows:Linux和windows 处在最低层,提供操作系统。其他每个组件实际上也在其上运行。但是,并不一定局限于Linux和windows,如有必要,其他c操作系统包括: Mac OS X 或 UNIX。

  Apache:次低层是 Apache,它是一个 Web 服务器。Apache 提供可让用户获得 Web 页面的机制。Apache 是一款稳定的、支持关键任务的服务器,Internet 上超过 65% 的网站都使用它作为 Web 服务器。PHP 组件实际上是在 Apache 中,动态页面可以通过 Apache 和 PHP 创建。

[[19731]]

 

  lampMySQL: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虽然有版权,但完全可以免费使用和分发,甚至是为了商业用途。

  LAMP的安装

  早期安装一个LAMP系统是比较复杂的,随着Linux的普及现在安装一个LAMP系统变得比较简单另外许多Linux发行版本(Redhat 、Debian)安装时可以自动配置Apache、php、mysql等组件。

#p#

  LAMP的优化

  硬件优化

  1、升级硬件的一般规则:对于 PHP 脚本而言,主要的瓶颈是 CPU ,对于静态页面而言,瓶颈是内存和网络。一台 400 Mhz 的普通奔腾机器所下载的静态页面就能让 T3 专线(45Mbps)饱和。

  2、采用 hdparm 来优化磁盘,一般能提升 IDE 磁盘读写性能 200%,但是对 SCSI 硬盘也有效果。(不同类型的硬盘对比)

  策略优化

  3、Apache 处理 PHP 脚本的速度要比静态页面慢 2-10 倍,因此尽量采用多的静态页面,少的脚本。

  4、PHP 脚本如果不做缓冲,每次调用都需要编译,因此,安装一个 PHP 缓冲产品能提升 25-100% 的性能。

  5、如果你采用了 Linux 系统,建议升级内核到 2.4,因为静态页面由内核服务。

  6、另外一项缓冲技术是把不常修改的 PHP 页面采用 HTML 缓冲输出。

  7、不要在 Web 服务器上运行 X-Windows ,关掉没有必要运行的进程。

  8、如果能够用文本就不要用图像,尽量减小图片的尺寸。

  9、分散负载,把数据库服务器放到另外的机器上去。采用另外低端的机器服务图片和 HTML 页面,如果所有的静态页面在另外一台服务器上处理,可以设置 httpd.conf 中的 KeepAlives 为 off ,来减少断开连接的时间。

  10、以上所有的方法都是针对单机而言的,如果你觉得系统还是不够快,可以采用集群,负载均衡,缓冲技术。采用 Squid 作为缓冲,配置 Squid 的方法。

  编译优化

  11、把基于文件的会话切换到基于共享内存的会话。编译 PHP 时采用 --with-mm 选项,在 php.ini 中设置 set session.save_handler=mm 。这个简单的修改能让会话管理时间缩短一半。

  12、采用最新版本的 Apache ,并把 PHP 编译其中,或者采用 DSO 模式,不要采用CGI方式。

  13、编译 PHP 时,建议采用如下的参数:

  --enable-inline-optimization --disable-debug

  配置优化

  14、修改 httpd.conf :

  # 关闭 DNS lookups,PHP 脚本只拿 IP 地址

  HostnameLookups off

  15、如果网络拥挤,CPU 资源不够用,采用 PHP 的 HTML 压缩功能:

  output_handler = ob_gzhandler

  PHP 4.0.4 的用户请不要使用,因为存在内存泄漏问题。

  16、修改 httpd.conf 中的 SendBufferSize 为你最大的页面文件的大小。加大内核的 TCP/IP 写缓冲大小。

  17、采用数据库的持久连接时,不要把 MaxRequestsPerChild 设置得太大。

  第三方软件优化

  18、如果喜欢从修改 Apache 源码入手,可以安装 lingerd。在页面产生和发送后,每个 Apache 进程都会浪费一段时光在客户连接上,Lingerd 能接管这项工作,让 Apache 迅速服务下一个客户请求。

  19、如果你足够勇敢的话,还可以采用 Silicon Graphics 的 Accelerated Apache 补丁。这个工程能使 Apache 1.3 快 10 倍,使 Apache 2.0 快 4 倍。

  安装一个 PHP 缓冲产品能提升 25-100% 的性能。

【编辑推荐】

  1. LAMP技术精解
  2. 调优LAMP的5种简单方法
  3. 使用CentOS源安装LAMP全过程
责任编辑:zhaolei 来源: baidu
相关推荐

2011-03-11 09:35:01

LAMP介绍

2011-03-18 09:35:50

lamp

2011-03-11 13:58:54

2011-03-18 09:56:20

lamp

2011-03-14 13:51:14

LAMP配置

2011-03-09 10:55:33

LAMP优化技巧

2011-03-10 10:09:33

LAMP优化

2011-03-23 14:09:38

2011-03-22 15:30:51

LAMP

2011-03-18 10:06:48

LAMP组成

2011-03-11 16:54:47

LAMPphpMyAdmin

2011-03-23 09:40:34

lampsolutions

2011-03-09 10:39:13

LAMP简介

2011-03-10 15:44:18

CentOSLAMP安装

2011-03-10 15:44:18

CentOSLAMP安装

2011-03-09 15:07:48

LAMP网站架构

2011-03-21 10:15:07

LAMPLAMP安装LAMP配置

2011-03-09 16:16:54

CentOSLAMP

2011-03-10 10:09:09

UbuntuLAMP搭建

2011-03-09 15:13:00

UbuntuLAMP配置
点赞
收藏

51CTO技术栈公众号