简介

FCGI全称Fast Common Gateway Interface(快速通用网关协议),是一种让交互程序与Web服务器通信的协议。FastCGI是早期通用网关接口(CGI)的增强版本,FastCGI致力于减少网页服务器与CGI程序之间交互的开销,从而使服务器可以同时处理更多的网页请求。

早期的CGI技术使外部程序与Web服务器之间交互成为可能,但CGI程序运行在独立的进程中,并对每个Web请求创建一个进程,这种方法非常容易实现,但效率很差,难以扩展。面对大量请求,进程的大量创建和消亡使操作系统性能大大下降,此外由于地址空间无法共享,也限制了资源重用。

FastCGI使用持续的(守护)进程来处理一连串的请求,这些进程由FastCGI服务器管理,而不是web服务器。当进来一个请求时,web服务器把环境变量和这个页面请求通过一个socket比如FastCGI进程与web服务器(都位于本地)或者一个TCP connection(FastCGI进程在远端的server farm)传递给FastCGI进程。

FPM介绍

FPM(FastCGI 进程管理器)用于替换 PHP FastCGI 的大部分附加功能,对于高负载网站是非常有用的。

具体特性和安装方式可以参照官方网站:FastCGI 进程管理器(FPM)

开始吧,GOGOGO

1.下载解压及准备编译环境不再赘述

2.创建FPM使用的用户和组

[root@rhel6-1 php-5.6.31]# groupadd -r php

[root@rhel6-1 php-5.6.31]# useradd -r php -s /sbin/nologin -g php

3.配置编译选项

./configure --prefix /usr/local/php56 --with-config-file-path=/etc/ --with-config-file-scan-dir=/etc/php.d --with-libxml-dir --with-openssl --with-zlib --enable-mbstring --with-mysql --enable-fpm --with-fpm-user=php --with-fpm-group=php

与编译为apache模块不同的是:

删除选项 --with-apxs2=/usr/local/httpd24/bin/apxs

添加选项 --enable-fpm   //启用php

--with-fpm-user=php   //指定运行用户

--with-fpm-group=php //指定运行组

4.编译安装

make -j 2 & make install

5.更改相关文件的所属组和所属用户

chown :php php56/ -R

配置FPM和Apache

1.复制相关配置文件

cp php.ini-production /etc/php.ini

chown :php /etc/php.ini

mkdir /etc/php.d;chown :php /etc/php.d

cp sapi/fpm/init.d.php-fpm /etc/rc.d/init.d/php-fpm

chmod +x /etc/rc.d/init.d/php-fpm

2.编辑fpm配置文件

cd  /usr/local/php56/etc/

cp -p php-fpm.conf.default php-fpm.conf

vim php-fpm.conf   //此配置文件的路径定义在启动脚本中,如需修改可自定义

取消如下项前的;注释符

pid = run/php-fpm.pid

//配置pid文件的位置,默认前缀是/usr/local/php56/var,应与启动脚本中设置的一致

看到有文章要配置进程数量等等,更多内容参考fpm配置文档吧,不得不说现在php的中文文档真心不错,这里我就使用dynamic了,懒.....另有关进程模型已经有很多文章了,比如这篇PHP FPM源代码反刍品味之三: 多进程模型。

对于我这个菜鸟用来玩玩的话已经够了,不用配置了,保存退出吧。

3.启用fpm

service php-fpm start

看到如下输出并使用netstat -tnl验证

Starting php-fpm done

tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN  //netstat -tnl 看到已经监听了9000端口

4.配置apche

这里使用PROXYPASSMATCH的方式,目前应该是有4种方式可以配置的,图个简单就它了。

先填个坑,好像之前编译httpd的时候没有编译fcgi模块....我的天啊...怎么那么多坑...

/root/httpd-2.4.27/modules/proxy

/usr/local/httpd24/bin/apxs -c -i -a mod_proxy_fcgi.c

编辑httpd配置文件,取消proxy_module这个模块前面的#注释符并添加如下内容:

ProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://127.0.0.1:9000/path/to/webroot/$1 //根据自己的网站目录修改路径

然后重启apache测试,完工。

总结

总算给FCGI形式的php玩了一下,基本上还是能理解这种操作方式的,FCGI主要是可以将php安装到单独的主机,然后将网站使用NFS的方式进行存储。嗯,大概就是这样,唉,又快11点了,睡觉吧。

linux apache fcgi,Apache使用fcgi方式与PHP结合相关推荐

  1. linux apache fcgi,Apache结合spawn-fcgi使用FastCGI模式

    方法:系统平台是CentOS 5,前提是LAMP已配置好,运行正常. 1. wget -c http://www.21andy.com/centos/5/i386/spawn-fcgi-1.6.3-1 ...

  2. linux apache 文件服务器,Linux下搭建Apache服务器全过程详解

    什么是Apache? Apache Licence是著名的非盈利开源组织Apache采用的协议.该协议和BSD类似,同样鼓励代码共享和尊重原作者的著作权,同样允许代码修改,再发布(作为开源或商业软件) ...

  3. linux下基于apache下的svn的搭建

    一.下载软件: subversion-1.7.14.tar.bz2 apr-1.4.6.tar.bz2 apr-util-1.5.1.tar.bz2 sqlite-amalgamation-3.7.3 ...

  4. linux 怎么配置apache,在Linux下配置Apache Web服务

    <在Linux下配置Apache Web服务>由会员分享,可在线阅读,更多相关<在Linux下配置Apache Web服务(10页珍藏版)>请在人人文库网上搜索. 1.在Lin ...

  5. LINUX下的APACHE的配置

    今天写一下LINUX下的APACHE的配置方法. APACHE是作为WEB服务器的.它的优点在于用缓存方式来加快网页的搜索速度. APACHE缺省只支持静态网页 LINUX下有APACHE的RPM包 ...

  6. linux ssl PHP,Linux环境安装Apache与PHP,支持SSL

    1.Apache 在如下页面下载apache的for Linux 的源码包 http://www.apache.org/dist/httpd/; 存至/home/xx目录,xx是自建文件夹,我建了一个 ...

  7. linux下安装配置apache+php,linux下安装apache与php;Apache+PHP+MySQL配置攻略

    linux下安装apache与php;Apache+PHP+MySQL配置攻略 时间:2019-10-09 20:04 1.apache 在如下页面下载apache的for Linux 的源码包 ht ...

  8. linux下安装apache与php;Apache+PHP+MySQL配置攻略

    1.apache   在如下页面下载apache的for Linux 的源码包    http://www.apache.org/dist/httpd/;   存至/home/xx目录,xx是自建文件 ...

  9. RH Linux 企业5+apache+mysql+php+phpmyadmin的简单配置.

    1年前在论坛发的帖.现在归纳到博客里~ RH Linux 企业5+apache+mysql+php+phpmyadmin的简单配置. 小生初学者,刚工作,分享下刚刚的成果. RedHat Linux ...

  10. linux下安装apache + subversionSVN_Subversion

    linux下安装apache + subversion 转自:http://anxiao322.blog.163.com/blog/static/12334124220097310455860/ 目录 ...

最新文章

  1. shell 删除了hdfs 文件_知识干货 | 大数据全解 HDFS分布式文件系统
  2. monty python life of brian-电影Life of Brian 万世魔星
  3. 【数字信号处理】相关函数应用 ( 使用 matlab 计算相关函数 )
  4. golang的错误汇总
  5. python版本及ML库
  6. 【C++深度剖析教程38】类模板深度剖析
  7. express html文件接收路由参数,express 获取post 请求参数
  8. 小学计算机教案表格式,小学信息技术教案表格数据处理.docx
  9. ZYNQ7020 FPGA 如何生成从Flash和SD卡启动的镜像文件
  10. 大势至监控服务器共享文件系统,大势至局域网共享文件监控NAS文件设置的方法...
  11. 计算机视觉算法岗面试题
  12. 循环结构——分数化简
  13. 【机器学习实战】利用朴素贝叶斯算法(naive_bayes)实现新闻分类
  14. 招投标异议与政府采购质疑二者差异大比拼,你必须掌握
  15. HDFS配置之NN-SNN-DN
  16. JZOJ 1403.渡河
  17. NBA球员出手位置分布图
  18. 自定义字体之BMFont的使用
  19. android给图片加水印的极简实现方式
  20. storyboard搭建项目_Storyboard

热门文章

  1. js 获取ulr问号后参数,返回Object对象
  2. MindMaster 快捷键
  3. 基于DAC0832的程控衰减器
  4. 【强化学习论文合集】二十六.2020国际人工智能联合会议论文(IJCAI2020)
  5. MindSpore:MindScience之MindElec 电磁仿真结果可视化
  6. 阿里云出现源代码泄露企业 涉及万科等40家企业200余项目
  7. 【随堂习题1】用Python编写猜拳游戏
  8. Android Studio 打包配置设置V1签名
  9. Oracle导出数据字典
  10. sigrity前仿真,DDR地址线仿真。