如何在 Ubuntu 20.04 服务器/桌面上安装 LEMP 堆栈

本教程将向您展示如何安装 LEMP 堆栈 (Nginx、MariaDB 和 PHP7.4)在 Ubuntu 20.04 上。 软件栈是一组捆绑在一起的软件工具。 LEMP 代表 Linux、Nginx (Engine-X)、MariaDB/MySQL 和 PHP,所有这些都是开源且免费使用的。 它是支持动态网站和 Web 应用程序的最常见的软件堆栈。 Linux 是操作系统; Nginx 是网络服务器; MariaDB/MySQL 是数据库服务器,PHP 是负责生成动态网页的服务器端脚本语言。

先决条件

要学习本教程,您需要在本地计算机或远程服务器上运行 Ubuntu 20.04 操作系统。

如果您正在寻找 VPS(虚拟专用服务器),那么您可以通过此特殊链接在 DigitalOcean 注册一个帐户,以获得 50 美元的免费赠金。 (仅限新用户)。 如果您已经是 DigitalOcean 用户,那么您可以通过此特殊链接在 Vultr 上注册一个帐户,以获得 50 美元的免费赠金(仅限新用户)。

而且如果你需要用域名设置LEMP堆栈,我建议从NameCheap购买域名,因为价格低廉,并且他们终身免费提供whois隐私保护。

步骤 1:更新软件包

在我们安装 LEMP 堆栈之前,通过在 Ubuntu 20.04 操作系统上运行以下命令来更新存储库和软件包是一个很好的做法。

sudo apt update  sudo apt upgrade

第 2 步:安装 Nginx Web 服务器

Nginx 是一种高性能的 Web 服务器,最近非常流行。 它还可以用作反向代理和缓存服务器。 Enter 以下命令安装 Nginx Web 服务器。

sudo apt install nginx

安装后,我们可以通过运行以下命令使 Nginx 在启动时自动启动。

sudo systemctl enable nginx

然后使用以下命令启动 Nginx:

sudo systemctl start nginx

现在检查它的状态。

sudo systemctl status nginx

输出:

 nginx.service - A high performance web server and a reverse proxy server      Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)      Active: active (running) since Fri 2020-04-10 14:11:43 UTC; 3s ago        Docs: man:nginx(8)     Process: 8533 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)     Process: 8545 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)    Main PID: 8549 (nginx)       Tasks: 3 (limit: 9451)      Memory: 3.9M      CGroup: /system.slice/nginx.service              ├─8549 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;              ├─8550 nginx: worker process              └─8551 nginx: worker process 

启用”表示启动时自动启动,我们可以看到Nginx正在运行。 您还可以从输出中查看 Nginx 使用了多少 RAM。 如果上面的命令运行后没有立即退出。 您需要按“q” 让它退出。

检查 Nginx 版本。

nginx -v

输出:

nginx version: nginx/1.17.9 (Ubuntu)

现在在浏览器地址栏中输入 Ubuntu 20.04 服务器的公共 IP 地址。 您应该会看到“Welcome to Nginx”网页,这表示 Nginx Web 服务器运行正常。 如果您要在本地 Ubuntu 20.04 计算机上安装 LEMP,请键入 127.0.0.1 或者 localhost 在浏览器地址栏中。

如果连接被拒绝或无法完成,则可能是防火墙阻止了对 TCP 端口 80 的传入请求。 如果您使用的是 iptables 防火墙,则需要运行以下命令打开 TCP 端口 80。

sudo iptables -I INPUT -p tcp --dport 80 -j ACCEPT

如果您使用的是 UFW 防火墙,则运行此命令以打开 TCP 端口 80。

sudo ufw allow http

最后,我们需要使 www-data (Nginx 用户)作为 web 目录的所有者。 默认情况下,它由 root 用户拥有。

sudo chown www-data:www-data /usr/share/nginx/html -R

第 3 步:安装 MariaDB 数据库服务器

MariaDB 是 MySQL 的替代品。 它是由 MySQL 团队的前成员开发的,他们担心 Oracle 可能会将 MySQL 变成一个闭源产品。 Enter 使用以下命令在 Ubuntu 20.04 上安装 MariaDB。

sudo apt install mariadb-server mariadb-client

安装后,MariaDB 服务器应该会自动启动。 用 系统控制 检查其状态。

systemctl status mariadb

输出:

 mariadb.service - MariaDB 10.3.22 database server      Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled)      Active: active (running) since Fri 2020-04-10 14:19:16 UTC; 18s ago        Docs: man:mysqld(8)              https://mariadb.com/kb/en/library/systemd/    Main PID: 9161 (mysqld)      Status: "Taking your SQL requests now..."       Tasks: 31 (limit: 9451)      Memory: 64.7M      CGroup: /system.slice/mariadb.service              └─9161 /usr/sbin/mysqld 

如果它没有运行,请使用以下命令启动它:

sudo systemctl start mariadb

要使 MariaDB 在启动时自动启动,请运行

sudo systemctl enable mariadb

现在运行安装后安全脚本。

sudo mysql_secure_installation

当它要求您输入 MariaDB root 密码时,按 Enter 密钥,因为尚未设置 root 密码。 然后输入 为 MariaDB 服务器设置 root 密码。