首页 > Web开发 > 详细

LNMP+discuz的搭建和nginx+php-fpm环境下php输出图片、js、css等文件问题解决

时间:2015-12-24 10:47:41      阅读:1514      评论:0      收藏:0      [点我收藏+]

一、fastCGI?

  fastCGI是由CGI(common gateway interface,通用网关接口)发展而来,是http服务器(nginx、apache)和动态脚本语言(php)之间的通信接口。记住,fastCGI只是一个接口。

  fastCGI的优点:fastCGI采用C/S结构,可以将http服务器和动态脚本解析服务器分离(二者可以部署在不同的服务器上),让http服务器专一处理静态请求和转发动态请求到脚本解析服务器;脚本解析服务器则专一处理动态脚本的请求。

二、nginx+fastCGI

  nginx不支持对外部程序的直接调用或者解析,必须通过fastCGI进行调用。nginx收到CGI请求之后,fastCGI接口在脚本解析服务器上,启动一个或者多个守护进程对动态脚本进行解析。

三、php-fpm

  fastCGI进程管理器/引擎:即对动态脚本进行实际解析的守护进程,由fastCGI启动。这里,php-fpm就是支持解析php的一个fastCGI进程管理器/引擎。

  fastCGI是nginx和php之间的一个通信接口,该接口实际处理过程通过启动php-fpm进程来解析php脚本,即php-fpm相当于一个动态应用服务器, 从而实现nginx动态解析php。因此,如果nginx服务器需要支持php解析,需要在nginx.conf中增加php的配置:将php脚本转发到 fastCGI进程监听的IP地址和端口(php-fpm.conf中指定)。同时,php安装的时候,需要开启支持fastCGI选项,并且编译安装 php-fpm补丁/扩展,同时,需要启动php-fpm进程,才可以解析nginx通过fastCGI转发过来的php脚本


贴上问题:

技术分享



分析问题(图片和js都没加载)


技术分享


技术分享


分析原因:js和图片都走了php-fpm通道。php-fpm就是支持解析php的一个fastCGI进程管理器/引擎。

解决办法如下:


技术分享

技术分享





延伸:php-fpm单独主机运行

技术分享




后端主机设置


技术分享



技术分享




测试ok

技术分享


本文出自 “16期松鼠&青蛙” 博客,请务必保留此出处http://tlinux.blog.51cto.com/7288656/1727750

LNMP+discuz的搭建和nginx+php-fpm环境下php输出图片、js、css等文件问题解决

原文:http://tlinux.blog.51cto.com/7288656/1727750

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!