如何在 Debian 9 Stretch 上安装 LEMP(Linux、Nginx、MariaDB、PHP-FPM)
由于 Debian 为全世界的很大一部分 Web 服务器提供支持,在本文中我们将解释如何在Debian 9 Stretch上安装LEMP(Linux + Nginx + MariaDB + PHP-FPM)堆栈作为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(快速进程管理器)用于处理 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。
在 Debian 9 上配置 Nginx 使用 PHP-FPM
Nginx 主配置文件是/etc/nginx/sites-available/default,我们需要在服务器块内进行以下更改:
- 确保处理 PHP 请求的位置块已启用,但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 的虚拟主机。
与往常一样,如果您对本文有任何问题或意见,请随时告诉我们。