PHP+FastCGI+Nginx配置PHP运行环境


Posted in PHP onAugust 07, 2014

      CGI的英文全称为Common Gateway Interface(公共网关接口),是Nginx和动态脚本程序的桥梁,Nginx通过FastCGI接口将动态请求发送给FastCGI,FastCGI中的Wrapper进程生成一个线程,将请求交给脚本解释程序执行,然后通过原来的socket将解释执行后的结果原路返回给Nginx,之后Nginx将结果交给客户端。

    Nginx是通过套接字文件socket来将动态请求发送给wrapper,使用的是Tcp协议。wrapper通过CGI接口来接受请求。这样web服务器和解释程序之间完全可以独立开发,这样避免了解释程序直接调用服务器的接口而导致的出错和崩溃以及安全性问题。而且可以使Nginx专心处理静态页面请求和转发动态请求,而将脚本解释器安装在另一台服务器,使服务器的压力得到分摊。

       CGI是作为PHP程序的补丁开发的,安装PHP首先安装其所依赖的库,之后在编译配置参数时加入对CGI的支持--enable-fpm --enable-cgi等选项。编译PHP的扩展模块,需要用到php中的phpize工具用来生成模块编译时的configure文件,如果运行phpize时无法生成configure文件,原因有:没有安装autoconf软件包。

       php-fpm进程的配置文件为/usr/local/php/etc/php-fpm.conf  可以对php-fpm进行相应的配置。

      Nginx配置支持fastcgi:

location ~ \.php${

             root html;

             fastcgi_pass  unix:/tmp/fastcgi.soke  //通过套接字文件和cgi建立联系,该文件在php-fpm.conf中设置

             fastcgi_index index.php;

             fastcgi_param SCRIPT_FILENAME html$SCRIPT_FILE_NAME;设置参数

             include fastcgi_params; //导入fastcgi参数配置文件,该文件在nginx安装时自动生成。

                   }
PHP 相关文章推荐
一个程序下载的管理程序(二)
Oct 09 PHP
global.php
Dec 09 PHP
解决file_get_contents无法请求https连接的方法
Dec 17 PHP
php权重计算方法代码分享
Jan 09 PHP
PHP图片裁剪函数(保持图像不变形)
May 04 PHP
Laravel 5框架学习之日期,Mutator 和 Scope
Apr 08 PHP
Zend Framework连接Mysql数据库实例分析
Mar 19 PHP
yii2 页面底部加载css和js的技巧
Apr 21 PHP
php多线程并发实现方法
Sep 30 PHP
php变量与数组相互转换的方法(extract与compact)
Dec 02 PHP
PHP字符串和十六进制如何实现互相转换
Jul 16 PHP
基于PHP实现用户在线状态检测
Nov 10 PHP
PHP生成数组再传给js的方法
Aug 07 #PHP
PHP彩蛋信息介绍和阻止泄漏的方法(隐藏功能)
Aug 06 #PHP
PHP编程中的常见漏洞和代码实例
Aug 06 #PHP
Discuz7.2版的faq.php SQL注入漏洞分析
Aug 06 #PHP
PHP中的reflection反射机制测试例子
Aug 05 #PHP
PHP的反射类ReflectionClass、ReflectionMethod使用实例
Aug 05 #PHP
实例介绍PHP的Reflection反射机制
Aug 05 #PHP
You might like
PHP中基本符号及使用方法
2010/03/23 PHP
jQuery 第二课 操作包装集元素代码
2010/03/14 Javascript
JQuery扩展插件Validate 5添加自定义验证方法
2011/09/05 Javascript
IE6/IE7中JavaScript json提示缺少标识符、字符串或数字问题处理
2014/12/16 Javascript
jquery中change()用法实例分析
2015/02/06 Javascript
js表格排序实例分析(支持int,float,date,string四种数据类型)
2015/05/06 Javascript
原生javascript实现自动更新的时间日期
2016/02/12 Javascript
js实现div模拟模态对话框展现URL内容
2016/05/27 Javascript
使用HTML5+Boostrap打造简单的音乐播放器
2016/08/05 Javascript
jquery validate表单验证插件
2016/09/06 Javascript
基于jquery实现多选下拉列表
2017/08/02 jQuery
详解vue中点击空白处隐藏div的实现(用指令实现)
2018/04/19 Javascript
KOA+egg.js集成kafka消息队列的示例
2018/11/09 Javascript
Vue使用NProgress进度条的方法
2019/09/21 Javascript
[43:36]Liquid vs Mineski 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
[05:15]2018年度CS GO社区贡献奖-完美盛典
2018/12/16 DOTA
Python中使用PyQt把网页转换成PDF操作代码实例
2015/04/23 Python
python3基于OpenCV实现证件照背景替换
2018/07/18 Python
Django添加feeds功能的示例
2018/08/07 Python
django之跨表查询及添加记录的示例代码
2018/10/16 Python
Python之列表实现栈的工作功能
2019/01/28 Python
Python Flask 搭建微信小程序后台详解
2019/05/06 Python
Python的Lambda函数用法详解
2019/09/03 Python
numpy数组做图片拼接的实现(concatenate、vstack、hstack)
2019/11/08 Python
django 模版关闭转义方式
2020/05/14 Python
销售主管的自我评价分享
2014/01/03 职场文书
大课间体育活动方案
2014/03/12 职场文书
开展党的群众路线教育实践活动情况汇报
2014/11/05 职场文书
2014年设备管理工作总结
2014/11/26 职场文书
小学老师对学生的评语
2014/12/29 职场文书
举起手来观后感
2015/06/09 职场文书
2016党校培训心得体会
2016/01/07 职场文书
幼儿园班级管理心得体会
2016/01/07 职场文书
2016年清明节网上祭英烈活动总结
2016/04/01 职场文书
2016年社区六一儿童节活动总结
2016/04/06 职场文书
交通安全宣传标语(100条)
2019/08/22 职场文书