广告
返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >如何实现CentOS与Apache连接的PHP多版本共存
  • 106
分享到

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

2023-06-05 20:06:28 106人浏览 薄情痞子
摘要

这篇文章给大家介绍如何实现Centos与Apache连接的PHP多版本共存,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。CentOS下与Apache连接的php多版本共存方案实现,针对mod_fcgi模块的配置作了一些

这篇文章给大家介绍如何实现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<VirtualHost *:80> 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 <Directory "/var/www/html/site_1"> Options +ExecCGI </Directory></VirtualHost>

几个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多版本共存就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

--结束END--

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

本文链接: https://www.lsjlt.com/news/244502.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何实现CentOS与Apache连接的PHP多版本共存
    这篇文章给大家介绍如何实现CentOS与Apache连接的PHP多版本共存,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。CentOS下与Apache连接的PHP多版本共存方案实现,针对mod_fcgi模块的配置作了一些...
    99+
    2023-06-05
  • 如何使用OneinStack实现多版本PHP共存
    这篇文章跟大家分析一下“如何使用OneinStack实现多版本PHP共存”。内容详细易懂,对“如何使用OneinStack实现多版本PHP共存”感兴趣的朋友可以跟着小编的思路慢慢深入来阅读一下,希望阅读后能够对大家有所帮助。下面跟着小编一起...
    99+
    2023-06-28
  • 如何在lnmp中实现PHP多版本共存
    背景:one框架需要swool扩展,同时php版本需要7.3,目前服务器安装的是lnmp1.6其中php5.6. 所以觉得安装一个php7.3作为切换版本 ,以下是安装步骤 1.查找lnmp的inst...
    99+
    2023-09-09
    php nginx 服务器
  • 如何实现Java JDK的多版本共存
    学习Java最一开始就是需要做环境配置啦,安装JDK是必不可少的。大家都知道JDK是Java开发者工具包,那么一般来说要选择什么样的版本来安装呢?可以安装多个JDK吗?是否可以我随时想切换哪个JDK就使用哪个呢? 下面我会主要说明如何实现J...
    99+
    2023-09-22
    java jvm 开发语言
  • 如何实现mysql与php的连接
    这篇文章将为大家详细讲解有关如何实现mysql与php的连接,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。  定义:  PDO是PHP Data Object的简称,代表PHP数据对象...
    99+
    2023-06-06
  • PHP连接数据库如何实现最基本的增删改查
    PHP连接数据库如何实现最基本的增删改查,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。PHP连接数据库,实现最基本的增删改查(面向对象)PHP...
    99+
    2022-10-18
  • 如何实现PHP连接数据库,通过面向过程方法实现最基本的增删改查操作
    如何实现PHP连接数据库,通过面向过程方法实现最基本的增删改查操作?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。1、PHP连接...
    99+
    2022-10-18
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作