网站搜索

如何在 Debian 10 服务器上安装 LEMP


LEMP”堆栈是开源软件的混合物,通常安装在 Linux 服务器上以部署动态应用程序。该术语是代表 Linux 操作系统、Nginx Web 服务器、MariaDB 数据库和 PHP 编程的缩写。

另请阅读:如何在 Debian 10 服务器上安装 LAMP

尽管这个“LEMP”堆栈通常包含MySQL作为数据库管理系统,但某些Linux发行版(例如Debian) - 使用MariaDB 作为 MySQL 的直接替代品。

要求

  1. 如何安装 Debian 10 (Buster) 最小服务器

在本文中,我们将向您介绍如何在 Debian 10 服务器上安装和设置 LEMP 环境,并使用 MariaDB 作为数据库管理平台。

在 Debian 10 上安装 Nginx Web 服务器

Nginx 是一个开源、跨平台、轻量级但功能强大且易于配置的 HTTP 和反向代理服务器、邮件代理服务器和通用 TCP/UDP 代理服务器,具有模块化架构。

它的一些基本功能包括提供静态文件和索引文件;通过 FastCGIuwsgiSCGIMemcached 服务器缓存、负载平衡和容错、SSL 提供加速支持和 TLS SNI 支持,支持具有加权和基于依赖关系的优先级的 HTTP/2。

要安装 Nginx 软件包,请使用 Debian 的 apt 软件包管理器,如图所示。

apt update 
apt install nginx 

一旦Nginx安装完成,安装程序将激活systemd暂时启动Nginx服务,并使其在系统启动时自动启动。您可以使用以下 systemctl 命令检查 Nginx 的状态。

systemctl status nginx

您还可以使用以下重要命令来启动、重新启动、停止和重新加载 systemd 下 Nginx 服务的配置。

systemctl start nginx
systemctl restart nginx 
systemctl stop nginx
systemctl reload nginx 
systemctl status nginx 

接下来,如果您运行了 UFW 防火墙(默认情况下通常处于禁用状态),则需要打开端口 80 (HTTP)443 (HTTPS) 以允许传入流量在 Nginx 上。

ufw allow 80
ufw allow 443
ufw status

此时,您需要测试Nginx是否正确安装,是否正在运行并可以提供网页服务。为此,请打开 Web 浏览器并将其指向以下 URL 以访问 Nginx Debian Default 网页。

http://SERVER_IP/
OR
http://localhost/

在 Debian 10 上安装 MariaDB

接下来,您需要安装一个数据库系统,以便能够存储和管理您的网站或网络应用程序的数据。 Debian 10 默认支持 MariaDB,作为 MySQL 的直接替代品。

要安装 MariaDB,请运行以下命令。

apt install mariadb-server

接下来,检查 MariaDB 服务状态,因为它是由 systemd 自动启动的,并且可以在系统启动时启动,为了确保它已启动并运行,请使用以下命令。

systemctl status mariadb

要管理(启动、重新启动、停止和重新加载)systemd 下的 MariaDB 服务,可以使用以下命令。

systemctl start mariadb
systemctl restart mariadb
systemctl stop mariadb
systemctl reload mariadb

接下来,MariaDB 部署默认情况下是不安全的。您需要运行软件包中附带的 shell 脚本,以提高数据库的安全性。

mysql_secure_installation

运行脚本后,它将引导您完成以下一系列问题,以修改 MariaDB 安装的默认设置,如下面的屏幕截图所示。

在 Debian 10 上安装 PHP-FPM(快速进程管理器)

与 Apache 和其他 Web 服务器不同,Nginx 不提供对 PHP 的本机支持,因为它使用 PHP-FPM处理 PHP 页面的请求。 PHP-FPM 是 PHP 的替代 FastCGI 守护进程,它允许网站通过使用工作进程处理请求来处理高负载。

要安装 PHP-FPM 版本 7.3 和 PHP 模块以与 MariaDB/MySQL 数据库系统通信,请运行以下命令。

apt install php-fpm php-mysqli

安装PHP-FPM后,安装程序将激活systemd暂时启动PHP-FPM服务,并使其在系统启动时自动启动。要检查它是否已启动并正在运行,请发出以下命令。

systemctl status php-fpm

还可以启动、重启、停止、重新加载systemd下PHP-FPM服务的配置,如下。

systemctl start php-fpm
systemctl restart php-fpm
systemctl stop php-fpm
systemctl reload php-fpm
systemctl status php-fpm

接下来,您需要通过在配置文件 /etc/php/7.3/fpm/php.ini 中进行一些更改来保护 PHP-FPM,如下所示。

vi /etc/php/7.3/fpm/php.ini

查找 ;cgi.fix_pathinfo=1,通过删除开头的 ; 字符来取消注释,并将其值设置为 0。这可以防止 Nginx 允许非 PHP 文件作为 PHP 执行。

cgi.fix_pathinfo=0

默认情况下,PHP-FPM 配置为侦听 UNIX soxket,/run/php/php7.3-fpm.sock,如 /etc 中定义的/php/7.3/fpm/pool.d/www.conf 配置文件。如果要处理和提供 PHP 页面,您必须将所有服务器块(或虚拟主机)配置为使用此套接字。

您可以使用Nginx默认服务器块配置文件/etc/nginx/sites-available/default来测试它。

vi /etc/nginx/sites-available/default 

查找以下部分并取消注释以将 PHP 脚本传递到 FastCGI 服务器,如屏幕截图所示。

location ~ \.php$ {
            include snippets/fastcgi-php.conf;
            fastcgi_pass unix:/run/php/php7.3-fpm.sock;
}

接下来,使用以下命令测试 Nginx 配置结构是否OK

nginx -t

如果 Nginx 配置正常,要应用最近所做的更改,请重新启动 php7.3-fpmnginx 服务,如下所示。

systemctl restart php7.2-fpm
systemctl restart nginx

在 Nginx 上测试 PHP-FPM 处理

配置PHP-FPMNginx协同工作后,您需要测试两个服务是否可以处理并向客户端提供PHP页面。为此,请在您的 Web DocumentRoot 中创建一个简单的 PHP 脚本,如下所示。

echo “<?php phpinfo(); ?>”  | tee /var/www/html/info.php

最后,打开浏览器并输入以下地址以查看由 phpinfo() 函数生成的系统上的 PHP 配置。

http://SERVER_IP/info.php
OR
http://localhost/info.php

结论

在本文中,我们展示了如何在 Debian 10 中安装和配置 LEMP 堆栈。如果您有任何问题或反馈,请通过下面的评论表联系我们并告知我们。