没有合适的资源?快使用搜索试试~ 我知道了~
CentOS下与Apache连接的PHP多版本共存方案实现详解
0 下载量 38 浏览量
2020-10-23
02:42:05
上传
评论
收藏 66KB PDF 举报
温馨提示
试读
2页
主要介绍了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/"
语法很简单,跟配置反向代理类似,可以按实际需要做修改。事实上与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运行模式。
以上即是处理方式。
[已知问题已知问题]:裸目录地址转发:裸目录地址转发
有一个困扰的问题没有解决,感觉有点像模块bug:
资源评论
weixin_38702931
- 粉丝: 10
- 资源: 907
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功