概述
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 脚本了。
最后
以上就是知性洋葱为你收集整理的nginx与php处理用户请求,配置 NGINX 处理 PHP 的请求《 LEMP 网站应用运行环境 》的全部内容,希望文章能够帮你解决nginx与php处理用户请求,配置 NGINX 处理 PHP 的请求《 LEMP 网站应用运行环境 》所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复