由于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中安装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请求的位置块被启用,除了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
在Debian 9上测试Nginx和PHP-FPM
为了确保我们现在使用Nginx作为我们的Web服务器,我们在/ var / www / html中创建一个名为info.php的文件, 内容如下:
<?php phpinfo(); ?>
然后转到http://192.168.0.35/info.php,并查看页面顶部,您应该看到:
测试Nginx和PHP-FPM
最后,我们将浏览器指向我们在Debian 9中的Install LAMP(Linux,Apache,MariaDB或MySQL和PHP)中创建的booksandauthors.php文件。
如下图所示,此文件现在由Nginx提供:
检查由Nginx服务的PHP页面
注意 :如果您注意到,Nginx将.php
文件作为下载而不是执行它们,请清除浏览器缓存或尝试其他浏览器。 特别是,如果您使用的是Chrome,则可能需要使用无痕模式进行测试。
概要
在本文中,我们已经解释了如何安装和配置Nginx来提供动态的.php
页面。 重要的是要注意,在初始设置之后,应该考虑到安全Web服务器的设置。
您可以在“终极指南”中找到一个基本总结, 以确保,改善Nginx Web服务器的性能 。
如果您在Nginx上寻找虚拟主机,请阅读如何在NGINX上设置基于名称和基于IP的虚拟主机 。
一如以往,如果您对本文有任何疑问或意见,请随时告知我们。