CentOS7下使用Yum安装php-mysql时遭遇冲突问题求助
嘿,我懂你在CentOS 7上装php-mysql碰到冲突的烦恼——别担心,这种情况在混合启用第三方源(比如你输出里的ius、nux-dextop)时特别常见,咱们一步步来搞定它。
先看看你执行的命令和部分输出:
[root@xweb01 ~]# yum -y install php-mysql
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
- base: mirror.atlanticmetro.net
- epel: epel.mirror.constant.com
- extras: mirrors.mit.edu
- ius: ius.mirror.constant.com
- nux-dextop: mirror.li.nux.ro
- updates: repos-va.psychz.net
Resolving Dependencies ...
可能的原因
CentOS 7默认Base源的PHP版本比较旧(大概是5.4),而你启用了ius这类提供新版PHP的第三方源,不同源的PHP包版本不兼容,导致php-mysql的依赖无法匹配,触发冲突。
具体解决步骤
先排查已安装的PHP包
执行这条命令,看看当前系统里装了哪些PHP相关包,以及它们的来源和版本:rpm -qa | grep php你会看到类似
php-5.4.16-48.el7.x86_64(Base源)或者php72u-common-7.2.34-1.el7.ius.x86_64(IUS源)的输出,重点看是不是有不同版本/源的PHP包混装。卸载冲突的PHP包
如果发现混装了不同版本的PHP,先把旧的冲突包卸载掉(比如Base源的旧版PHP):# 先停止Apache服务(如果在运行的话) systemctl stop httpd # 卸载旧版PHP相关包 yum remove php php-common php-cli卸载时注意看提示,别误删其他依赖的服务。
安装匹配版本的php-mysql
根据你要使用的PHP版本,安装对应的mysql扩展包:- 如果用IUS源的PHP7.2,就装
php72u-mysql:yum install php72u-mysql - 不确定的话,可以先搜索可用的php-mysql包:
搜索结果里会列出所有适配不同PHP版本的包,选和你当前PHP版本一致的那个安装。yum search php-mysql
- 如果用IUS源的PHP7.2,就装
清理缓存重试(可选)
如果还是有问题,先清理yum缓存再重新尝试:yum clean all && yum makecache yum install php-mysql # 或者你选的对应版本包
小提醒
后续搭建环境时,尽量统一使用一个源的PHP包——要么用Base源的旧版,要么用IUS/Remi这类源的新版,避免不同源的包混装,能减少很多依赖冲突问题。
内容的提问来源于stack exchange,提问作者Sammy

