用户登录

NGINX 本身并不能处理 PHP 的请求,也就是它根据不认识 PHP 是什么,我们需要配置一下 NGINX,当有用户请求执行 PHP 的时候,把这些请求交给别人去处理一下,这个人知道怎么样处理 PHP,它会把处理好的结果,再交给 NGINX,然后 NGINX 会把这个结果再交给请求的用户。

这里我们需要用的就是 PHP-FPM 去处理这个对 PHP 的请求。先看一下 PHP-FPM 相关的配置 ... 这个配置文件默认是在 /etc 下面 ... less /etc/php-fpm.conf ..

这个配置文件里面,大部分都是一些注释内容 ... 在最开始这里,用了一个 include ,会把在 /etc/php-fpm.d 这个目录下面的所有的 .conf 格式的文件都包含进来 ... 按一下 q 退出 .. 再去看一下这个目录里的东西 ..

ls /etc/php-fpm.d

这里有个 www.conf ,再打开这个配置文件 .. less /etc/php-fpm.d/www.conf ,在这个文件里面,定义了监听的地址 ... 就是 listen 后面的东西 ... 默认是 127.0.0.1:9000 ,127.0.0.1 表示本地主机,后面的 9000 是端口号 ... 意思就是,PHP-FPM 会在本机上的 9000 这个端口等待接收对 PHP 的请求。 这样我们就可以告诉 NGINX,如果有 PHP 的请求,就把请求发送到在这里指定的这个地方。

除了使用这种 IP 加端口号的方式,我们也可以使用 Socket 的方式 ... 这种方法被认为更安全一些 ... 你可以修改一下 listen 后面的值,指定一个 PHP-FPM Socket 文件的位置 ...

这里我还是使用默认的 IP + 端口号的方式。下面,我们需要去配置一下 NGINX 的配置文件。编辑一下之前我们创建的那个 NGINX 的配置文件 .. sudo vi /etc/nginx/conf.d/default.conf

在这个 server 区块的里面,我们再去定义一个 location 区块,设置一下处理 php 的请求 ...

location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi.conf;
}

这个 location 区块的意思就是,在请求里面,结尾如果是 .php ,也就是请求执行 php ,就去使用这个区块里设置的东西,这里用了一个 fastcgi_pass 指令,告诉 NGINX 把请求发送到哪里,这个 127.0.0.1:9000 就是 PHP-FPM 监听的地方 ..也就是会把 php 的请求发送到这个地方。

这个 fastcgi_index 设置了一下主脚本是谁。一般就是 index.php 。

下面又加载进来一个 fastcgi.conf ,这又是一个配置文件,默认就是在 /etc/nginx 这个目录的下面,是 NGINX 自带的。

:! ls /etc/nginx

就是这个 fastcgi.conf ... 在这个文件里配置了一些指令,主要的作用就是为 PHP-FPM 解释一下请求里面包含的一些信息的意思。

保存一下这个配置文件 ... 然后测试一下配置文件的语法 .. sudo nginx -t 。

没有问题以后,重新加载一下 NGINX ... sudo systemctl reload nginx

下面,我们可以去新建一个 php 文件 ... 回到编辑器 ... 在 default 这个目录的下面,创建一个文件 ... 命名为 phpinfo.php ... 文件里的内容输入 保存一下 ...

回到浏览器 ... 打开 phpinfo.php 这个文件 ... 这里你会看到一些跟 PHP 相关的信息,说明现在我们配置的这个 NGINX 虚拟主机已经可以执行 PHP 脚本了。

0:00
0:00
0:00
0:00

配置 NGINX 处理 PHP 的请求《 LEMP 网站应用运行环境 》

统计

14696
分钟
0
你学会了
0%
完成

社会化网络

关于

微信订阅号

扫描微信二维码关注宁皓网,每天进步一点