# 如何在Ubuntu 20.04上安装Linux、Apache、MySQL和PHP（LAMP堆栈）？

> 来源：梦飞idc云平台 | 原文：https://www.mfisp.com/13377.html | 发布：2022-11-28 | 更新：2022-11-28 | 分类：IDC云库

LAMP（Linux、Apache、MySQL 和 PHP）堆栈是构建动态网站的最常用方法之一。LAMP 堆栈使用成熟可靠的开源软件作为构建块，并已成为包括 WordPress、Facebook 和维基百科在内的各种项目的基石。

LAMP（Linux、Apache、MySQL 和 PHP）堆栈是构建动态网站的最常用方法之一。LAMP 堆栈使用成熟可靠的开源软件作为构建块，并已成为包括 WordPress、Facebook 和维基百科在内的各种项目的基石。了解如何安装和配置 LAMP 堆栈是 Linux 管理员和 Web 开发人员等人的一项重要技能。

 

为了帮助您掌握 LAMP 堆栈，在本文中，我们将为您提供有关如何在 Ubuntu 20.04 上安装和配置基本 LAMP 堆栈的分步教程。作为奖励，我们将回顾 Tasksel 如何帮助您加快流程。

 

## 什么是 LAMP 堆栈？

 

LAMP 堆栈是一组用于 Web 开发的四个流行开源组件。  
 LAMP 首字母缩略词中的每个字母代表其中一个组件：

 
 
- L inux是堆栈中的操作系统。 
- pache 是堆栈中的Web服务器。 
- MySQL是堆栈中的数据库。 
- P HP 是堆栈中的编程语言。 

 

有了这些组件，Web 开发人员便拥有了构建可提供动态内容的 Web 应用程序所需的所有组件。Linux 充当安装其他组件的基础层，Apache 提供 HTTP(S) 页面，MySQL 允许数据持久化，而 PHP 允许开发人员将 Web 服务器和数据库层连接在一起并创建动态站点。例如，PHP 可以从网络表单中获取数据并对 MySQL 数据库执行 CRUD（创建、读取、更新、删除）操作。

 

LAMP 规定了开发人员应使用的 Web 服务器、数据库和编程语言，但 Linux 发行版具有灵活性。Ubuntu、Debian、RHEL 和 CentOS/Rocky Linux 是 LAMP 堆栈中使用的一些最常见的发行版，但这主要是一个偏好问题。

 

此外，传统 LAMP 堆栈还有很多替代方案。例如，一些开发人员在他们的技术栈中使用P ython 或P erl 而不是 PHP。同样，有些人使用 nginx（发音为“engine x”）而不是 Apache 来制作 LEMP 堆栈，或者用不同的数据库或数据持久层（如 PostgreSQL）代替 MySQL。还有更根本不同的 LAMP 替代方案，如 MEAN（M ongoDB、E xpress.js、A ngular.js、N ode.js）。

 

### 如何使用 Tasksel 快速安装 LAMP 堆栈

 

我们将在下面逐步介绍安装每个单独的 LAMP 堆栈组件的过程，如果您是第一次配置 LAMP 堆栈，我们建议您遵循该过程。但是，如果您正在寻找一种快速开始在 Ubuntu 或 Debian 上运行的方法，请考虑使用Tasksel。Tasksel 是一款帮助 Linux 管理员同时安装多个相关包的工具，它只需一个命令即可安装 LAMP 堆栈所需的 Apache、MySQL 和 PHP 组件。

 

要使用 Tasksel 为您的 LAMP 堆栈安装 Apache、MySQL 和 PHP 组件，请遵循以下过程：

 
 
1. 安装任务选择器 

 

```
sudo apt install tasksel -y
```

 
 
1. 使用Tasksel安装lamp-server 

 

```
sudo tasksel install lamp-server
```

 

![如何在Ubuntu 20.04上安装Linux、Apache、MySQL和PHP（LAMP堆栈）？](https://www.mfisp.com/wp-content/uploads/2022/11/13377-3nClbd.png)

 

安装后lamp-server，您应该会看到 Apache2、MySQL 和 PHP 都已安装在您的服务器上。  
 ![如何在Ubuntu 20.04上安装Linux、Apache、MySQL和PHP（LAMP堆栈）？](https://www.mfisp.com/wp-content/uploads/2022/11/13377-qvMzG4.png)

 

## 如何在 Ubuntu 20.04 上安装 Linux、Apache、MySQL 和 PHP（LAMP 堆栈）

 

Ubuntu 的 LTS（长期支持）版本是 LAMP 堆栈中使用的一些最常见的 Linux 操作系统。在此过程中，我们将使用 Ubuntu 20.04 LTS 安装和配置工作的 LAMP 堆栈。

 

### 先决条件：

 

在我们开始之前，您需要：

 
 
- 访问 Ubuntu 20.04 系统的终端。如果您没有，可以在Cherry Servers上启动一个虚拟专用服务器。 
- 须藤/根权限 

 

### 运行 Apt 更新

 

首先，让我们apt用这个命令更新我们的包列表和存储库：

 

```
sudo apt update
```

 

你应该看到类似这样的输出：  
 ![如何在Ubuntu 20.04上安装Linux、Apache、MySQL和PHP（LAMP堆栈）？](https://www.mfisp.com/wp-content/uploads/2022/11/13377-JTgbTX.png)

 

### 安装阿帕奇

 

接下来，使用apt以下命令安装 Apache Web 服务器：

 

```
sudo apt install apache2 -y
```

 

![如何在Ubuntu 20.04上安装Linux、Apache、MySQL和PHP（LAMP堆栈）？](https://www.mfisp.com/wp-content/uploads/2022/11/13377-FGyyik.png)

 

### 安装 MySQL

 

接下来，我们将在服务器上安装 MySQL。要深入了解 MySQL 安装和配置过程（包括有关强化安装的信息），请查看如何在 Ubuntu 20.04 上安装和配置 MySQL。

 

对于我们的 LAMP 堆栈安装过程的这一步，运行此命令来安装 MySQL 服务器包：

 

```
apt install mysql-server -y
```

 

您可以通过运行以下命令来验证您的 MySQL 安装：

 

```
mysql -V
```

 

输出应类似于：  
 ![如何在Ubuntu 20.04上安装Linux、Apache、MySQL和PHP（LAMP堆栈）？](https://www.mfisp.com/wp-content/uploads/2022/11/13377-xbquG2.png)

 

### 安装PHP

 

现在我们可以安装 LAMP 堆栈的脚本语言。具体来说，我们将安装 3 个包：

 
 
- php是PHP脚本语言的默认包 
- libapache2-mod-php是 Apache 的 PHP 模块 
- php-mysql是 MySQL 的 PHP 模块 

 

要安装所有 3 个包，请运行以下命令：

 

```
sudo apt install php libapache2-mod-php php-mysql -y
```

 

您可以通过运行以下命令来验证您的 PHP 安装：

 

```
php -v
```

 

输出应类似于：  
 ![如何在Ubuntu 20.04上安装Linux、Apache、MySQL和PHP（LAMP堆栈）？](https://www.mfisp.com/wp-content/uploads/2022/11/13377-wagFCu.png)

 

### [可选] 配置防火墙

 

默认情况下，Ubuntu 的简单防火墙 akaufw被禁用。您可以启用ufw以实施防火墙策略并帮助保护您的系统。如果您选择ufw禁用，则可以跳过此步骤。

 

如果您不确定ufw系统是否已启用，可以使用以下命令检查其状态：

 

```
sudo ufw status
```

 

如果启用，您可以允许三个与 Apache 相关ufw的可用应用程序（在 的输出中列出）通过防火墙：sudo ufw app list

 
 
- Apache将仅允许 TCP 端口 80（默认 HTTP）上的流量 
- Apache Secure将仅允许 TCP 端口 443（默认 HTTPS）上的流量 
- Apache Full将允许 TCP 端口 80 和 443 上的流量 

 

对于我们的示例，将允许使用以下命令在 TCP 端口 80 和 443 上到 Apache 的入站流量：

 

```
sudo ufw allow in "Apache Full"
```

 

您应该看到类似于以下内容的输出：

 

```
Rule added
Rule added (v6)
```

 

### 检查 Apache 测试页

 

使用网络浏览器访问http://<your server's IP>（其中 <your server's IP> 是您的 Ubuntu 机器的 IP 地址）。  
 您应该会看到默认的 Apache2 Ubuntu 默认页面。  
 ![如何在Ubuntu 20.04上安装Linux、Apache、MySQL和PHP（LAMP堆栈）？](https://www.mfisp.com/wp-content/uploads/2022/11/13377-k1vbwo.png)

 

### 配置并启用您的虚拟主机

 

安装所有 LAMP 堆栈组件后，您现在可以在后续步骤中继续测试 PHP 处理和 MySQL 连接。默认情况下，Apache 将在 中提供网页/var/www/html，这对于简单站点来说可能就足够了。

 

但是，Apache 虚拟主机允许您在单个服务器上创建多个站点，并且是 Apache Web 服务器管理中的一个重要概念。因此，让我们按照以下步骤为我们的网站创建一个虚拟主机：

 

注意：我们将命名我们的站点cherryservers.local。但是，您可以替换cherryservers.local为任何其他 Apache 虚拟主机名。

 
 
1. 禁用默认虚拟主机： 

 

```
sudo a2dissite 000-default.conf
```

 
 
1. 将000-default.confApache 配置文件复制到一个新/etc/apache2/sites-available/cherryservers.local.conf文件： 

 

```
sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/cherryservers.local.conf
```

 
 
1. 使用文本编辑器如nano或vim编辑etc/apache2/sites-available/cherryservers.local.conf以包含这些设置： 

 

```
<Directory /var/www/html/cherryservers.local/public>
        Require all granted
</Directory>
<VirtualHost *:80>
        ServerName cherryservers.local
        ServerAlias www.cherryservers.local
        ServerAdmin pepperandegg@localhost
        DocumentRoot /var/www/html/cherryservers.local/public
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
```

 
 
1. DocumentRoot从文件创建目录cherryservers.local.conf： 

 

```
sudo mkdir -p /var/www/html/cherryservers.local/public
```

 
 
1. 使www-data目录及其内容的用户和组所有者： 

 

```
sudo chown -R www-data:www-data /var/www/html/cherryservers.local/public
```

 
 
1. 授予www-data用户对目录及其内容的读取、写入和执行权限，并授予其他所有人读取和执行权限： 

 

```
sudo chmod -R 755 /var/www/html/cherryservers.local/public
```

 
 
1. 将新站点链接到您的 Apache sites-enabled： 

 

```
sudo a2ensite cherryservers.local
```

 
 
1. 重新加载 Apache 网络服务器： 

 

```
sudo systemctl reload apache2
```

 

### 提供一个 Test.php 页面

 

接下来，让我们提供一个简单的test.php页面来演示 PHP 正在我们的网站上运行。

 
 
1. 使用像nano或这样的文本编辑器vim来创建一个/var/www/html/cherryservers.local/public/test.php包含以下内容的新文件： 

 

```
<?php
phpinfo();
```

 
 
1. 使用网络浏览器访问http://<your server's IP>/test.php（其中 <your server's IP> 是您的 Ubuntu 机器的 IP 地址）。您应该会看到一个显示类似于以下 PHP 信息的页面：  
 ![如何在Ubuntu 20.04上安装Linux、Apache、MySQL和PHP（LAMP堆栈）？](https://www.mfisp.com/wp-content/uploads/2022/11/13377-k6Kmo1.png) 

 

### 为 PHP 配置 MySQL 数据库访问

 

现在，让我们创建一个测试 MySQL 数据库并为 PHP 配置一个用户来访问它。

 
 
1. 启动 MySQL： 

 

```
sudo mysql
```

 
 
1. 在mysql>提示符下，创建一个testDB数据库： 

 

```
CREATE DATABASE testDB;
```

 
 
1. 创建一个 MySQL 用户phpUser，其密码为password（替换password为强密码）： 

 

```
CREATE USER 'phpUser'@'%' IDENTIFIED WITH mysql_native_password BY 'password';
```

 

4.授予phpUser用户对testDB数据库的全部权限：

 

```
GRANT ALL ON testDB.* TO 'phpUser'@'%';
```

 
 
1. 在中创建一个breakfastMenu表testDB 

 

```
CREATE TABLE testDB.breakfastMenu(food VARCHAR(50), description VARCHAR(255));
```

 
 
1. 向表中添加一些测试数据breakfastMenu： 

 

```
INSERT INTO testDB.breakfastMenu(food, description) VALUES ('Pepper and Egg With Giardiniera', 'Great Way To Start The Day');
```

 
 
1. 退出 MySQL： 

 

```
exit
```

 

### 测试 PHP 和 MySQL

 

最后，我们可以创建一个 PHP 脚本来显示 MySQL 数据库中的数据。

 
 
1. 使用文本编辑器创建一个/var/www/html/cherryservers.local/public/cherry.php包含此内容的新 PHP 脚本（确保更改您的“密码”以匹配您之前配置的 MySQL 密码）： 

 

```
<?php
$DBconnect=mysqli_connect("localhost","phpUser","password","testDB");
$result = mysqli_query($DBconnect,"SELECT * FROM breakfastMenu");
while($row = mysqli_fetch_array($result))
    print_r($row['food']);
mysqli_close($DBconnect);
?>
```

 
 
1. 使用网络浏览器访问http://<your server's IP>/cherry.php（其中 <your server's IP> 是您的 Ubuntu 机器的 IP 地址）。您应该会看到一个页面，其中显示了food我们之前插入到数据库中的值，类似于：  
 ![如何在Ubuntu 20.04上安装Linux、Apache、MySQL和PHP（LAMP堆栈）？](https://www.mfisp.com/wp-content/uploads/2022/11/13377-8Lwb9x.png) 

 

## 结论

 

而已！现在您在 Ubuntu 20.04 系统上有了一个工作的 LAMP 堆栈。从这里，您可以删除我们的测试 .php 脚本并继续进一步强化您的系统——例如，通过配置 Apache 以使用 HTTPS——并为您的站点创建动态内容。

---
本页由 梦飞idc云平台（https://www.mfisp.com）提供。站点导航见 https://www.mfisp.com/llms.txt
