什么是 LAMP 堆栈?

LAMP 堆栈是开发人员用来构建网站和 Web 应用程序的四种不同软件技术的捆绑包。LAMP 是操作系统 Linux、Web 服务器 Apache、数据库服务器 MySQL 和编程语言 PHP 的首字母缩写。所有这四种技术都是开源的,这意味着它们是由社区维护的,并且任何人都可以免费使用。开发人员可以使用 LAMP 堆栈来创建、托管和维护 Web 内容。它是一种流行解决方案,可为您当今常用的许多网站提供支持。

为什么 LAMP 堆栈非常重要?

Web 开发人员选择 LAMP 堆栈来构建 Web 应用程序的原因如下。 

成本

所有 LAMP 技术都是开源的,这意味着任何开发人员或公司都可以使用它们而不需要支付许可费用。您可以免费下载操作系统、Web 服务器、数据库和脚本语言,而不必购买专有的堆栈组件。这可降低构建 Web 应用程序的成本。

效率

建立新的 Web 开发堆栈需要对不同的框架、模块、库和工具进行严格的测试。而另一方面,LAMP 堆栈则是一种久经考验的 Web 开发解决方案。Web 开发人员可以确定应用程序开发的优先级并加快其开发速度,从而将精力集中在他们正在构建的内容上,而不是如何构建上。

维护

来自世界各地的软件专家可以通过更改、评论和审查公开提供的源代码,为 LAMP 堆栈技术的发展做出贡献。他们定期维护和更新各项技术,以使这些技术保持相关性和安全性。 

支持

流行的开源技术(如 LAMP 堆栈)可以获得庞大的全球 IT 社区的支持。因此,LAMP 堆栈用户可以更轻松地在公共 IT 论坛上查找信息。Web 开发人员可以参考示例代码,或使用开源社区创建的已测试插件。 

灵活性

LAMP 堆栈可为 Web 开发人员提供可靠性和灵活性。虽然 LAMP 架构为每一层指定了软件组件,但开发人员可以根据需要替换它们。例如,开发人员可以使用除 Linux 之外的其他操作系统作为堆栈基础。

LAMP 堆栈的用途是什么?

LAMP 堆栈用于后端或服务器端开发。后端应用程序是在对最终用户隐藏的环境中运行的软件。后端应用程序由以下部分组成:

  • 数据处理软件 
  • 数据库组件
  • 代码中的业务逻辑 
  • 用于与其他应用程序通信的 API 

在您浏览器上显示的网页称为前端应用程序。当您与页面进行交互(如通过单击某一按钮)时,您的浏览器将与后端应用程序进行通信,以检索所需信息。

开发人员使用 LAMP 堆栈来创建静态和动态 Web 内容。

静态网页

来自 Web 服务器的静态网页信息对所有用户而言都是相同的。例如,公司网站上的地址就是静态内容。Web 开发人员使用 HTML 和 CSS 编程语言创建静态网页,并将它们以文件形式存储在 Web 服务器应用程序中。 

动态网页

动态网页包含的信息根据查看网页或 Web 应用程序的用户而变化。例如,根据您的位置而变化的网站消息就是动态内容。Web 服务器通过处理业务逻辑或从数据库中检索数据来提供动态网站。

 

什么是 LAMP 架构?

软件堆栈是一组用于构建、管理及运行应用程序的分层工具、库、编程语言和技术。该堆栈由多个软件组件组成,这些软件组件以不同方式为应用程序提供支持,如视觉呈现、数据库、联网和安全性。 

同样,LAMP 架构由四种软件技术组成,这些技术在幕后协同工作,以创建可运行的 Web 应用程序。它描述了每种 Web 开发技术如何在计算机服务器中相互交互。LAMP 架构由以下各层组成。

Linux

Linux 是一种开源操作系统,您可以安装和配置该操作系统,以满足不同的应用程序要求。Linux 位于 LAMP 堆栈的第一层,为上层的其他组件提供支持。

Apache

Apache 是一种开源 Web 服务器,构成了 LAMP 堆栈的第二层。Apache 模块使用 HTTP(它是一种以纯文本传输网站信息的互联网协议)存储网站文件并与浏览器交换信息。例如,当浏览器请求网页时,Apache HTTP 服务器将执行以下操作:

  1. 接收请求
  2. 处理请求并查找需的页面文件
  3. 将相关信息发送回浏览器

MySQL

MySQL 是一种开源关系数据库管理系统,是 LAMP 堆栈的第三层。LAMP 模型使用 MySQL 来存储、管理和查询关系数据库中的信息。例如,开发人员存储应用程序数据,如客户记录、销售和库存。当用户搜索信息时,Web 服务器将查询 MySQL 中存储的数据。查询是指使用 SQL 语言操纵关系数据库中的数据的特殊指令。

PHP

PHP 代表 PHP: Hypertext Preprocessor(即超文本预处理器),它是 LAMP 堆栈的第四层,也是最后一层。它是一种脚本语言,允许网站运行动态进程。动态进程涉及软件中不断变化的信息。Web 开发人员将 PHP 编程语言嵌入 HTML 中,以便在网站上显示实时或更新的信息。他们使用 PHP,使 Web 服务器、数据库和操作系统能够统一处理来自浏览器的请求。 

HTML 与 PHP 的比较

Web 开发人员使用 HTML 进行前端开发,如设计网页的布局。而对于 PHP,Web 开发人员则使用它来确定用户加载网页时某些组件的行为。例如,Web 开发人员使用 HTML 设计在线产品目录的图形布局。然后,他们使用 PHP 代码从后端服务器检索最新产品价格。

LAMP 堆栈的工作原理是什么?

Web 应用程序使用 LAMP 堆栈来响应 Web 浏览器的请求。Apache Web 服务器和 MySQL 数据库在 Linux 操作系统上运行,并使用 PHP 进行通信。 当您在浏览器中打开网页时,LAMP 堆栈将经历以下过程。

接收请求

Apache Web 服务器接收来自浏览器的传入请求。如果请求加载静态文件,Apache 服务器将直接使用相应内容进行响应。如果请求的是动态内容,则 Apache 服务器会将该请求传递给 PHP 组件。PHP 组件将查找并加载可以处理该请求的相应 PHP 文件。

处理请求

PHP 文件包含 PHP 函数,这些函数是用于生成动态内容的代码。PHP 组件可以处理这些 PHP 函数,如转换度量单位或创建销售图表。某些 PHP 函数可能需要数据库中的信息。在这种情况下,PHP 代码将从数据库中检索存储的信息,并使用这些信息来处理函数。 

返回响应

PHP 会将计算结果以 HTML 格式传递给 Web 服务器。同时,它还会将新数据存储在 MySQL 数据库中。Apache HTTP 服务器会将动态 HTML 结果发送到用户的浏览器。 

LAMP 的替代方案有哪些?

LAMP 替代方案或 LAMP 变体是一些后端开发技术,这些技术使用的组件不同于 LAMP 架构中指定的组件。例如,Web 开发人员可能会使用其他 Web 服务器而不是 Apache 来接收和处理来自前端应用程序的请求。某些 LAMP 替代方案可能会使用专有组件,如已获许可的操作系统。 

替代脚本语言

虽然 PHP 是 LAMP 堆栈的默认脚本语言,但开发人员可以将其替换为 Perl 或 Python。 

Perl

Perl 是一种编程语言,已经问世 30 多年。很多开发人员使用 Perl 进行 Web 开发,因为它可以很好地与数据库集成配合使用,并且包含很多有助于开发的框架。框架就是软件工具,其中包含经过充分测试的组件,可以加快应用程序开发速度。

Python

Python 是一种高级编程语言,用于构建不同类型的软件,包括 Web 应用程序。很多开发人员在 Web 开发中使用 Python,因为它简单易懂。

什么是 MEAN 堆栈?

MEAN 是 MongoDB、Express.js、Angular.js 和 Node.js 的首字母缩写。它是 LAMP 的一种替代方案,基于 JavaScript 技术构建。JavaScript 是一种用于后端和前端开发的编程语言。以下是 MEAN 堆栈组件的作用:

  • MongoDB 是一种可以很好地与 JSON 配合使用的数据库,后者是一种用于读取数据的 JavaScript。
  • Express.js 是一个框架,它提供了用于构建后端应用程序的开源工具。
  • Node.js 是一个运行 JavaScript 应用程序的平台。
  • Angular.js 是一个用于开发前端应用程序的开源框架。

MEAN 堆栈与 LAMP 堆栈的比较

MEAN 堆栈和 LAMP 堆栈都是绝佳的开源软件堆栈,分别适用于不同类型的 Web 应用程序。MEAN 堆栈适用于在前端涉及大量逻辑处理的 Web 应用程序。而 LAMP 堆栈则非常适用于处理流量大的大型复杂网站。例如,开发人员使用 MEAN 堆栈来构建视频流 Web 应用程序,而为电子商务 Web 应用程序选择 LAMP 堆栈。

亚马逊云科技如何支持 LAMP 堆栈开发?

您可以使用 Amazon Lightsail 在 AWS 上开发、部署和管理 LAMP 堆栈应用程序。借助 Lightsail,您可以执行以下操作:

  • 更快地部署 LAMP 堆栈应用程序。
  • 将您的项目与 90 多项 AWS 服务集成。
  • 通过升级和迁移到 Amazon Elastic Container Service (Amazon ECS) 来扩展 Lightsail 项目。

立即创建免费 AWS 账户,开始在 AWS 上使用 LAMP 堆栈。

AWS LAMP 堆栈后续步骤

查看其他与产品相关的资源
查看云端开发者工具服务的免费优惠 
注册免费账户

立即享受 AWS 免费套餐。 

注册 
开始在控制台中构建

在 AWS 管理控制台中开始构建。

登录