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

在本文中,我们将解释如何在Debian 9 Stretch上安装LEMP(Linux + Nginx + MariaDB + PHP-FPM),作为LAMP的替代方案。

由于Debian在世界各地拥有大量的Web服务器,所以在本文中,我们将解释如何在Debian 9 Stretch上安装LEMPLinux + Nginx + MariaDB + PHP-FPM ),以替代LAMP (使用本指南在Debian 9上安装LAMP )。

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

为了做到这一点,我们将利用最新版本的发行版的官方资料库。 假设您已经在裸机,虚拟机或VPS上安装了Debian 9 ,或者从Jessie升级

在Debian 9中安装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请求的位置块被启用,除了fastcgi_pass指令指向环回NIC之外。
  • index指令之后添加index.php ,以指示如果找到,则应在index.html或其他文件之前默认提供。
  • 添加指向服务器的IP地址或主机名的server_name指令。 在这种情况下这将是192.168.0.35
  • 另外,请确保指令指向.php文件的存储位置(默认为/ var / www / html )。

完成后,可以使用以下命令测试配置文件中的错误。

# nginx -t 

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

# grep -Ev '#' /etc/nginx/sites-available/default
配置Nginx for PHP-FPM

配置Nginx for PHP-FPM

在Debian 9上测试Nginx和PHP-FPM

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

<?php
phpinfo();
?>

然后转到http://192.168.0.35/info.php,并查看页面顶部,您应该看到:

测试Nginx和PHP-FPM

测试Nginx和PHP-FPM

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

如下图所示,此文件现在由Nginx提供:

检查由Nginx服务的PHP页面

检查由Nginx服务的PHP页面

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

概要

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

您可以在“终极指南”中找到一个基本总结, 以确保,改善Nginx Web服务器的性能

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

一如以往,如果您对本文有任何疑问或意见,请随时告知我们。