千家信息网

如何实现CentOS与Apache连接的PHP多版本共存

发表于:2025-01-24 作者:千家信息网编辑
千家信息网最后更新 2025年01月24日,这篇文章给大家介绍如何实现CentOS与Apache连接的PHP多版本共存,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。CentOS下与Apache连接的PHP多版本共存方案实现
千家信息网最后更新 2025年01月24日如何实现CentOS与Apache连接的PHP多版本共存

这篇文章给大家介绍如何实现CentOS与Apache连接的PHP多版本共存,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

CentOS下与Apache连接的PHP多版本共存方案实现,针对mod_fcgi模块的配置作了一些说明。

在apache下整合fastCGI模式运行的php-fpm,似乎网上很少相关材料,就连英文版材料也少。只要是php-fpm,基本上都是与nginx搭配。查了一大批相关资料,写本文总结一下。

apache下有多个fastCGI的支持方案:至少有mod_fcgi、mod_fastcgi(git)、mod_proxy_fcgi等。这两个模块都有点老,尤其mod_fastcgi自从2007年以来就没有更新,略掉不谈,事实上没用过用。mod_proxy_fcgi模块是httpd 2.4+的版本正式引入,通过简洁的一行 ProxyPassMatch 指令即可。

mod_fcgi

mod_fcgi模块本身是做fastCGI进程管理的,使用它就不需要使用php-fpm管理进程了。核心配置参数

LoadModule fcgid_module modules/mod_fcgid.so DocumentRoot "/var/www/html/site_1" ServerName "www.yourhost.com" DirectoryIndex index.html index.php #php.ini的存放目录,Linux下通常不需要 #FcgidInitialEnv PHPRC "D:/php" # 设置PHP_FCGI_MAX_REQUESTS大于或等于FcgidMaxRequestsPerProcess,防止php-cgi进程在处理完所有请求前退出 FcgidInitialEnv PHP_FCGI_MAX_REQUESTS 1000 #php-cgi每个进程的最大请求数 FcgidMaxRequestsPerProcess 1000 #php-cgi最大的进程数 FcgidMaxProcesses 3 #最大执行时间 FcgidIOTimeout 600 FcgidIdleTimeout 600 #php-cgi的路径 FcgidWrapper /usr/local/php7/bin/php-cgi .php AddHandler fcgid-script .php FcgidInitialEnv PHP_FCGI_MAX_REQUESTS 1000 Options +ExecCGI

几个Fcgid*指令,是优化之用,这里仅示例,要按实际情况调整数值。具体参看mod_fcgi官方文档

使用mod_fcgid的几个特点

php-fgi进程是由apache模块启动并管理,不需要配置php-fpm

在php-cig进程以apache用户身份运行,php程序写的文件,其权限为apache用户(而不像php-fpm下写文件为php-fpm用户所有,默认是nobody),这样在目录权限管理方面一致性高些。

mod_fastcgi

虽然CentOS 6.x下是apache 2.2,但所幸已经有人成功移植: https://github.com/ceph/mod-proxy-fcgi 我们可以直接使用;更幸运的是它已经进入epel源,直接yum安装即可;不想匹配epel源的,直接下载rpm包安装也可以(示例 http://mirrors.ustc.edu.cn/epel/6/x86_64/)

当然可以重新编译安装apache 2.4, 这样直接有mod_proxy_fcgi可以使用,但这里还是保持原版本不变,省掉编译的工作量。

参考mod_proxy_fcgi官方文档,整合php-fpm的配置指令

ProxyPassMatch "^/myapp/.*\.php(/.*)?$" "fcgi://localhost:9000/var/www/http://www.bbqmw.net/qm_zyqm/"

语法很简单,跟配置反向代理类似,可以按实际需要做修改。事实上与mod_proxy模块语法一致的,不同处是将http协议改成fcig协议。

以上是apache整合php-fpm模式运行的fastCGI,接下来要对yum安装的php做下配置修改。

yum安装的php配置文件 /etc/httpd/conf.d/php.conf ,其中有如下一行

AddHandler php5-script .php

我们要对不同的站点启用不同的php,上面一行是对全局的.php文件分配给php模块处理,我们把这一行注释掉。而是在每个站点启用不同的php运行模式。

关于如何实现CentOS与Apache连接的PHP多版本共存就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

模块 进程 配置 版本 不同 一行 文件 管理 运行 最大 指令 模式 用户 整合 一致 事实 事实上 内容 官方 实际 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 软件开发成果定义 玖舜软件开发有限公司是真的假的 丰台区运营网络技术咨询哪家好 sql如何将数据库备份到本机 数据库技术上什么课 网络安全等级证书考试题库 中国电信的网络是租用的服务器吗 泰兴久久网络技术中心 美国云服务器恒创科技信赖 重庆专业软件开发哪里好 服务器可以搭建什么控制面板 游戏服务器扩容多少钱 暗黑重制版服务器怎么了 网络安全防火墙管理 方舟服务器怎么改成pvp 大华平台管理服务器调试 有超多副本的手机版服务器 明确网络安全产品国产化 股票数据软件开发 08数据库如何查看1433补丁 手游软件开发用什么软件 河北省网络安全专业院校 网络安全专业的名人 软件开发的新技术论文 网络安全法规定安全保护义务 数据库审计技术架构 苹果软件开发工具要钱吗 华媒互动网络技术北京有限公司 深圳市服务器搬迁公司价格 网络技术与应用冯先成重点
0