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 相关文章推荐
用PHP和ACCESS写聊天室(五)
Oct 09 PHP
php.ini中的php-5.2.0配置指令详解
Mar 27 PHP
从php核心代码分析require和include的区别
Jan 02 PHP
zend framework配置操作数据库实例分析
Dec 06 PHP
php中\r \r\n \t的区别示例介绍
Feb 08 PHP
PHP捕获Fatal error错误的方法
Jun 11 PHP
PHP base64编码后解码乱码的解决办法
Jun 19 PHP
ThinkPHP 3.2 版本升级了哪些内容
Mar 05 PHP
php文件缓存类用法实例分析
Apr 22 PHP
PHP内存使用情况如何获取
Oct 10 PHP
深入浅析php中sprintf与printf函数的用法及区别
Jan 08 PHP
Yii框架参数化查询中IN查询只能查询一个的解决方法
May 20 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
《猛禽小队》:DC宇宙的又一超级大烂片
2020/04/09 欧美动漫
php google或baidu分页代码
2009/11/26 PHP
php中json_encode中文编码问题分析
2011/09/13 PHP
比较简单实用的PHP无限分类源码分享(思路不错)
2011/10/13 PHP
PHP Curl多线程原理实例详解
2013/11/06 PHP
javascript上传图片前预览图片兼容大多数浏览器
2013/10/25 Javascript
javascript中全局对象的parseInt()方法使用介绍
2013/12/19 Javascript
jQuery 如何先创建、再修改、后添加DOM元素
2014/05/20 Javascript
jQuery判断checkbox是否选中的3种方法
2014/08/12 Javascript
AngularJS + Node.js + MongoDB开发的基于高德地图位置的通讯录
2015/01/02 Javascript
基于javascript实现右下角浮动广告效果
2016/01/08 Javascript
jQuery ajax请求返回list数据动态生成input标签,并把list数据赋值到input标签
2016/03/29 Javascript
jQuery Ajax 全局调用封装实例代码详解
2016/06/02 Javascript
JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)
2016/12/14 Javascript
JavaScript模块详解
2017/12/18 Javascript
用vue快速开发app的脚手架工具
2018/06/11 Javascript
ES6 系列之 Generator 的自动执行的方法示例
2018/10/19 Javascript
mocha的时序规则讲解
2019/02/16 Javascript
基于mpvue小程序使用echarts画折线图的方法示例
2019/04/24 Javascript
vue+elementUI实现表格关键字筛选高亮
2020/10/26 Javascript
vue集成kindeditor富文本的实现示例代码
2019/06/07 Javascript
JavaScript对象访问器Getter及Setter原理解析
2020/12/08 Javascript
python使用pyqt写带界面工具的示例代码
2017/10/23 Python
Python读写锁实现实现代码解析
2020/11/28 Python
canvas实现高阶贝塞尔曲线(N阶贝塞尔曲线生成器)
2018/01/10 HTML / CSS
奥地利时尚、美容、玩具和家居之家:Kastner & Öhler
2020/04/26 全球购物
EJB的激活机制
2013/10/25 面试题
如何提高MySql的安全性
2014/06/19 面试题
银行贷款承诺书
2014/03/29 职场文书
个人安全生产承诺书
2014/05/22 职场文书
金融系应届毕业生求职信
2014/05/26 职场文书
债务授权委托书范本
2014/10/17 职场文书
大一学生个人总结
2015/02/15 职场文书
获奖感言范文
2015/07/31 职场文书
MySQL sql_mode的使用详解
2021/05/08 MySQL
用Python将GIF动图分解成多张静态图片
2021/06/11 Python