深入分析 LAMP 架构

运维 系统运维
在学习LAMP的同时,我们必须知道LAMP的构成和相应的工作原理,本文介绍下LAMP 架构!

 

[[20429]] 

图-LAMP

LAMP 架构具体内容如下:

  LAMP就是Linux Apache MySql Php的缩写,是目前非常强大的架站组合。

  如今,使用 LAMP(Linux®、Apache、MySQL 和 PHP/Perl)架构的应用程序不断被开发和部署。但是,服务器管理员对应用程序本身几乎没有控制能力,因为应用程序是别人编写的。这份共三部分的系列文章将讨论许多服务器配置问题,这些配置会影响应用程序的性能。第一篇文章讨论 LAMP 架构、一些性能度量技术以及一些基本的 Linux 内核、硬盘和文件系统调节。后续的文章将研究 Apache、MySQL 和 PHP 组件的调优。

  Linux、 Apache、MySQL 和 PHP(或 Perl)是许多 Web 应用程序的基础 —— 从 to-do 列表到 blog,再到电子商务站点。WordPress 和 Pligg 是两个支持大容量 Web 站点的常用软件包。这种架构简称为 LAMP。几乎每个 Linux 发布版都包含 Apache、MySQL、PHP 和 Perl,所以安装 LAMP 软件是非常容易的。

  安装的简便性使人误以为这些软件会自行顺利地运行,但是实际情况并非如此。最终,应用程序的负载会超出后端服务器自带设置的处理能力,应用程序的性能会降低。LAMP 安装需要不断监控、调优和评估。

  系统调优对于不同的人有不同的含义。本系列主要关注 LAMP 组件(Linux、Apache、MySQL 和 PHP)的调优。对应用程序本身进行调优是另一个复杂的问题。应用程序和后端服务器之间存在一种共生关系:未能适当调优的服务器甚至会使最好的应用程序在负载之下崩溃,而借助充分的调优,完全可以避免编写得很糟糕的应用程序使服务器缓慢如牛。幸运的是,正确的系统调优和监视可以指出应用程序中的问题。

#p#

  LAMP 架构

  对任何系统进行调优的第一步都是了解它的工作原理。按照最简单的形式,基于 LAMP 的应用程序是用 PHP 这样的脚本语言编写的,它们作为 Linux 主机上运行的 Apache Web 服务器的一部分运行。

  PHP 应用程序通过请求的 URL、所有表单数据和已捕获的任意会话信息从客户机获得信息,从而确定应该执行什么操作。如有必要,服务器会从 MySQL 数据库(也在 Linux 上运行)获得信息,将这些信息与一些 Hypertext Markup Language(HTML)模板组合在一起,并将结果返回给客户机。当用户在应用程序中导航时,这个过程重复进行;当多个用户访问系统时,这个过程会并发进行。但是,数据流不是单向的,因为可以用来自用户的信息更新数据库,包括会话数据、统计数据(包括投票)和用户提交的内容(比如评论或站点更新)。除了动态元素之外,还有静态元素,比如图像、JavaScript 代码和层叠样式表(CSS)。

#p#[[20430]]

 

  LAMP 的变体

  LAMP 最初是指 Linux、Apache、MySQL 和 PHP(或 Perl)。但是,如果管理员不擅长 Linux,那么可以在 Microsoft® Windows® 上运行 Apache、MySQL 和 PHP,这并非一种少见的情况。同样,也可以将 Apache 换成别的系统,比如 lighttpd,产生的仍然是 LAMP 风格的系统,但是首字母缩写不再是 LAMP 了。也可以改用另一种开放源码数据库(比如 PostgreSQL 或 SQLite)、商业数据库(比如 IBM® DB2®)或者免费的商业引擎(比如 IBM DB2 Express-C)。

  本文主要关注传统的 LAMP 架构,因为这种架构是最常见的,而且它的组件都是开放源码的。

  在研究 LAMP 系统中的请求流之后,就来看看可能出现性能瓶颈的地方。数据库提供许多动态信息,所以数据库对查询的响应延迟都会反映在客户机中。Web 服务器必须能够快速地执行脚本,还要能够处理多个并发请求。最后,底层操作系统必须处于良好的状态才能支持应用程序。通过网络在不同服务器之间共享文件的其他设置也可能成为瓶颈。

通过文章的主观分析,我们就LAMP得出结论:LAMP架构有Apache、MySQL 和 PHP等。

【编辑推荐】

  1. LAMP必须是Web开发最流行的工具
  2. LAMP系列之源码级别研究Apache
  3. 精简的LAMP环境搭建
  4. 学习 Flickr 的 基于 LAMP 的容量规划经验
  5. Redhat Linux AS4下的LAMP与Discuz装置
  6. lamp solutions
  7. LAMP的安装和配置讲解
责任编辑:赵鹏 来源: 网络转载
相关推荐

2011-09-13 09:08:22

架构

2010-09-07 14:21:22

PPPoE协议

2022-04-12 08:30:45

TomcatWeb 应用Servlet

2010-03-08 14:53:48

Linux分区

2011-09-01 13:51:52

JavaScript

2023-02-01 08:13:30

Redis内存碎片

2009-12-14 14:50:46

Ruby传参数

2009-06-10 18:12:38

Equinox动态化OSGi动态化

2009-12-16 16:39:01

Visual Stud

2022-08-30 07:00:18

执行引擎Hotspot虚拟机

2021-10-29 16:36:53

AMSAndroidActivityMan

2021-04-13 12:55:06

SpringMVC解析器接口

2015-08-03 09:54:26

Java线程Java

2018-10-25 15:24:10

ThreadLocal内存泄漏Java

2020-12-07 06:23:48

Java内存

2018-12-18 10:11:37

软件复杂度软件系统软件开发

2023-08-07 07:44:44

2013-11-14 17:02:41

Android多窗口

2009-07-03 11:14:57

2011-06-28 14:11:33

JavaScript
点赞
收藏

51CTO技术栈公众号