如何在 Debian 10 服务器上安装 LEMP
“ LEMP ” 堆栈是开源软件的混合体,通常安装在 Linux 服务器上以部署动态应用程序。该术语是 Linux 操作系统、Nginx Web 服务器、MariaDB 数据库和 PHP 编程的首字母缩写词。
另请阅读:如何在 Debian 10 服务器上安装 LAMP
虽然这个“ LEMP ”堆栈通常包含MySQL作为数据库管理系统,但一些 Linux 发行版(例如Debian)使用MariaDB作为MySQL的替代品。
要求
在本文中,我们将向您解释如何在Debian 10服务器上安装和设置LEMP环境,并使用MariaDB作为数据库管理平台。
在 Debian 10 上安装 Nginx Web 服务器
Nginx是一个开源、跨平台、轻量级但功能强大且易于配置的HTTP和反向代理服务器、邮件代理服务器以及通用 TCP/UDP 代理服务器,具有模块化架构。
它的一些基本功能包括提供静态和索引文件;通过FastCGI、uwsgi、SCGI和Memcached服务器的缓存加速支持、负载平衡和容错、 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 默认网页。
http://SERVER_IP/ OR http://localhost/
在 Debian 10 上安装 MariaDB
接下来,您需要安装数据库系统,以便能够存储和管理您的网站或 Web 应用程序的数据。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 配置结构是否正常。
# nginx -t
如果 Nginx 配置正常,要应用最近所做的更改,请按如下所示重新启动php7.3-fpm和nginx服务。
# systemctl restart php7.2-fpm # systemctl restart nginx
在 Nginx 上测试 PHP-FPM 处理
配置PHP-FPM和Nginx协同工作后,您需要测试两个服务是否可以处理并向客户端提供 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堆栈。如果您有任何问题或反馈,请通过下面的评论表与我们联系并告知我们。