如何在 Debian 9 Stretch 上安装 LEMP(Linux、Nginx、MariaDB、PHP-FPM)
由于 Debian 为全球很大一部分 Web 服务器提供支持,因此在本文中我们将解释如何安装 LEMP(Linux + 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-FPM(Fast 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
安装完成后,我们首先确保 Nginx 和 PHP-FPM 正在运行并启用开机启动:
systemctl status nginx php7.0-fpm
如果指示一项或两项服务未运行,则执行。
systemctl start nginx php7.0-fpm
systemctl enable nginx php7.0-fpm
由于每个 MariaDB 或 MySQL 安装都是如此,因此运行 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 的虚拟主机。
一如既往,如果您对本文有疑问或意见,请随时告诉我们。