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获取网卡地址的代码
Apr 09 PHP
PHP框架Swoole定时器Timer特性分析
Aug 19 PHP
php数组排序usort、uksort与sort函数用法
Nov 17 PHP
服务器迁移php版本不同可能诱发的问题
Dec 22 PHP
高质量PHP代码的50个实用技巧必备(上)
Jan 22 PHP
Zend Framework教程之Zend_Db_Table用法详解
Mar 21 PHP
PHP输出图像imagegif、imagejpeg与imagepng函数用法分析
Nov 14 PHP
详解thinkphp实现excel数据的导入导出(附完整案例)
Dec 29 PHP
form自动提交实例讲解
Jul 10 PHP
php基于协程实现异步的方法分析
Jul 17 PHP
在laravel中实现ORM模型使用第二个数据库设置
Oct 24 PHP
如何在Laravel5.8中正确地应用Repository设计模式
Nov 26 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
set_exception_handler函数在ThinkPHP中的用法
2014/10/31 PHP
php使用sql server验证连接数据库的方法
2014/12/25 PHP
php简单实现短网址(短链)还原的方法(测试可用)
2016/05/09 PHP
利用PHP命令行模式采集股票趋势信息
2016/08/09 PHP
PHP树形结构tree类用法示例
2019/02/01 PHP
js资料prototype 属性
2007/03/13 Javascript
Javascript实现CheckBox的全选与取消全选的代码
2010/07/20 Javascript
js Event对象的5种坐标
2011/09/12 Javascript
js 距离某一时间点时间是多少实现代码
2013/10/14 Javascript
jQuery中wrapInner()方法用法实例
2015/01/16 Javascript
js实现点击按钮后给Div图层设置随机背景颜色的方法
2015/05/06 Javascript
在vue组件中使用axios的方法
2018/03/16 Javascript
详解小程序不同页面之间通讯的解决方案
2018/11/23 Javascript
vue实现选中效果
2020/10/07 Javascript
python pdb调试方法分享
2014/01/21 Python
Python urlopen()函数 示例分享
2014/06/12 Python
Python深入学习之内存管理
2014/08/31 Python
Python与shell的3种交互方式介绍
2015/04/11 Python
python-opencv在有噪音的情况下提取图像的轮廓实例
2017/08/30 Python
Python中的上下文管理器和with语句的使用
2018/04/17 Python
Flask框架web开发之零基础入门
2018/12/10 Python
Python绘制频率分布直方图的示例
2019/07/08 Python
Pycharm调试程序技巧小结
2020/08/08 Python
你应该知道的30个css选择器
2014/03/19 HTML / CSS
俄罗斯名牌服装网上商店:UNIQUE FABRIC
2019/07/25 全球购物
如何在存储过程中使用Loop
2016/01/05 面试题
医科大学生毕业的自我评价分享
2013/11/12 职场文书
宿舍打麻将检讨书
2014/01/24 职场文书
社团招新策划书
2014/02/04 职场文书
股权转让协议范本
2014/12/07 职场文书
遗嘱继承权公证书
2015/01/26 职场文书
公务员处分决定书
2015/06/25 职场文书
哈姆雷特读书笔记
2015/06/29 职场文书
十一月早安语录:把心放轻,人生就是一朵自在的云
2019/11/04 职场文书
Python基础之操作MySQL数据库
2021/05/06 Python
《Estab Life》4月6日播出 正式PV、主视觉图公开
2022/03/20 日漫