什么是 LAMP 技术栈?

一名年轻女学生在大学大厅使用平板电脑的特写镜头

什么是 LAMP 技术栈?

LAMP 堆栈是一个流行的开源软件栈,用于构建和部署 Web 应用程序。LAMP 是该堆栈组件的缩写:Linux(操作系统)、Apache(HTTP 服务器)、MySQL(数据库)以及 PHP、Perl 或 Python(编程语言)。

您可能听说过 LAMP 堆栈。当今一些最流行的开源 Web 应用程序,例如 WordPress 和 Drupal,都是运行在 LAMP 堆栈上的。

但是 LAMP 的优点远不止于此。它是最早的开源 Web 软件栈之一,并且仍然是交付 Web 应用程序的最常用方式之一。它的使用如此广泛,以至于在您的职业生涯中,当您更新或托管现有应用程序时,很可能会经常接触到它。并且,许多人认为它是开发新的定制 Web 应用程序的首选平台。

稳定、简单、强大,这些是描述 LAMP 最常用的词语。所有这些都使得学习 LAMP 非常值得,也为任何开发者的简历增添了价值。

高速公路鸟瞰图

在云端保持清醒头脑 


获取每周 Think 时事通讯,了解有关在 AI 时代优化多云设置的专家指导。

LAMP 堆栈组件

LAMP 代表 Linux、Apache、MySQL 和 PHP。它们共同提供了一套经过验证的软件,用于交付高性能 Web 应用程序。每个组件都为该技术栈提供了关键功能:

  • Linux:操作系统。Linux 是一种自 20 世纪 90 年代中期以来就存在的免费开源操作系统 (OS)。如今,它拥有广泛的全球用户群,涵盖各个行业。Linux 很受欢迎,部分原因是它比其他操作系统提供更多的灵活性和配置选项。

  • Apache:网络服务器。Apache Web 服务器负责处理请求,并通过 HTTP 提供网页资源,使应用程序能够通过一个简单的网页 URL 向公共领域的任何人开放访问。由一个开放社区开发和维护的 Apache 是一款成熟且功能丰富的服务器,目前互联网中很大一部分网站都运行在它之上。

  • MySQL:数据库。MySQL 是一个开源的关系型数据库管理系统,用于存储应用程序数据。使用 MySQL,您可以将所有信息以一种便于使用 SQL 语言进行查询的格式进行存储。如果您要处理的业务领域结构严谨,而您又想将这种结构转换到后台,那么 SQL 就是一个不错的选择。MySQL 适用于运行大型复杂站点。有关 SQL 和 NoSQL 数据库的更多信息,请参阅“SQL vs. NoSQL Databases: What's the Difference?”

  • PHP:编程语言。PHP 开源脚本语言与 Apache 协同工作,帮助您创建动态网页。您无法使用 HTML 来执行诸如从数据库中提取数据这样的动态处理过程。要提供此类功能,只需将 PHP 代码放入页面中您希望其变为动态的部分即可。

PHP 专为提高效率而设计。它让编程变得更简单,也更有趣一些,因为它允许编写新代码、点击刷新,就能立即看到结果性的变化,而无需进行编译。如果愿意,可以将 PHP 换成 Perl 或日益流行的 Python 语言。

LAMP 采用经典的分层架构,Linux 位于最底层。下一层是 Apache 和 MySQL,然后是 PHP。尽管 PHP 名义上位于顶部或表示层,但 PHP 组件位于 Apache 内部。

应用程序开发

开启旅程:云端企业应用程序开发

在本视频中,Peter Haumer 博士通过演示不同的组件和实践(包括 IBM Z Open Editor、IBM Wazi 和 Zowe),探讨了混合云环境中现代企业应用程序的开发现状。

LAMP 堆栈元素如何协同工作

从高层次来看,LAMP 堆栈的执行顺序展示了各个组件如何协同工作。该过程从 Apache Web 服务器接收用户浏览器发出的网页请求开始。如果请求的是 PHP 文件,Apache 会将请求传递给 PHP,PHP 会加载该文件并执行其中的代码。PHP 还会与 MySQL 通信,以获取代码中引用的任何数据。

随后,PHP 利用文件中的代码和数据库中的数据生成浏览器所需的 HTML,用于显示网页。LAMP 堆栈不仅高效处理静态网页,也能处理动态网页,其中的内容可能会因日期、时间、用户身份或其他因素而在每次加载时发生变化。

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

LAMP 堆栈灵活性

虽然 LAMP 使用 Linux 作为操作系统,但您也可以在其他操作系统上使用其余组件以满足特定需求。例如,有 WAMP 堆栈使用 Microsoft Windows;MAMP 使用 Mac OS;甚至还有 WIMP,使用 Windows 和 Microsoft 的 Internet Information Services (IIS) Web 服务器。

由于 LAMP 完全开源且非专有,您可以避免被锁定在单一厂商环境中。您可以灵活地为特定项目或业务需求选择合适的组件。

LAMP 在其他方面还提供了灵活性。Apache 采用模块化设计,您会发现现有的可定制模块可用于许多不同的扩展。这些模块涵盖从对其他编程语言的支持到身份验证功能等多方面内容。

LAMP 的另一个优势是其安全的架构和成熟的加密实践,这些在企业环境中已得到验证。

LAMP 堆栈和开发效率

LAMP 可以帮助您缩短开发时间。由于 LAMP 是一个开源软件栈,已经存在十多年,因此如今已经形成了一个庞大的 LAMP 生态系统。您可以在别人过去的工作基础上进行开发,并将其改造成自己的版本。在一个 Apache 模块中工作,该模块已经帮您完成了 80% 的工作,再自定义剩下的 20%,从而节省大量时间。

相关解决方案
Enterprise Application Service for Java

借助 IBM 的全托管服务,轻松实现 Java 应用程序工作量的现代化。

    深入了解 Enterprise Application Service for Java
    应用程序开发解决方案

    释放创新活力,助力团队快速实现现有应用程序的现代化,并交付新的云原生服务。

      深入了解应用程序开发解决方案
      云应用程序开发咨询

      云应用程序开发意味着一次构建、快速迭代和随处部署。

      深入了解云应用程序开发咨询服务
      采取后续步骤

      推动实现无缝现代化、快速部署和弹性提升。从旧版应用程序到云原生解决方案,IBM 助您构建一个灵活的高性能应用程序生态系统,以适应不断变化的业务需求。

        深入了解 Enterprise Application Service for Java 深入了解应用程序开发解决方案