在本教程中,我们将向您展示如何在 Ubuntu 22.04 LTS 上安装 LEMP Stack。 对于那些不知道的人,LEMP Stack 是免费的开源软件的组合。 首字母缩略词 LEMP 指的是 Linux(操作系统)、Nginx 服务器、MariaDB(数据库软件)和 PHP 组件的首字母,用于构建可行的通用 Web 服务器。
本文假设您至少具备 Linux 的基本知识,知道如何使用 shell,最重要的是,您将网站托管在自己的 VPS 上。 安装非常简单,假设您在 root 帐户下运行,如果不是,您可能需要添加 ‘sudo
‘ 到命令以获取 root 权限。 我将向您展示在 Ubuntu 22.04 (Jammy Jellyfish) 上逐步安装 LEMP 堆栈。 对于 Ubuntu 22.04 和任何其他基于 Debian 的发行版,如 Linux Mint、Elementary OS、Pop!_OS 等,您可以按照相同的说明进行操作。
先决条件
- 运行以下操作系统之一的服务器:Ubuntu 22.04、20.04 和任何其他基于 Debian 的发行版,如 Linux Mint。
- 建议您使用全新的操作系统安装来防止任何潜在问题。
- 对服务器的 SSH 访问(或者如果您在桌面上,则只需打开终端)。
- 一个
non-root sudo user
或访问root user
. 我们建议充当non-root sudo user
,但是,如果您在充当 root 时不小心,可能会损害您的系统。
在 Ubuntu 22.04 LTS Jammy Jellyfish 上安装 LEMP 堆栈
步骤 1. 首先,通过运行以下命令确保所有系统包都是最新的 apt
终端中的命令。
sudo apt update sudo apt upgrade sudo apt install lsb-release ca-certificates apt-transport-https software-properties-common
步骤 2. 在 Ubuntu 22.04 上安装 Nginx。
默认情况下,Nginx 在 Ubuntu 22.04 基础存储库中可用。 现在运行以下命令将最新版本的 Nginx 安装到您的 Ubuntu 系统:
sudo apt install nginx
安装成功后,启用 Nginx(系统启动时自动启动),启动,并使用以下命令验证状态:
sudo systemctl enable nginx sudo systemctl start nginx sudo systemctl status nginx
确认安装并检查已安装的 Nginx 构建版本:
nginx -v
步骤 3. 配置防火墙。
Ubuntu 22.04 有 ufw
默认运行的防火墙。 通过端口启用连接 80
HTTP 和 443
HTTPS:
sudo ufw allow 'Nginx FULL' sudo ufw enable sudo ufw status
步骤 4. 访问 Nginx Web 服务器。
成功安装后,打开系统上的 Web 浏览器并在地址栏中输入服务器的 IP。 您将获得默认的 Nginx 服务器页面:
步骤 5. 在 Ubuntu 22.04 上安装 MariaDB。
默认情况下,MariaDB 在 Ubuntu 22.04 基础存储库中可用。 现在运行以下命令将最新版本的 MariaDB 安装到您的 Ubuntu 系统:
sudo apt install mariadb-server mariadb-client
成功安装后,启用 MariaDB(系统启动时自动启动),启动并使用以下命令验证状态:
sudo systemctl enable mariadb sudo systemctl start mariadb sudo systemctl status mariadb
确认安装并检查已安装的 MariaDB 构建版本:
mariadb --version
步骤 6. 安全 MariaDB 安装。
默认情况下,MariaDB 未加固。 您可以使用 mysql_secure_installation
脚本。 您应该仔细阅读以下每个步骤,这些步骤将设置 root 密码、删除匿名用户、禁止远程 root 登录、删除测试数据库和访问安全 MariaDB:
mysql_secure_installation
像这样配置它:
- Set root password? [Y/n] y - Remove anonymous users? [Y/n] y - Disallow root login remotely? [Y/n] y - Remove test database and access to it? [Y/n] y - Reload privilege tables now? [Y/n] y
您现在可以使用新密码连接到 MariaDB 服务器:
mysql -u root -p
输出:
Enter password: Welcome to the MariaDB monitor. Commands end with ; or g. Your MariaDB connection id is 46 Server version: 10.6.7-MariaDB-2ubuntu1 Ubuntu 22.04 Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. Type 'help;' or 'h' for help. Type 'c' to clear the current input statement. MariaDB [(none)]>
步骤 7. 在 Ubuntu 22.04 上安装 PHP。
默认情况下,PHP 在 Ubuntu 22.04 基础存储库中不可用。 现在运行以下命令将 Ondrej PPA 添加到您的系统:
sudo add-apt-repository ppa:ondrej/php
添加存储库后,更新 APT 索引,然后使用以下命令安装 PHP 8.1:
sudo apt update sudo apt install php8.1 php8.1-common libapache2-mod-php8.1 php8.1-cli php8.1-fpm php8.1-xml
确认安装并检查已安装的 PHP 构建版本:
php --version
安装成功后,启用 php-fpm(系统启动时自动启动),启动,并使用以下命令验证状态:
sudo systemctl enable php8.1-fpm sudo systemctl start php8.1-fpm sudo systemctl status php8.1-fpm
步骤 8. 设置 Nginx 服务器块。
现在在下创建一个新的服务器块文件 /etc/nginx/conf.d/
目录:
nano /etc/nginx/conf.d/default.conf
添加以下文件:
server { listen 80; listen [::]:80; server_name _; root /var/www/html/; index index.php index.html index.htm index.nginx-debian.html; location / { try_files $uri $uri/ /index.php; } location ~ .php$ { fastcgi_pass unix:/run/php/php8.1-fpm.sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; include snippets/fastcgi-php.conf; } # A long browser cache lifetime can speed up repeat visits to your page location ~* .(jpg|jpeg|gif|png|webp|svg|woff|woff2|ttf|css|js|ico|xml)$ { access_log off; log_not_found off; expires 360d; } # disable access to hidden files location ~ /.ht { access_log off; log_not_found off; deny all; } }
Save 和 close 文件,然后重新启动 Nginx 网络服务器以使更改生效:
nginx -t sudo systemctl start nginx
步骤 9. 测试 PHP。
要测试 PHP 脚本,我们需要添加 info.php
文件中的文件:
nano /var/www/html/info.php
将以下内容添加到文件中:
<?php phpinfo(); ?>
让我们通过在浏览器中打开此页面来确保服务器正确显示 PHP 脚本生成的内容: https://your-IP-address/info.php
第 10 步。使用 Let’s Encrypt SSL 保护 Nginx。
Let’s Encrypt 是一个为网站提供免费 SSL 证书的证书颁发机构。 Let’s Encrypt 支持在 Nginx 上自动安装证书。 现在运行以下命令来安装它:
sudo apt install python3-certbot-nginx
接下来,运行以下命令开始创建证书:
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d www.domain.com
之后,我们设置了自动续订 SSL,因为 Let’s Encrypt 的有效期只有 90 天,因此您需要经常使用以下命令对其进行续订:
sudo certbot renew --dry-run
步骤 11. 测试 SSL。
使用 Let’s Encrypt SSL 成功完成安全 Nginx 后,现在转到 ssllabs.com/ssltest/,并在您的域上运行 SSL 测试:
恭喜! 您已成功安装 LEMP。 感谢您使用本教程安装 LEMP 堆栈 Ubuntu 22.04 LTS 果酱水母系统。 如需更多帮助或有用信息,我们建议您查看官方 LEMP 网站。