Linux 部署 LNMP

LinuxBeginner
立即练习

介绍

LNMP 结合了四种开源软件组件:Linux、Nginx、MySQL 和 PHP。这个技术栈通常用于驱动动态 Web 应用程序和网站。以下是每个组件的简要概述:

  • Linux:一个操作系统,为技术栈的其余部分提供基础。
  • Nginx:一个高性能的 Web 服务器和反向代理,能够处理大量流量并高效地提供静态内容。
  • MySQL:一个流行的关系型数据库管理系统,为 Web 应用程序提供了一种可靠的方式来存储和检索数据。
  • PHP:一种广泛用于 Web 开发的脚本语言,允许你编写生成动态 HTML 内容的服务器端代码。

这些组件共同构成了一个强大且灵活的平台,用于构建和部署现代 Web 应用程序。LNMP 与 LAMP(Linux、Apache、MySQL 和 PHP)类似,但使用 Nginx 而不是 Apache 作为 Web 服务器。Nginx 以其速度和效率著称,使其成为高流量站点和应用程序的热门选择。

这是一个实验(Guided Lab),提供逐步指导来帮助你学习和实践。请仔细按照说明完成每个步骤,获得实际操作经验。根据历史数据,这是一个 中级 级别的实验,完成率为 73%。获得了学习者 95% 的好评率。

安装 Nginx

以下是 Linux 系统上安装 Nginx 的具体步骤:

  1. 更新软件包列表:运行以下命令以更新服务器上的软件包列表:
sudo apt-get update
  1. 安装 Nginx:使用以下命令安装 Nginx:
sudo apt-get install nginx
  1. 检查 Nginx 是否安装成功
nginx -v

以下输出表明 Nginx 已成功安装,当前安装的版本为 1.18.0

nginx version: nginx/1.18.0

安装 MySQL

以下是在 Linux 系统上安装 MySQL 的具体步骤:

  1. 安装 MySQL:使用以下命令安装 MySQL:
sudo apt update
sudo apt-get install mysql-server
  1. 检查 MySQL 是否安装成功
mysql --version

以下输出表明 MySQL 已成功安装。

mysql  Ver 8.0.35-0ubuntu0.22.04.1 for Linux on x86_64 ((Ubuntu))
  1. 检查 MySQL 是否已启动,如果未启动,可以使用以下命令启动它:
sudo systemctl status mysql
sudo systemctl start mysql

安装 PHP

以下是在 Linux 系统上安装 PHP 的具体步骤:

  1. 安装 PHP 及相关模块:使用以下命令安装 PHP 及其相关模块。
sudo apt update
sudo apt-get install php8.1-fpm php-mysql

这将安装 PHP FastCGI 进程管理器(php-fpm)以及 PHP 的 MySQL 扩展(php-mysql)。

  1. 检查 PHP 版本
sudo php -v

以下输出表明 PHP 已成功安装。

PHP 8.1.2-1ubuntu2.14 (cli) (built: Aug 18 2023 11:41:11) (NTS)

配置 Nginx

安装 Nginx 后,需要对其进行配置以使其与其他组件协同工作。按照以下步骤操作:

  1. 编辑 Nginx 配置文件 /etc/nginx/sites-available/default
sudo vim /etc/nginx/sites-available/default
  1. 将现有内容替换为以下内容
server {
     listen 80 default_server;
     listen [::]:80 default_server;

     root /var/www/html;
     index index.php index.html index.htm index.nginx-debian.html;

     server_name _;

     location / {
            index index.php index.html index.htm;
        }

     location ~ \.php$ {
            fastcgi_pass unix:/run/php/php-fpm.sock;
            fastcgi_index index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include fastcgi_params;
        }
}
  1. 检查 Nginx 配置是否正确
sudo nginx -t
  1. 重新加载 Nginx
sudo nginx -s reload

配置 MySQL

  1. 运行以下命令以访问 MySQL
sudo mysql
  1. 运行以下命令设置 root 用户密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password by 'Mysql@1234'
  1. 运行以下命令退出 MySQL 数据库
exit

配置 PHP

  1. 创建并编辑一个新的 phpinfo.php 文件以显示 PHP 信息
sudo vim /var/www/html/phpinfo.php

写入以下内容:

<?php echo phpinfo(); ?>

提示:/var/www/html 是网站的根目录,可以通过运行 cat /etc/nginx/sites-enabled/default 命令查看。

  1. 启动 PHP-FPM:安装完成后,使用以下命令启动 PHP-FPM 服务。
sudo systemctl start php8.1-fpm

提示:请注意,PHP-FPM 服务的具体名称可能因 Linux 发行版和 PHP 版本而异。

  1. 设置 PHP-FPM 开机自启:为确保 PHP-FPM 在服务器启动时自动启动,运行以下命令。
sudo systemctl enable php8.1-fpm

验证

在浏览器的地址栏中输入 http://127.0.0.1/phpinfo.php 进行访问。

访问结果如下所示,成功显示 PHP 配置信息页面,这意味着 LNMP 环境已成功部署。

PHP 信息页面显示

或者,可以使用 curl 命令进行检查。

curl http://127.0.0.1/phpinfo.php -I

总结

完成这些步骤后,你应该已经成功部署了 LNMP 环境。你可以将你的网站代码放置在 /var/www/html 目录中,并访问你的网站以确保其正常运行。