利用 php-fpm 为 nginx 增加 php 文件支持
1、安装php-fpm
比较简单,通过apt一行命令搞定。
从控制台的log可以看到,php-fpm 的安装路径为
2、查看监听
查看 php-fpm.conf 文件可知,属性信息位于 pool.d 文件夹下的项目内,打开发现 pool.d 文件夹中只有一个 www.conf ,打开并查找 listen 关键词,即可找到 socket 监听路径。
如图所示,我的监听路径为
3、nginx 中加入 location 参数
可将下面的参数根据需要加入到 nginx 目录的 nginx.conf 文件中,也可以加入到 conf.d 的自配置文件中,根据个人情况自行选择即可。
注意:fastcgi_pass 改为自己的 php-fpm socket监听路径。
4、(可选)修改 fastcgi_params 参数
如果网站中的静态页面 .html 都能正常访问,而 .php 文件虽然会返回 200 状态码,但实际输出给浏览器的页面内容却是空白,你可能需要进行这部分操作。
具体原因是 nginx 无法正确的将 *.php 文件的地址传递给 php-fpm 去解析, 相当于 php-fpm 接受到了请求,但这请求却指向一个不存在的文件,于是返回空结果。
具体操作是打开nginx目录下
之后重启 nginx 和 php-fpm 即可。
比较简单,通过apt一行命令搞定。
apt install php-fpm从控制台的log可以看到,php-fpm 的安装路径为
/etc/php/7.2/fpm/,同时建立了php7.2-fpm 的 systemd 服务。2、查看监听
查看 php-fpm.conf 文件可知,属性信息位于 pool.d 文件夹下的项目内,打开发现 pool.d 文件夹中只有一个 www.conf ,打开并查找 listen 关键词,即可找到 socket 监听路径。
如图所示,我的监听路径为
/run/php/php7.2-fpm.sock3、nginx 中加入 location 参数
可将下面的参数根据需要加入到 nginx 目录的 nginx.conf 文件中,也可以加入到 conf.d 的自配置文件中,根据个人情况自行选择即可。
注意:fastcgi_pass 改为自己的 php-fpm socket监听路径。
4、(可选)修改 fastcgi_params 参数
如果网站中的静态页面 .html 都能正常访问,而 .php 文件虽然会返回 200 状态码,但实际输出给浏览器的页面内容却是空白,你可能需要进行这部分操作。
具体原因是 nginx 无法正确的将 *.php 文件的地址传递给 php-fpm 去解析, 相当于 php-fpm 接受到了请求,但这请求却指向一个不存在的文件,于是返回空结果。
具体操作是打开nginx目录下
conf/fastcgi_params 文件,在文件顶部添加 下面的参数:fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;之后重启 nginx 和 php-fpm 即可。




没有评论:
感谢每一条善意的建言和理性的讨论!
特殊时期开启审核制度敬请谅解。
挑衅和引战会被删除并永久拉黑。