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 google或baidu分页代码
Nov 26 PHP
PHP数组交集的优化代码分析
Mar 06 PHP
JS与PHP向函数传递可变参数的区别实例代码
May 18 PHP
php 操作数组(合并,拆分,追加,查找,删除等)
Jul 20 PHP
php preg_replace替换实例讲解
Nov 04 PHP
php多任务程序实例解析
Jul 19 PHP
使用php的HTTP请求的库Requests实现美女图片墙
Feb 22 PHP
PHP遍历XML文档所有节点的方法
Mar 12 PHP
php生成不重复随机数、数组的4种方法分享
Mar 30 PHP
基于laravel制作APP接口(API)
Mar 15 PHP
[原创]PHPCMS遭遇会员投稿审核无效的解决方法
Jan 11 PHP
Laravel 解决419错误 -ajax请求错误的问题(CSRF验证)
Oct 25 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
DOTA2 无惧惊涛骇浪 昆卡大型水友攻略
2020/04/20 DOTA
php,不用COM,生成excel文件
2006/10/09 PHP
建立动态的WML站点(二)
2006/10/09 PHP
PHP CURL模拟GET及POST函数代码
2010/04/25 PHP
shell脚本作为保证PHP脚本不挂掉的守护进程实例分享
2013/07/15 PHP
php文件上传的例子及参数详解
2013/12/12 PHP
ThinkPHP3.1的Widget新用法
2014/06/19 PHP
php求今天、昨天、明天时间戳的简单实现方法
2016/07/28 PHP
PHP7.1新功能之Nullable Type用法分析
2016/09/26 PHP
PHP CURL与java http使用方法详解
2018/01/26 PHP
jquery下json数组的操作实现代码
2010/08/09 Javascript
推荐8款jQuery轻量级树形Tree插件
2014/11/12 Javascript
纯javascript实现分页(两种方法)
2015/08/26 Javascript
jQuery Validate插件自定义验证规则的方法
2016/12/27 Javascript
Vue 2.0+Vue-router构建一个简单的单页应用(附源码)
2017/03/14 Javascript
Vue Prop属性功能与用法实例详解
2019/02/23 Javascript
vue实现数字动态翻牌的效果(开箱即用)
2019/12/08 Javascript
使用vue实现HTML页面生成图片的方法
2020/03/12 Javascript
基于Django模板中的数字自增(详解)
2017/09/05 Python
python爬虫headers设置后无效的解决方法
2017/10/21 Python
Python中装饰器高级用法详解
2017/12/25 Python
Python读取txt文件数据的方法(用于接口自动化参数化数据)
2018/06/27 Python
浅析Python pandas模块输出每行中间省略号问题
2018/07/03 Python
Python OOP类中的几种函数或方法总结
2019/02/22 Python
softmax及python实现过程解析
2019/09/30 Python
QML实现钟表效果
2020/06/02 Python
Tensorflow--取tensorf指定列的操作方式
2020/06/30 Python
速比涛英国官网:Speedo英国
2019/07/15 全球购物
匈牙利超级网上商店和优惠:Alza.hu
2019/12/17 全球购物
初中政治教学反思
2014/01/17 职场文书
原料仓管员岗位职责
2015/04/01 职场文书
2016年元旦主持词
2015/07/06 职场文书
《走遍天下书为侣》教学反思
2016/02/22 职场文书
原来实习报告是这样写的呀!
2019/07/03 职场文书
SQL实现LeetCode(180.连续的数字)
2021/08/04 MySQL
i5-10400f处理相当于i7多少水平
2022/04/19 数码科技