CentOS 7如何安装旧版EPEL仓库以获取php5 mssql_*函数
解决CentOS7下旧内网应用依赖php-mssql的安装问题
方案一:使用EPEL归档仓库安装
新版EPEL已移除php-mssql包,可切换到EPEL归档仓库获取旧版包:
- 备份当前EPEL仓库配置(若已安装)
mv /etc/yum.repos.d/epel*.repo /etc/yum.repos.d/epel*.repo.bak - 安装旧版EPEL-release包(以包含php-mssql的7-14版本为例)
rpm -ivh https://dl.fedoraproject.org/pub/archive/epel/7/x86_64/Packages/e/epel-release-7-14.noarch.rpm - 安装php-mssql
yum install php-mssql
注意:归档仓库为只读状态,后续不会收到包更新,适合内网旧应用场景,但需知晓潜在安全风险。
方案二:手动下载所有依赖包批量安装
若不想切换仓库,可手动解决依赖链:
- 查看php-mssql包的完整依赖列表
rpm -qpR php-mssql-5.4.16-9.el7.x86_64.rpm - 从EPEL归档仓库的
7/x86_64/Packages/目录下,下载列表中所有缺失的依赖包 - 将所有下载的rpm包放入同一目录,执行批量安装
yum localinstall /path/to/rpm/files/*.rpm
yum localinstall会自动处理本地包的依赖关系,比直接用rpm -ivh更可靠。
方案三:改用PDO_ODBC替代(需少量代码调整)
若应用允许微调代码,可使用PDO_ODBC替代旧版mssql扩展,这是更长期的兼容方案:
- 安装所需组件
yum install php-pdo php-odbc freetds - 配置freetds连接MSSQL服务器(编辑
/etc/freetds.conf),然后在应用中用PDO语法替换原mssql函数调用。
额外注意事项
- 确保当前PHP版本与原环境一致(CentOS7默认PHP5.4,与你之前使用的版本匹配),若已升级PHP需降级回对应版本。
- 内网环境中,可将所需rpm包下载后离线存储,避免后续归档仓库访问问题。
内容的提问来源于stack exchange,提问作者baron_bartek
相关产品推荐
相关产品推荐

