LAMP 软件栈

menu icon

LAMP 软件栈

了解为何目前一些最受欢迎的开源 Web 应用在经过时间检验的 LAMP 软件栈(Linux、Apache、MySQL 和 PHP)上运行。

什么是 LAMP 软件栈?

  • 了解有关在整个开源社区中使用的经过时间检验的技术栈的更多信息
  • 采用动态语言编程,快速开发程序并看到结果
  • 构建可定制的模块,以自己的方式创建和部署 Web 应用
  • 将有价值的新知识和技能添加到简历中

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

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

稳定、简单、强大 - 这些词最常用于描述 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 vs. NoSQL 数据库:有何区别?”,以了解有关 SQL 和 NoSQL 数据库的更多信息。
  • PHP:编程语言。PHP 开源脚本编制语言与 Apache 配合使用,帮助创建动态网页。 无法使用 HTML 来执行动态过程,例如从数据库中拉取数据。 要提供这种类型的功能,只需将 PHP 代码添加到要实现动态化的页面中。

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

 

LAMP 架构图

LAMP 架构

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

各元素如何协同工作

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

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

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

灵活性

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

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

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

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

高效率

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

LAMP 软件栈和 IBM

技术可以变得复杂,模糊软件的基本工作。 LAMP 软件栈则抓住根本,使您更接近于网页的技术本质及其工作原理。 您可能还说这是创建应用的单纯方法。 您拥有数据库、脚本编制语言以及为客户端提供服务的方法 - 这就是 LAMP。

立即注册并创建 IBM Cloud 帐户。