主页 topics lamp stack 什么是 LAMP 软件栈?
了解为何目前一些最受欢迎的开源 Web 应用在经过时间检验的 Linux、Apache、MySQL 和 PHP 软件栈上运行。
蓝黑背景
什么是 LAMP 软件栈?

您可能听说过有关 LAMP 软件栈的一些信息。 这不足为奇,因为目前一些最受欢迎的开源 Web 应用都在 LAMP 上运行,例如 WordPress 和 Drupal

但 LAMP 值得称道的优点还有很多。 它是面向 Web 的首批开源软件栈之一,目前仍然是交付 Web 应用的最常用方法之一。 在您的职业生涯中,更新或托管现有应用时,您可能会看到该软件栈被广泛而频繁地使用。 许多人认为它是开发新的定制 Web 应用的首选平台。 

稳定、简单、强大 - 这些词最常用于描述 LAMP 的特点。 所有这些特点都使 LAMP 值得学习;这种技能可以让任何开发人员的简历增色不少。

LAMP 软件栈组件

LAMP 是 Linux、Apache、MySQL 和 PHP 的缩写。 它们共同提供了一套经过检验的软件,能够帮助交付高性能的 Web 应用。 每个组件都为该软件栈提供不可或缺的功能:

  • Linux:操作系统。 Linux 是自上世纪 90 年代中期兴起的免费开源操作系统 (OS)。 目前,它在全球拥有广泛的用户群,覆盖各行各业。 Linux 非常受欢迎,部分原因是因为它比其他操作系统更灵活,提供更多配置选项。

  • Apache:Web 服务器。 Apache Web 服务器通过 HTTP 处理请求并提供 Web 资产,以便公共域中的任何人都可以通过简单的 Web URL 访问该应用。 Apache 由开放社区开发和维护,是一种非常成熟、功能丰富的服务器,目前运行着互联网上相当大一部分的网站。 

  • MySQL:数据库。 MySQL 是一个用于存储应用数据的开源关系数据库管理系统。  通过使用 MySQL,可将所有信息以易于使用 SQL 语言查询的格式进行存储。 如果您要处理一个结构良好的业务领域,并且要将该结构转换为后端,那么 SQL 是理想选择。 MySQL 甚至适合运行大型复杂站点。 查看“SQL 与 NoSQL 数据库:有何区别?”,获取 SQL 和 NoSQL 数据库的更多信息。

  • PHP:编程语言。 PHP 开源脚本语言与 Apache 配合使用,帮助创建动态网页。 您无法使用 HTML 来执行动态过程,例如,从数据库中拉取数据。 要提供这种类型的功能,只需将 PHP 代码添加到要实现动态化的页面中即可。 

PHP 旨在提高效率。 它使编程更轻松、更有趣 - 您编写新代码后,点击刷新,就可以立即看到所产生的变更,而无需编译。 如果您愿意,可以用 Perl 或日益流行的 Python 语言取代 PHP。

LAMP 具有典型的分层架构,Linux 处于最低级别。 接下来便是 Apache 和 MySQL 层,最上面是 PHP。 虽然 PHP 名义上是顶层,也就是表示层,但 PHP 组件位于 Apache 中。

LAMP 软件栈的各元素如何协同工作

通过在较高层面查看 LAMP 软件栈的执行顺序,了解各元素如何相互协同。 当 Apache Web 服务器从用户的浏览器接收网页请求时,即启动流程。 如果请求针对 PHP 文件,Apache 就会将请求传递到 PHP,后者加载文件并执行文件中包含的代码。 PHP 还与 MySQL 通信,访存代码中引用的任何数据。 

然后,PHP 使用文件中的代码和来自数据库的数据,创建浏览器显示网页所需的 HTML。 LAMP 软件栈不仅能够有效处理静态网页,还能处理动态页面,在动态页面中,可根据日期、时间、用户身份和其他因素,每次加载时更改内容。 

运行文件代码后,PHP 会将生成的数据传回 Apache Web 服务器,以发送到浏览器。 它还可以将此新数据存储在 MySQL 中。 当然,所有这些操作都由在技术栈底层运行的 Linux 操作系统提供支持。

LAMP 软件栈的灵活性

虽然 LAMP 使用 Linux 作为操作系统,但您可将其他组件与其他操作系统配合使用,满足自己的特定需求。 例如,WAMP 软件栈使用 Microsoft Windows;MAMP 软件栈使用 Mac OS;WIMP 使用 Microsoft 的 Windows 和 Internet Information Services Web 服务器。 

因为 LAMP 都是开源的非专有软件,所以您可以避免被供应商锁定。 您可以灵活地为特定项目或业务需求选择合适的组件。

LAMP 还以其他方式提供灵活性。 Apache 的设计是模块化的,您会发现存在可用于许多不同扩展的现有可定制模块。 这些模块或用于支持其他语言,或用于认证,功能非常广泛。 

LAMP 的另一个优点是其安全架构和成熟的加密实践,它们已在企业中得到验证。

LAMP 软件栈和开发效率

LAMP 可以帮助您缩短开发时间。 由于 LAMP 是开源软件栈,已有十多年的历史,因此目前已形成牢固的 LAMP 生态系统。 您可以基于别人过去的工作,开发自己的成果。 在 Apache 模块中工作时,您可以使用 80% 的已有工作,定制最后那 20% 的部分,从而节省大量时间。

相关解决方案
LAMP 配置

在配置了 LAMP 软件栈的经典虚拟服务器上交付高性能 Web 应用。

探索 LAMP 配置
资源 什么是关系数据库?

关系数据库在通过键连接在一起的多个表中组织数据。 结构化查询语言 (SQL) 是用来与关系数据库交互的标准编程语言。

什么是 MEAN 堆栈?

MEAN 表示 MongoDB、Express.js、AngularJS 和 Node.js,是一个主要用于云就绪应用的端到端 JavaScript 堆栈。

采取下一步行动

准备好开始使用 LAMP 了吗? 这一简单教程将教您如何在虚拟私有云 (VPC) 上自动供应和配置 LAMP 软件栈,从创建 VPC 环境和供应虚拟服务器实例 (VSI),到安装 LAMP 软件栈以及托管、供应和配置 WordPress,皆囊括在内。 (需要一个 IBM Cloud 帐户。)

试用 LAMP 教程