网站搜索

如何在 Debian 9 Stretch 上安装 LEMP(Linux、Nginx、MariaDB、PHP-FPM)


由于 Debian 为全球很大一部分 Web 服务器提供支持,因此在本文中我们将解释如何安装 LEMPLinux + Nginx + MariaDB + PHP-FPM)在 Debian 9 Stretch 上作为 LAMP 的替代方案(使用本指南在 Debian 9 上安装 LAMP)。

此外,我们将展示如何执行最小的 Nginx/PHP-FPM 配置,以便即使是新的系统管理员也可以设置全新的 Web 服务器来设置动态页面。

为此,我们将利用该发行版官方存储库的最新更新。假设您已在裸机、虚拟机或 VPS 上安装了 Debian 9,或者已从 Jessie 升级。

在 Debian 9 Stretch 中安装 LEMP

您可能想知道为什么我们提到 PHP-FPM 而不是 PHP 作为 LEMP 堆栈的一部分。与其他 Web 服务器不同,Nginx 不提供对 PHP 的本机支持。

因此,使用PHP-FPMFast Process Manager)来处理 PHP 页面的请求。您可以在 PHP 官方网站中了解有关 PHP-FPM 的更多信息。

Debian 存储库 php7.0-fpm 中提供的默认版本。正如您可能根据包的名称猜到的那样,该版本甚至可以处理对包含 PHP 7 代码的页面的请求。

注意:如果 Apache 之前已安装在同一个框中,请确保在继续之前已停止并禁用它。

话虽如此,让我们按如下方式安装 LEMP 堆栈的组件:

aptitude update 
aptitude install nginx mariadb-server mariadb-client php-mysqli php7.0-fpm

安装完成后,我们首先确保 NginxPHP-FPM 正在运行并启用开机启动:

systemctl status nginx php7.0-fpm

如果指示一项或两项服务未运行,则执行。

systemctl start nginx php7.0-fpm
systemctl enable nginx php7.0-fpm

由于每个 MariaDBMySQL 安装都是如此,因此运行 mysql_secure_installation 来执行最低限度的安全配置并设置密码非常重要数据库根帐户。

mysql_secure_installation

如果您不知道如何执行此操作,可以参考如何在 Debian 和 Ubuntu 上安装 MariaDB 10 中的步骤#4

配置 Nginx 在 Debian 9 上使用 PHP-FPM

Nginx 主配置文件是 /etc/nginx/sites-available/default,我们需要在服务器块内进行以下更改:

  • 确保启用处理 PHP 请求的 location 块,但 fastcgi_pass 指令指向环回 NIC 的块除外。
  • index 指令后添加 index.php,以指示如果找到,则默认情况下应在 index.html 或其他文件之前提供该文件。
  • 添加指向服务器的 IP 地址或主机名的 server_name 指令。在我们的例子中,这将是192.168.0.35
  • 此外,请确保 root 指令指向 .php 文件的存储位置(默认为 /var/www/html) 。

完成后,您可以使用以下命令来测试配置文件是否有错误。

nginx -t 

此时,您的 /etc/nginx/sites-available/default 应如下所示,其中引用的数字代表上述列表的配置:

grep -Ev '#' /etc/nginx/sites-available/default

在 Debian 9 上测试 Nginx 和 PHP-FPM

为了确保我们现在使用 Nginx 作为我们的 Web 服务器,让我们在 /var/www/html 中创建一个名为 info.php 的文件:以下内容:

<?php
	phpinfo();
?>

然后转到 http://192.168.0.35/info.php 并检查页面顶部,您应该在其中看到以下内容:

最后,让我们将浏览器指向我们在 Debian 9 上安装 LAMP(Linux、Apache、MariaDB 或 MySQL 和 PHP)堆栈中创建的 booksandauthors.php 文件。

如下图所示,该文件现在由 Nginx 提供服务:

注意:如果您发现 Nginx 将 .php 文件作为下载而不是执行它们,请清除浏览器缓存或尝试其他浏览器。特别是,如果您使用 Chrome,您可能需要使用隐身模式进行测试。

概括

在本文中,我们解释了如何安装和配置 Nginx 来提供动态 .php 页面。需要注意的是,在初始设置之后,应考虑一些设置来保护 Web 服务器的安全。

您可以在《Nginx Web 服务器安全、强化和提高性能的终极指南》中找到基本摘要。

如果您正在 Nginx 上寻找虚拟主机,请阅读如何在 Nginx 上设置基于名称和基于 IP 的虚拟主机。

一如既往,如果您对本文有疑问或意见,请随时告诉我们。