如何在Debian 10 Buster Server / Desktop上安装LEMP Stack
本教程将向您展示如何在Debian 10 Buster上安装Nginx,MariaDB和PHP7.3(LEMP堆栈)。 软件堆栈是捆绑在一起的一组软件工具。 LEMP代表 大号inux, Nginx的, 中号ariaDB /中号ySQL和 PHP,所有这些都是开源的,可以免费使用。 它是为动态网站和Web应用程序提供动力的非常常见的软件堆栈。 Linux是操作系统。 Nginx是Web服务器; MariaDB / MySQL是数据库服务器,PHP是负责生成动态网页的服务器端脚本语言。
所有这四个组件都是免费的和开源的。 但是,由于MySQL现在由Oracle拥有,并且Oracle很有可能将其转变为开源产品,因此我们将选择MariaDB而不是MySQL。
在Debian 10 Buster上安装LEMP Stack的前提条件
要遵循本教程,您需要在本地计算机或远程服务器上运行的Debian 10 OS。
如果您正在寻找VPS(虚拟专用服务器),则可以通过此特殊链接在Vultr注册帐户,以获得$ 50的免费信用(仅限新用户)。 而且,如果您需要使用域名设置LEMP堆栈,我建议您从NameCheap购买域名,因为价格低廉,而且终身免费提供Whois隐私保护。
请注意,在Debian上安装软件时,您需要具有root特权。 你可以加 须藤 在命令开头或使用 su -
命令切换到root用户。
步骤1:更新软件包
在安装LEMP堆栈之前,最好先更新存储库和软件包。 在您的Debian 10操作系统上运行以下命令。
sudo apt update sudo apt upgrade
步骤2:在Debian 10上安装Nginx Web Server
Nginx是一种高性能的Web服务器,如今非常流行。 它也可以用作反向代理和缓存服务器。 输入以下命令以安装Nginx Web服务器。
sudo apt install nginx
安装后,应自动启动Nginx。 检查其状态 systemctl
。
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: en Active: active (running) since Sat 2019-08-10 06:20:26 UTC; 54s ago Docs: man:nginx(8) Main PID: 19713 (nginx) Tasks: 2 (limit: 1149) Memory: 4.6M CGroup: /system.slice/nginx.service ├─19713 nginx: master process /usr/sbin/nginx -g daemon on; master_pr └─19714 nginx: worker process
提示:如果上述命令没有立即退出,则可以按Q键来获得对终端窗口的控制。
如果它没有运行,请使用systemctl来启动它。
sudo systemctl start nginx
使Nginx在启动时自动启动也是一个好主意。
sudo systemctl enable nginx
检查Nginx版本:
sudo nginx -v
输出:
nginx version: nginx/1.14.2
现在,在浏览器地址栏中输入Debian 10服务器的公共IP地址。 您应该看到默认的“ Welcome to nginx”网页,这意味着Nginx Web服务器正在正常运行。 如果要在本地Debian 10计算机上安装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用户拥有。 (请注意,Nginx默认使用 /usr/share/nginx/html/
作为Web根,而Apache Web服务器使用 /var/www/html/
当我们扎根。)
sudo chown www-data:www-data /usr/share/nginx/html/ -R
步骤3:在Debian 10上安装MariaDB数据库服务器
MariaDB是MySQL的直接替代品。 输入以下命令以将其安装在Debian 10上。
sudo apt install mariadb-server mariadb-client
安装后,MariaDB服务器应自动启动。 使用 系统控制 检查其状态。
systemctl status mariadb
输出:
● mariadb.service - MariaDB 10.3.15 database server Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: Active: active (running) since Sat 2019-08-10 06:38:58 UTC; 13s ago Docs: man:mysqld(8) https://mariadb.com/kb/en/library/systemd/ Main PID: 20669 (mysqld) Status: "Taking your SQL requests now..." Tasks: 31 (limit: 1149) Memory: 77.7M CGroup: /system.slice/mariadb.service └─20669 /usr/sbin/mysqld
如果它没有运行,请使用以下命令启动它:
sudo systemctl start mariadb
要使MariaDB在启动时自动启动,请运行
sudo systemctl enable mariadb
现在运行安装后安全脚本。
sudo mysql_secure_installation
当要求您输入MariaDB根密码时,请按Enter键,因为尚未设置根密码。 然后输入 ÿ 设置MariaDB服务器的根密码。
接下来,您只需按Enter即可回答所有剩余的问题。 这将删除匿名用户,禁用远程root登录并删除测试数据库。 此步骤是MariaDB数据库安全性的基本要求。 (注意,信 Y
大写,这是默认答案。)
默认情况下,Debian上的MaraiDB软件包使用unix_socket来认证用户登录,这基本上意味着您可以使用操作系统的用户名和密码登录MariaDB控制台。 因此,您可以运行以下命令来登录,而无需提供MariaDB根密码。
sudo mariadb -u root
要么
sudo mysql -u root
要退出,请运行
exit;
检查MariaDB服务器版本信息。
mariadb --version
输出:
mariadb Ver 15.1 Distrib 10.3.15-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2
步骤4:在Debian 10上安装PHP7.3
在撰写本文时,PHP7.3是PHP的最新稳定版本,与以前的版本相比,性能稍有改善。 输入以下命令以从Debian 10存储库安装PHP7.3和一些常见的PHP扩展。
sudo apt install php7.3 php7.3-fpm php7.3-mysql php-common php7.3-cli php7.3-common php7.3-json php7.3-opcache php7.3-readline
检查PHP版本信息。
php --version
输出:
PHP 7.3.4-2 (cli) (built: Apr 13 2019 19:05:48) ( NTS ) Copyright (c) 1997-2018 The PHP Group Zend Engine v3.3.4, Copyright (c) 1998-2018 Zend Technologies with Zend OPcache v7.3.4-2, Copyright (c) 1999-2018, by Zend Technologies
现在启动php7.3-fpm。
sudo systemctl start php7.3-fpm
在启动时启用自动启动。
sudo systemctl enable php7.3-fpm
检查状态:
systemctl status php7.3-fpm
步骤5:创建一个Nginx服务器块
Nginx服务器块就像Apache中的虚拟主机。 我们将不使用默认服务器块,因为它不足以运行PHP代码,并且如果我们对其进行修改,它将变得一团糟。 因此,删除 default
在符号链接 sites-enabled
通过运行以下命令创建目录。 (它仍然可以作为 /etc/nginx/sites-available/default
)
sudo rm /etc/nginx/sites-enabled/default
然后在下面创建一个全新的服务器阻止文件 /etc/nginx/conf.d/ 目录,其中包含命令行文本编辑器,例如Nano。
sudo nano /etc/nginx/conf.d/default.conf
将以下文本粘贴到文件中。 以下代码片段将使Nginx使用通用服务器名称在IPv4端口80和IPv6端口80上进行侦听。
server { listen 80; listen [::]:80; server_name _; root /usr/share/nginx/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/php7.3-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; } }
保存并关闭文件。 (要在Nano文本编辑器中保存文件,请按 Ctrl+O
,然后按Enter确认。 要退出,请按 Ctrl+X
。)然后测试Nginx配置。
sudo nginx -t
如果测试成功,请重新加载Nginx。
sudo systemctl reload nginx
步骤6:测试PHP
要使用Nginx服务器测试PHP脚本,我们需要创建一个 info.php
Web根目录中的文件。
sudo nano /usr/share/nginx/html/info.php
将以下PHP代码粘贴到文件中。
<?php phpinfo(); ?>
保存并关闭文件。
现在,在浏览器地址栏中,输入 server-ip-address/info.php
。 更换 sever-ip-address
与您的实际IP。 如果您在本地计算机上遵循本教程,请输入 127.0.0.1/info.php
要么 localhost/info.php
。
您应该看到服务器的PHP信息。 这意味着PHP脚本可以在Nginx Web服务器上正常运行。 您可以发现Zend OPcache已启用。
Nginx自动重启
如果由于某种原因您的Nginx进程被杀死,则需要运行以下命令来重新启动它。
sudo systemctl restart nginx
无需手动输入此命令,我们可以通过编辑Nginx使Nginx自动重启 nginx.service
系统服务单元。 要覆盖默认的systemd服务配置,我们创建一个单独的目录。
sudo mkdir -p /etc/systemd/system/nginx.service.d/
然后在此目录下创建一个文件。
sudo nano /etc/systemd/system/nginx.service.d/restart.conf
在文件中添加以下行,这将使Nginx在检测到故障后5秒钟自动重新启动。
[Service] Restart=always RestartSec=5s
保存并关闭文件。 然后重新加载systemd。
sudo systemctl daemon-reload
要检查是否可行,请使用以下命令杀死Nginx:
sudo pkill nginx
然后检查Nginx的状态。 您会发现Nginx自动重启。
systemctl status nginx
包起来
恭喜! 您已在Debian 10 Buster上成功安装了Nginx,MariaDB和PHP7.3。 为了确保服务器的安全,您现在应该删除info.php文件以防止窥视。
sudo rm /usr/share/nginx/html/info.php
希望本教程对您有所帮助 在Debian 10 Buster上安装LEMP堆栈。 与往常一样,如果您发现这篇文章很有用,请订阅我们的免费新闻通讯以获取新教程。 保重🙂