如何在Debian 10 Buster Server / Desktop上安装LEMP堆栈

本教程显示了如何在Debian 10 Buster上安装Nginx,MariaDB,PHP7.3(LEMP堆栈)。软件堆栈是捆绑在一起的一组软件工具。 LEMP代表 大号inux, Nginx的中号ariaDB /中号ySQL和 P惠普这些都是开源的,可以免费使用。这是一个非常常见的软件堆栈,可增强动态网站和Web应用程序。 Linux是一个操作系统。 Nginx是一个Web服务器。 MariaDB / MySQL是数据库服务器,PHP是负责生成动态网页的服务器端脚本语言。

所有这四个组件都是免费和开源的。但是,由于MySQL目前归Oracle所有,并且Oracle可能会将其转变为封闭源产品,因此我们选择MariaDB而非MySQL。

在Debian 10 Buster上安装LEMP堆栈的前提条件

要运行本教程,您需要在本地计算机或远程服务器上运行的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服务器

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地址。将显示默认的“欢迎使用nginx”网页。这意味着Nginx Web服务器运行正常。如果要在本地Debian 10计算机上安装LEMP,则需要输入: 127.0.0.1localhost 在浏览器地址栏中。

Debian 10 Buster安装Nginx Web服务器

如果连接被拒绝或无法完成,则可能有防火墙阻止了对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服务器的root密码。

如何安装LEMP Stack Debian 10 Buster

然后只需按Enter即可回答所有剩余的问题。这将删除匿名用户,禁用远程root登录,并删除测试数据库。此过程是MariaDB数据库安全性的基本要求。 (注意信 Y 大写字母。这是默认答案。 )

Debian 10 Lemp堆栈安装

默认情况下,Debian MaraiDB软件包使用unix_socket来验证用户登录名。这基本上意味着您可以使用操作系统的用户名和密码登录到MariaDB控制台。因此,您可以通过运行以下命令在不指定MariaDB root密码的情况下登录:

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

在撰写本文时,PHP 7.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代码粘贴到文件中。

保存并关闭文件。

请在浏览器的地址栏中输入 server-ip-address/info.php。交换 sever-ip-address 具有真实IP。如果要在本地计算机上遵循本教程,请输入: 127.0.0.1/info.phplocalhost/info.php

显示服务器PHP信息。这意味着PHP脚本可以在Nginx Web服务器上正常运行。您可以看到Zend OPcache已启用。

Debian 10 Buster Nginx的php-fpm php7.3

总结

恭喜你! Nginx,MariaDB和PHP7.3已成功安装在Debian 10 Buster上。为了确保服务器的安全性,您现在应该删除info.php文件,以防止任何寻求信息的行为。

sudo rm /usr/share/nginx/html/info.php

希望本教程对您有所帮助 在Debian 10 Buster上安装LEMP堆栈。与往常一样,如果您发现这篇文章很有用,请订阅免费新闻通讯以获取新教程。小心一点