1 CGI模式

使用CGI模式时,当动态请求到达,httpd临时启动一个cgi解释器,并通过cgi协议转发要运行的内容。当cgi脚本运行结束后,将结果返回给httpd,然后cgi解释器进程自我销毁。当多个动态请求到达时,将先后启动多个cgi解释器。因此,这种方法效率极低。
在注释掉php5_module的LoadModule相关行后,使用action指令指定要使用cgi运行的类型。但注意,action指令是mod_action提供的,所以必须已经加载该模块。
例如:指定MIME类型为image/gif的请求使用images.cgi运行。显然,images.cgi脚本你必须先写好。
Action image/gif /cgi-bin/images.cgi
还可以通过添加handler来复合文件类型,再使用某个cgi脚本去运行这个handler中的任意类型。
AddHandler my-file-type .xyz
Action my-file-type "/cgi-bin/program.cgi"
对于php来说,则可以使用安装php时bin目录下提供的php-cgi程序作为cgi程序。
[root@xuexi php]# ls /usr/local/php/bin/
pear peardev pecl phar phar.phar php php-cgi php-config phpize

复制到apache默认的cgi-bin目录下,方便管理

[root@xuexi php]# cp /usr/local/php/bin/php-cgi /usr/local/apache/cgi-bin/

在httpd.conf中添加以下行

Action application/x-httpd-php /usr/local/php/bin/cgi-bin/php-cgi

2 模块方式

在编译php时,将php5_module模块编译到apache中,例如在编译php时在./configure配置中加上"--with-apxs2=/usr/local/apache/bin/apxs"。
这种交互模式下,httpd在启动时加载并激活php_module。也就是说,php-cgi常驻在httpd进程内部。当动态请求到达时,httpd不用再生成cgi解释器,而是直接将动态请求转发给它内部php-cgi。
配置实用这种交互模式非常简单,只需使用LoadModule加载php_module,再添加对应的MIME处理器即可。
LoadModule php5_module modules/libphp5.so

在mime模块中添加对应的类型

<IfModule mime_module>
AddType application/x-httpd-php .php
AddType applicaiton/x-httpd-php-source .phps
</IfModule>

3 php-fpm方式

前面说了,php-fpm是php-cgi的进程管理器。这种交互方式实际上是让php-cgi以独立于httpd的方式存在,目前基本使用php-fpm的方式管理php-cgi进程。也就是说,这种模式下,php-cgi和httpd已经分离了,它们的分离意味着请求的动静分离变为可能:httpd和php-fpm分别运行在不同服务器上。动静分离后,压力也分散到各自的服务器上。
要让php-fpm以这种方式运行,需要在编译的./configure配置选项中添加"--enable-fpm"选项。当然,还得启动php-fpm服务。例如:
service php-fpm start
这样php-cgi进程就开放着端口(默认9000)等待httpd转发动态请求。要让httpd能够转发请求到php-cgi上,需要在httpd.conf中关闭正向代理,并设置fastcgi协议代理参数。例如,转发到192.168.100.54主机上的php-fpm。

加载代理模块

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so

添加MIME类型

AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

在需要转发的虚拟主机中配置转发代理

ProxyRequests off
ProxyPassMatch ^/(.*.php)$ fcgi://192.168.100.54:9000/usr/local/apache/htdocs/$1

转载于:https://blog.51cto.com/5045390/2179015

PHP和apache的三种连接示例------转自骏马金龙博客相关推荐

  1. oracle Hash Join及三种连接方式

    在Oracle中,确定连接操作类型是执行计划生成的重要方面.各种连接操作类型代表着不同的连接操作算法,不同的连接操作类型也适应于不同的数据量和数据分布情况. 无论是Nest Loop Join(嵌套循 ...

  2. 安卓蓝牙键盘切换输入法_采用国产机械轴,三种连接模式轻松切换,TT G521上手体验...

    之前我用过三模游戏鼠标,也用过三模薄膜键盘,但是三模机械键盘,还是第一次使用.机械键盘,相信大家都知道,现在已经很普及了,估计当时把机械键盘重新带回到玩家当中的大神,也没有想到它会这么火爆吧.至于什么 ...

  3. html语言闪烁特效代码,css3 实现文字闪烁效果的三种方式示例代码

    1.通过改变透明度来实现文字的渐变闪烁,效果图: 文字闪烁 星星之火可以燎原 .myclass{ letter-spacing:5px;/*字间距*/ color: red; font-weight: ...

  4. SQL三种连接:内连接、外连接、交叉连接

    SQL三种连接:内连接.外连接.交叉连接 一.交叉连接(CROSS JOIN) 二.内连接(INNER JOIN) 三.外连接(LEFT JOIN.RIGHT JOIN.FULL JOIN) 1.左外 ...

  5. html css部分背景模糊效果,CSS3实现模糊背景的三种效果示例

    不开头了,直接进入主题. 普通背景模糊效果如下: 使用属性: filter:(2px) 普通背景模糊 为了美观不能使背景前的文字模糊,而filter属性会使这整个div的后代并且还会出现白边.也就是说 ...

  6. mysql内外三种连接,Mysql的内外连接方式

    Mysql有很多种连接方式,其中有两大主要连接方式:内连接和外连接,其中外连接又可以分为左外连接和右外连接: 对于这三种连接方式,如何判断何时使用一直困扰着我,这里就做一下自己的总结: 1.内连接:I ...

  7. 防火墙的三种连接方式

    防火墙的三种连接方式 1.Telnet连接 1.在防火墙的Gigabitethernet0/0/0接口下进行配置. interface GigabitEthernet0/0/0  undo shutd ...

  8. 皮肤检测算法三种,示例与代码

    今天是地球日,就选了张相关主题的图像做测试 第一种:RGB color space 第二种:RG color space 第三种:Ycrcb之cr分量+otsu阈值化 还有别的一些模型,效果不太好就不 ...

  9. 交换机的三种连接方式:级联、堆叠和集群

    交换机的连接方式大家应该都知道,一共有三种,分别是:级联.堆叠和集群.今天, 就由飞畅科技的小编来为大家详细介绍下交换机的这三种连接方式及彼此间的区别,感兴趣的朋友就一起来看看吧! 交换机的级联技术一 ...

最新文章

  1. if转java_java-从if-else转换为方法
  2. 使用VC++绘制坐标系
  3. 怎样自动提取邮件的内容_流程自动化和人工智能如何创建智慧物流?
  4. SpringBoot另一大神器-Actuator
  5. 在没有任何前端开发经验的基础上, 创建第一个 SAP Fiori Elements 应用
  6. 【Spark】Spark调优 资源调优
  7. C核心技术手册(二十八)
  8. c++折线平移算法_【MITA周刊】第十五周:聚类算法
  9. CentOS查看和修改PATH环境变量的方法 (转)
  10. 做了三年开发后,我选择回家创业
  11. lcx端口转发linux_技术干货 | 内网渗透之代理转发
  12. 3d touch android,苹果3DTouch好用?安卓这个功能不比它差!
  13. DVE 查看覆盖率方法
  14. UE风格化Day9-(摆烂特辑)原神石块砖材质欣赏
  15. DaVinci Resolve Advanced Panel达芬奇调色台
  16. java基于http协议客户端与服务器端的交互,通俗易懂客户端与服务器端交互原理(HTTP数据请求与HTTP响应,包括Servlet部分...
  17. 内核对象句柄泄漏检测
  18. 论文学习报告_201106
  19. 替换android的hal支持阵列麦拾音
  20. 计网(二)—— 硬件与软件

热门文章

  1. 蜘蛛程序php,php模仿百度spider蜘蛛爬虫程序例子
  2. 项目开发中,真的有必要定义VO,BO,PO,DO,DTO这些吗?
  3. 一年365天,每周5个工作日,进步1%,两个休息日退步1%,最终进步到多少
  4. PAMI-2021:5篇顶级GNN论文
  5. WIN10 登录samba服务器提示秘密不正确
  6. 三星android版本升级包下载,三星Galaxy S21系列系统更新 安卓安全补丁更新到4月1日...
  7. 自媒体推广的方法和技巧有哪些?
  8. 从USB数据采集板看技术造诣
  9. Python基础—内置函数、匿名函数、递归函数
  10. Android Intent Service Usage