如何在 Debian 10 Buster 上设置 LEMP 服务器
LEMP 是传统 LAMP 服务器的绝佳替代品。在某些情况下,Nginx 比 Apache 更轻且更快。它还可以配置为执行其他有用的操作,例如充当反向代理。就像 LAMP 一样,Debian 是 LEMP 服务器的优秀平台。您需要的一切都可以在 Debian 存储库中找到,因此入门很简单。
在本教程中您将学习:
如何设置 MariaDB
如何安装 PHP
如何安装 Nginx
如何配置 Nginx
如何测试您的服务器
Debian 10 上 LEMP 上的 PHPinfo。
设置 MariaDB
设置 LEMP 服务器的最佳起点是数据库。对于本指南,MaraiDB 将作为数据库。由于它是 MySQL 的直接替代品,MariaDB 是一个很好的选择。在将 MariaDB 用于任何项目之前,您需要对其进行配置。像 WordPress 这样的应用程序运行起来并不需要太多,所以不会花很长时间。
安装 MariaDB
首先实际安装 MariaDB 服务器。
$ sudo apt install mariadb-server
设置数据库
安装 MariaDB 后,您就可以让数据库准备好与 Web 应用程序一起使用。 MariaDB 有一个脚本可以帮助您自动保护数据库服务器,因此首先运行它。
$ sudo mysql_secure_installation
按照脚本中的提示进行操作。当系统询问时,设置 root 密码。默认值对其他一切都很好。
现在,使用 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;
}
}
Debian 10 上 LEMP 的 Nginx 配置。
最后,最后一个块告诉 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 代码。在 /var/www/html/
中创建 index.php
,然后使用文本编辑器打开它。将以下代码行放入文件中,然后保存。
<?php phpinfo(); ?>
打开浏览器,然后导航到您的服务器。您应该会看到有关您的服务器的 PHP 信息表。如果这样做,则您的服务器工作正常,并且已准备好用于您的 PHP 应用程序,例如 WordPress。
结论
从那里,您几乎可以做任何事情。服务器配置将保持不变,并且一切都应保持功能,除非您更改它。您还可以使用类似的配置将多个站点添加到同一 Nginx 服务器。只需更改 server_name
以指向不同的域即可。