如何在Debian 10 Buster上设置LEMP服务器
LEMP是传统LAMP服务器的绝佳替代品。在某些情况下,Nginx的重量比Apache轻,并且速度更快。还可以将其配置为做其他有用的事情,例如用作反向代理。与LAMP一样,Debian是LEMP服务器的绝佳平台。您所需的一切都可以在Debian存储库中找到,因此上手很简单。
在本教程中,您将学习:
- 如何设置MariaDB
- 如何安装PHP
- 如何安装Nginx
- 如何配置Nginx
- 如何测试服务器

使用的软件要求和约定
类别 | 要求,约定或使用的软件版本 |
---|---|
系统 | Debian 10 Buster |
软件 | Nginx,MariaDB和PHP |
其他 | 以root用户或通过sudo 命令对Linux系统的特权访问。 |
约定 | # -要求给定的linux命令以root特权直接作为root用户执行,或者通过使用sudo 命令$ -要求给定的linux命令以普通非特权用户执行 |
设置MariaDB
设置LEMP服务器的最佳起点是数据库。对于本指南,MaraiDB将用作数据库。因为它是MySQL的直接替代品,所以MariaDB是一个很好的选择。在将MariaDB用于任何项目之前,您需要对其进行配置。运行WordPress之类的应用程序不需要太多,因此不需要很长时间。
安装MariaDB
首先实际安装MariaDB服务器。
$ sudo apt install mariadb-server
设置数据库
安装了MariaDB之后,您就可以准备好要使用Web应用程序的数据库了。MariaDB的脚本可帮助您自动保护数据库服务器,因此请先运行它。
$ sudo mysql_secure_installation
按照脚本中的提示进行操作。询问时设置根密码。默认值对其他所有功能都有好处。
现在,使用mysql
命令并指定root
用户登录MariaDB 。
# mysql -u root -p
为您的项目创建一个数据库。
CREATE DATABASE newdb;
接下来,创建一个将连接并管理数据库的用户。
CREATE USER 'username'@'localhost' IDENTIFIED BY 'userpassword';
该用户将需要完全控制数据库才能运行Web应用程序。授予它对数据库及其表的所有特权。
GRANT ALL PRIVILEGES ON newdb.* TO 'username'@'localhost';
一切都已设置好,可以使用了。刷新您的特权,然后退出MariaDB。
FLUSH PRIVILEGES;
\q
安装PHP
PHP是下一个难题。您将不需要Debian的整个PHP软件包,仅需要PHP-FPM。与MySQL模块一起安装。
$ sudo apt install php-fpm php-mysql
安装Nginx
几乎一切都准备就绪。您只需要设置Web服务器Nginx。首先,从Debian存储库在系统上安装Nginx。
$ sudo apt install nginx
配置Nginx
Nginx是功能强大的Web服务器,它提供了很多选择。这也意味着需要大量的配置才能使其完全按照您想要的方式运行。本指南将为您提供基本的工作设置,但您可以使用Nginx做更多的事情。
Nginx站点配置存储在/etc/nginx/sites-available
并链接到/etc/nginx/sites-enabled
。在中为服务器的配置创建一个新文件/etc/nginx/sites-available
,然后在文本编辑器中将其打开。
首先创建一个服务器块来告诉Nginx这是一个新的站点配置。
server {
}
配置的其余部分将进入该块。接下来,添加监听地址。这些是端口号,后跟站点的重要属性。如果这将是您的唯一站点或默认站点,请default_server
在端口号之后添加。
server {
listen 80 default_server;
listen [::]:80 default_server;
}
在要放置站点的Web根文件夹中添加。/var/www/html
是通常的默认设置。接下来,让Nginx知道您站点索引的名称,即众所周知的主页。
server {
listen 80 default_server;
listen [::]:80 default_server;
root /ver/www/html;
index index.php index.html;
}
现在,将您站点的域名添加为server_name
。如果这只是本地服务器,请使用_
它代替域。
server {
listen 80 default_server;
listen [::]:80 default_server;
root /ver/www/html;
index index.php index.html;
server_name yourwebsite.com;
}
下一个配置块告诉Nginx检查与当前网址匹配的文件。
server {
listen 80 default_server;
listen [::]:80 default_server;
root /ver/www/html;
index index.php index.html;
server_name yourwebsite.com;
location / {
try_files $uri $uri/ =404;
}
}

最后,最后一块告诉Nginx将PHP文件传递给PHP-FPM。那就是大部分工作要做的地方。
server {
listen 80 default_server;
listen [::]:80 default_server;
root /ver/www/html;
index index.php index.html;
server_name yourwebsite.com;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.3-fpm.sock;
}
}
完成后,保存配置并退出。现在,将其链接到sites-enabled
。
$ sudo ln -s /etc/nginx/sites-available/your-site /etc/nginx/sites-enabled/your-site
然后,重新启动服务器以启用该站点。
$ sudo systemctl restart nginx
测试您的服务器
确保服务器正常运行的最简单方法是在您的Web根目录中创建一个新的PHP文件,以运行一些PHP代码。创建index.php
的/var/www/html/
,并用文本编辑器打开它。将以下代码行放入文件中,然后保存。
打开浏览器,然后导航到服务器。您应该看到有关服务器的PHP信息表。如果这样做,则服务器可以正常工作,并且可以用于WordPress之类的PHP应用程序。
结论
从那里,您几乎可以做任何事情。服务器配置将保持不变,并且除非您进行更改,否则所有配置都应保持正常运行。您还可以使用类似的配置将多个站点添加到同一Nginx服务器。只需将更server_name
改为指向其他域即可。