lamp是什么意思?及LAMP优化技巧


LAMP是一个缩写 , 包括:Linux操作系统 , Apache网络服务器 , MySQL数据库 , Perl、PHP或者 Python 编程语言 。它指一组通常一起使用来运行动态网站或者服务器的开源软件 。
Linux:Linux 处在最低层 , 提供操作系统 。其他每个组件实际上也在 Linux 上运行 。但是 , 并不一定局限于 Linux , 如有必要 , 其他组件也可以在 Microsoft? 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 提供的一些特性的动态内容 。
这些开放源代码程序本身并不是专门设计成同另外几个程序一起工作的 , 但由于它们都是影响较大的开源软件 , 拥有很多共同特点 , 这就导致了这些组件经常在一起使用 。在过去的几年里 , 这些组件的兼容性不断完善 , 在一起的应用情形变得更加普遍 。并且它们为了改善不同组件之间的协作 , 已经创建了某些扩展功能 。
目前 , 几乎在所有的Linux发布版中都默认包含了这些产品 。Linux操作系统、Apache服务器、MySQL数据库和Perl、PHP或者 Python语言 , 这些产品共同组成了一个强大的Web应用程序平台 。
随着开源潮流的蓬勃发展 , 开放源代码的LAMP已经与J2EE和.Net商业软件形成三足鼎立之势 , 受到整个IT界的关注 。越来越多的供应商、用户和企业投资者日益认识到 , 经过LAMP单个组件的开源软件组成的平台用来构建以及运行各种商业应用和协作构建各种网络应用程序变为一种可能和实践 , 变得更加具有竞争力 , 更加吸引客户 。LAMP无论是性能、质量还是价格都将成为企业、政府信息化所必须考虑的平台 。
LAMP这个特定名词最早出现在1998年 。当时 , Michael Kunze为德国计算机杂志c't写作的一篇关于自由软件如何成为商业软件替代品的文章时 , 创建了LAMP这个名词 , 用来指代Linux 操作系统、Apache网络服务器、MySQL 数据库和PHP (Perl或Python)脚本语言的组合(由四种技术的开头字母组成) 。由于IT世界众所周知的对缩写的爱好 , Kunze提出的LAMP这一术语很快就被市场接受 。O'Reilly和MySQL AB更是在英语人群中推广普及了这个术语 。随之LAMP技术成为了开源软件业的一盏真正的明灯 。事实上 , LAMP , 正像一盏开源明灯指引着我们前进的方向!
[编译优化]
1、把基于文件的会话切换到基于共享内存的会话 。编译 PHP 时采用 --with-mm 选项 , 在 php.ini 中设置 set session.save_handler=mm。这个简单的修改能让会话管理时间缩短一半 。
2、采用最新版本的 Apache  , 并把 PHP 编译其中 , 或者采用 DSO 模式 , 不要采用 CGI 方式 。
3、编译 PHP 时 , 建议采用如下的参数:
--enable-inline-optimization --disable-debug
[配置优化]
4、修改 httpd.conf :
# 关闭 DNS lookups , PHP 脚本只拿 IP 地址
HostnameLookups off
5、如果网络拥挤 , CPU 资源不够用 , 采用 PHP 的 HTML 压缩功能:
output_handler = ob_gzhandler
PHP 4.0.4 的用户请不要使用 , 因为存在内存泄漏问题 。
6、修改 httpd.conf 中的 SendBufferSize 为你最大的页面文件的大小 。加大内核的 TCP/IP 写缓冲大小 。
7、采用数据库的持久连接时 , 不要把 MaxRequestsPerChild 设置得太大 。
[第三方软件优化]
8、如果喜欢从修改 Apache 源码入手 , 可以安装 lingerd 。在页面产生和发送后 , 每个 Apache 进程都会浪费一段时光在客户连接上 , Lingerd 能接管这项工作 , 让 Apache 迅速服务下一个客户请求 。
9、如果你足够勇敢的话 , 还可以采用 Silicon Graphics 的 Accelerated Apache 补丁 。这个工程能使 Apache 1.3 快 10 倍 , 使 Apache 2.0 快 4 倍 。
安装一个 PHP 缓冲产品能提升 25-100% 的性能 。
[Linux系统优化]
1.清理服务器磁盘碎片:
不论Linux文件系统采用什么文件格式(ext3、JFS、XFS、ReiserFS )、何种类型的硬盘(IDE 、SCSI) , 随着时间的推移文件系统都会趋向于碎片化 。ext3、JFS等高级文件系统可以减少文件系统的碎片化 , 但是并没有消除 。在繁忙的数据库服务器中 , 随着时间的过去 , 文件碎片化将降低硬盘性能 , 硬盘性能从硬盘读出或写入数据时才能注意到 。时间长了会发现每个磁盘上确实积累了非常多的垃圾文件 , 释放磁盘空间可以帮助系统更好地工作 。Linux最好的整理磁盘碎片的方法是做一个完全的备份 , 重新格式化分区 , 然后从备份恢复文件 。但是对于7×24小时工作关键任务服务器来说是比较困难的 。Kleandisk是一个高效的磁盘清理工具 , 它能把磁盘上的文件分成不同的"组",比如把所有的"core"文件归成一组(Group) , 这样要删除所有core文件时只要删除这个组就行了 。core文件是当软件运行出错时产生的文件 , 它对于软件开发人员比较有用 , 对于其他用户(比如电子邮件服务器)却没有任何意义 。因此 , 如果没有软件开发的需要 , 见到core文件就可以将其删除 。
2、开启硬盘DMA
现在使用的IDE硬盘基本支持DMA66/100/133(直接内存读取)但是Linux发行版本安装后一般没有打开 , 可以 /etc/rc.d/rc.local 最後面加上一行: /sbin/hdparm -d1 –x66 -c3 -m16 /dev/hda 这样以后每次开机 , 硬盘的 DMA 就会开启 , 不必每次手动设定 。添加前后你可以使用命令:hdparm -Tt /dev/hda 来测试对比一下 。
3、调整缓冲区刷新参数
【lamp是什么意思?及LAMP优化技巧】Linux内核中 , 包含了一些对于系统运行态的可设置参数 。缓冲刷新的参数可以通过调整 /proc/sys/vm/bdflush文件来完成 , 这个文件的格式是这样的: