您需要了解的有关 LAMP 堆栈的所有信息

Web 开发或应用程序部署中使用了多种软件堆栈。 最受欢迎的组合之一是 LAMP . LAMP 的首字母缩写词代表 Linux、Apache、MySQL 和 PHP。

什么是 LAMP 堆栈?

LAMP 是 Linux、Apache、MySQL 和 PHP 的首字母缩写词。 它是当今 Web 开发中使用的流行软件堆栈。 我们经常使用 LAMP 等软件堆栈来构建特定的应用程序或服务。 例如,在应用程序的情况下,堆栈可以作为使其运行的基础。 

一个明显的例子是 WordPress,它需要 LAMP 堆栈的所有组件。 但是,WordPress 或任何其他应用程序必须使用 LAMP 堆栈并不是硬性规定。 存在不同的 LAMP 变体,例如 LEMP、LAPP、LEAP 等。

了解 LAMP 堆栈组件

与其他软件堆栈一样,LAMP 包括涵盖运行应用程序所需的各种核心领域的组件。 这些组件中的每一个都发挥着关键作用,同时将数据相互传递以发挥它们的作用。 让我们看一下LAMP中的功能角色。

Linux——操作系统

Linux的

Linux的 是 Apache 和 MySQL 的首选操作系统 (OS),因此 Linux 在 LAMP 堆栈中扮演核心角色也就不足为奇了。 这个类 Unix 的操作系统运行从超级计算机到智能手机的所有东西。 它是任何硬件设备中最关键的软件组件,因为如果没有操作系统,您将无能为力。

Linux 的开源性质意味着任何人都可以使用或修改它而无需支付许可费。 这一优势使 Linux 成为 网络托管服务商 谁想以可承受的价格提供托管计划。

Apache – 网络服务器

阿帕奇

Apache 是一个开源的 Web 服务器 在 Linux 上运行。 Web 服务器负责“监听”和“服务”。 每次它收到来自网络浏览器的请求时, 阿帕奇 将其传递给其他 LAMP 组件进行处理。 准备就绪后,Apache 将请求的页面发送到 Web 浏览器。

与 Linux 一样,Apache 是开源的,无需许可证即可免费使用。 Apache 是轻量级的,因此它不会在您的服务器上消耗太多资源。 其灵活的性质使其成为许多网络托管公司的首选之一。

MySQL——数据库引擎

MySQL的

数据库引擎是大多数现代计算系统的主力。 他们管理数据,使其可供应用程序使用,并提供用于管理该数据的工具。 数据库引擎有许多不同的形式。 有些是为特定任务(例如电子商务)而设计的,而另一些则是通用解决方案。

MySQL的 是一个关系数据库管理系统(RDBMS)。 关系数据库是 Web 应用程序中最常用的数据库类型。 它们易于使用并允许快速数据访问。

PHP – 脚本语言

PHP

PHP 是 Rasmus Lerdorf 在 1994 年创建的一种服务器端语言。您可以将其用作 Web 开发的脚本语言。 例如,PHP 与 HTML 和 CSS 一起为网站、Web 应用程序和其他在线服务创建动态内容。

PHP 是 LAMP 堆栈中使用的三种主要语言之一。 其他替代方案包括 Perl 和 Python。 通常,Web 应用程序的性质决定了 LAMP 堆栈中使用的脚本语言。

LAMP 堆栈的工作原理

LAMP 堆栈中的每个应用程序都提供一组特定的服务,有助于实现更高级别的功能。 最常见的是,此功能是创建一个能够支持各种应用程序的 Web 服务器。

首先,Apache 接收来自网络浏览器的请求。 它将请求传递给 Web 应用程序。 然后,Web 应用程序查询数据库引擎并返回请求的信息。 然后数据返回到 Apache,后者会将其发送到发出请求的 Web 浏览器。

每个 LAMP 组件都通过设计为通用和抽象的接口相互通信。 这些接口通常称为应用程序编程接口 (API)。 一个好的 API 设计应该足够灵活,以支持多种实现并有效地使用资源。

谁使用 LAMP

由于 LAMP 堆栈的多功能性,它是网络托管行业中使用最广泛的软件堆栈之一。 您可以使用 LAMP 运行几乎任何 Web 应用程序。 其中包括 WordPress、Drupal、Joomla、LMS 等等。 

仅从 WordPress 的角度来看,这使得 LAMP 堆栈成为全球主导的软件堆栈。 WordPress 权力 超过所有网站的40% 今天上线。 如果您运营的网站在 WordPress 上运行,那么您也在 LAMP 堆栈上运行。

LAMP的缺点

尽管 LAMP 堆栈具有显着优势,但它并不完美。 在这里,我们将考虑使用 LAMP 的一些缺点以及它对一些小众用户可能意味着什么。

缺乏对新语言的支持

PHP 是为 Web 开发而设计的,并且始终保持专注。 同时,已经创建了专门用于数据科学等场景的其他语言,例如 R。LAMP 堆栈不支持这些语言,因此如果您想在服务器设置中使用它们,则需要从头开始。

缺乏安全支持

大多数开源组件依赖基于社区的贡献来改进安全功能。 虽然到目前为止有效,但它可能会出现问题,因为没有一个实体负责确保所有用户都可以访问最新的安全更新。

高资源使用率

Apache 和 MySQL 可能会根据需要处理的流量降低应用程序的性能。 如果不加以控制,这种放缓将增加成本(尽管有办法解决这个问题)。

LAMP 堆栈的替代方案

虽然 LAMP 很受欢迎,但它绝不是唯一可用的软件堆栈。 以下是您可能需要考虑作为 LAMP 堆栈替代品的其他一些软件堆栈:

1. 平均堆栈

意思 是 MongoDB、Express、AngularJS 和 Node.js 的首字母缩写词。 MEAN 是一个受到开发人员欢迎的较新框架,因为它允许他们在前端和后端使用 JavaScript 构建应用程序。 MEAN 已成为初创公司的热门选择,因为它可以轻松构建可扩展的应用程序,而无需学习新的语言或框架。

2. WAMP 堆栈

WAMP 代表 Windows Apache MySQL PHP。 它类似于 LAMP,只是将 Linux 替换为操作系统。 相反,WAMP 堆栈使用 Windows。 这种包含导致西方包含其他工具,如 FTP 客户端、编辑器等。

3. XAMPP 堆栈

XAMPP 代表跨平台(多操作系统)、Apache、MySQL、PHP 和 Perl。 默认发行版包括所有四个组件,但您也可以单独安装它们。 XAMPP 在 Windows、macOS 和 Linux 操作系统上可用,可用于创建测试环境,而无需在服务器上安装整个 LAMP 堆栈。

如何在 Ubuntu 上安装 LAMP 堆栈

本简短指南假定您已经在服务器上安装了 Linux 的副本。 由于可用的 Linux 版本众多,确切的命令可能会有所不同。 但是,大体的过程应该是比较相似的。 我们将使用 Ubuntu 20.04。

安装 Apache Web 服务器

  1. 更新你的本地包索引 sudo apt update
  2. 安装 Apache2 sudo apt安装apache2
  3. 要确认 Apache 服务正在运行,请键入 sudo systemctl status apache2
  4. 接下来,我们需要修改防火墙设置并增加安全性。 打字 sudo ufw应用程序列表 将显示可用的防火墙模式。 通常,这些将是 Apache、Apache Full 和 Apache Secure。 

首先,您只使用“Apache”,因为它将禁止除端口 80 之外的所有访问。使用以下命令执行此操作; sudo ufw 允许 'Apache'

安装MySQL

  1. 一旦 Apache 启动并运行,我们将继续安装 MySQL。 随着您的存储库索引已经更新,您可以使用以下命令运行 MySQL 服务器安装; sudo apt安装mysql-server
  2. 同样,您可以使用 systemctl 命令验证安装; sudo systemctl 启动 mysql.service
  3. 所有全新的 MySQL 安装都是非常简单的,基本的配置任务之一是加强安全性。 值得庆幸的是,有一个可以快速部署的安全包; sudo mysql_secure_installation

运行该命令将导致脚本出现一系列配置问题,以进行必要的安全更改。 

安装 PHP 

Linux 在存储库中附带 PHP,但您需要安装该软件包。 使用的命令取决于您要部署的 PHP 版本。 例如,要安装 PHP 7.4,请运行 sudo apt install php7.4。

关于 LAMP 堆栈的最终想法

LAMP 堆栈为各种网站或应用程序提供了坚实、多功能的基础。 在大多数情况下,您无法选择您的网络托管服务提供商提供的软件堆栈。 但是,共享主机用户不需要处理这个问题——只需检查主机是否支持您想要的应用程序。

像 LAMP 这样的软件堆栈在转移到 虚拟专用服务器(VPS). 在这里,您可以充分利用 LAMP 的多功能性,甚至可以构建适合您需求的自定义环境。

了解更多

作者照片

Timothy Shim 的文章