错误:php70w-common conflicts with php-common-5.3.3-49.el6.x86_64 You could try using --skip-broken to

本文记录了解决因未完全卸载旧版PHP导致安装新版PHP时出现的版本冲突问题。通过正确的卸载步骤和使用特定命令安装所需版本,避免了系统中PHP版本间的相互干扰。

记录一下

  由于之前系统自带的php5.3.3没有卸载干净;

 

在执行phpize时报错说需要php-devel 

然后yum -y install php-delel ;

然后就报错

错误:php70w-common conflicts with php-common-5.3.3-49.el6.x86_64  You could try using --skip-broken to

 

解决办法;

yum -y install php70w-devel 

 

参考 https://www.xiegaosheng.com/post/view?id=81

<think>我们正在解决 PHP 版本冲突问题,具体是 `php72w-common` 与 `php-common-5.4.16-48.el7.x86_64` 的冲突。 这两个包来自不同的仓库,且代表不同版本的PHP。通常,系统不允许同时安装两个不同版本的相同组件(commonPHP的核心部分)。 原因分析: 1. `php-common-5.4.16-48.el7.x86_64` 是CentOS 7默认仓库中的PHP 5.4版本(较旧)。 2. `php72w-common` 是Webtatic仓库提供的PHP 7.2版本(需要额外添加Webtatic仓库)。 冲突原因:两个包都提供了相同功能的文件(但版本不同),因此无法共存。 解决方案:我们需要选择使用其中一个版本,并移除另一个版本。由于PHP 5.4已经非常古老且不再被支持,通常建议升级到更高版本(如7.2)。 步骤: 1. 检查当前已安装的PHP包: ```bash rpm -qa | grep php ``` 2. 如果系统中已经安装了php-common(来自默认仓库的PHP5.4),则需要先卸载它及其相关的PHP包,然后安装PHP7.2。 3. 但是注意:如果系统中已经存在一些依赖于PHP5.4的应用程序,那么卸载PHP5.4可能会影响这些应用。请确保可以升级到PHP7.2。 4. 具体步骤: a. 移除现有的PHP 5.4包: ```bash sudo yum remove php-common ``` 注意:这个命令会移除所有依赖php-common的包,包括php, php-cli, php-mysql等。所以如果你之前安装了PHP5.4的全部,那么都会被移除。 b. 添加Webtatic仓库(如果尚未添加): ```bash sudo rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm ``` c. 安装PHP7.2及相关扩展: ```bash sudo yum install php72w php72w-common php72w-cli php72w-mysql ... ``` 请根据你的需要安装其他扩展(如php72w-gd, php72w-mbstring等)。 5. 如果不想使用Webtatic仓库,也可以考虑其他仓库,比如Remi仓库。 6. 验证: ```bash php -v ``` 注意:如果系统中同时存在两个版本的PHP,并且需要同时使用(比如不同项目需要不同版本),则不能通过yum同时安装两个版本的php-common。此时,建议使用Docker或者软件集合(Software Collections, SCL)来管理多个PHP版本。 但是,根据问题描述,我们只需要解决冲突,所以选择其中一个版本安装即可。 如果选择使用SCL(Software Collections)方式安装PHP7.2(而不卸载系统自带的PHP5.4),可以按照以下步骤: 1. 安装SCL工具: ```bash sudo yum install centos-release-scl ``` 2. 安装PHP7.2软件集合: ```bash sudo yum install rh-php72 ``` 3. 启用PHP7.2: ```bash scl enable rh-php72 bash ``` 4. 这样,在当前终端中,PHP7.2就会覆盖系统PHP版本(但不会永久替换系统默认PHP)。要永久启用,可以将`source scl_source enable rh-php72`添加到用户的~/.bashrc文件中。 但是,请注意:这种方式安装的PHP7.2不会与系统的php-common冲突,因为它们被安装在不同的路径(/opt/rh/rh-php72/root/usr/bin/php)。所以,这种方式可以避免冲突,同时保留系统原有的PHP5.4。 总结解决方案: 方案一(推荐):完全移除PHP5.4,安装PHP7.2(通过Webtatic或Remi仓库)作为默认PHP版本。 方案二:使用SCL安装PHP7.2,按需启用(不影响系统默认的PHP5.4)。 根据你的需求选择。 相关问题: 1. 如何配置Webtatic仓库? 2. 如何在同一个系统中安装多个PHP版本? 3. 如何切换默认的PHP版本? 4. 如何为不同的虚拟主机配置不同的PHP版本?</think>### 🔧 解决 PHP 版本冲突:`php72w-common` 与 `php-common-5.4.16-48.el7.x86_64` #### 📌 冲突核心原因 这两个包代表不同版本的 PHP 核心组件,无法共存: 1. `php-common-5.4.16`:CentOS 7 默认仓库的 **PHP 5.4** 核心包 2. `php72w-common`:Webtatic 仓库的 **PHP 7.2** 核心包 冲突本质是系统不允许同时安装两个不同版本的 PHP 核心组件[^1]。 --- ### 🔧 完整解决方案(二选一) #### ✅ 方案一:完全迁移到 PHP 7.2(推荐) ```bash # 1. 卸载旧版 PHP 5.4 及相关组件 sudo yum remove php-common php-cli php-* -y # 2. 添加 Webtatic 仓库(PHP 7.2 源) sudo rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm # 3. 安装 PHP 7.2 全家桶 sudo yum install php72w php72w-common php72w-cli php72w-mysqlnd php72w-opcache -y # 4. 验证版本 php -v # 应显示 PHP 7.2.x ``` #### ✅ 方案二:多版本共存(使用 Software Collections) ```bash # 1. 安装 SCL 工具 sudo yum install centos-release-scl -y # 2. 安装 PHP 7.2 独立环境 sudo yum install rh-php72 rh-php72-php-common -y # 3. 启用 PHP 7.2 环境(临时) scl enable rh-php72 bash # 4. 验证共存 php -v # 显示 PHP 7.2 /usr/bin/php -v # 显示 PHP 5.4(系统默认) ``` --- ### ⚠️ 关键注意事项 1. **依赖关系**: 移除 `php-common` 会连带卸载所有依赖它的扩展(如 `php-mysql`),需在新版本中重新安装[^2] ```bash # 查看被卸载的扩展列表 rpm -qa | grep php- | sort ``` 2. **配置文件迁移**: PHP 5.4 配置路径:`/etc/php.ini` PHP 7.2 配置路径:`/etc/opt/rh/rh-php72/php.ini`(SCL方案) 3. **Web服务器集成**: ```bash # Apache 需重启 sudo systemctl restart httpd # Nginx 需配置 PHP-FPM sudo systemctl start rh-php72-php-fpm ``` --- ### 🔄 故障排查 若安装时仍报错,尝试: ```bash # 强制清除冲突包 sudo rpm -e --nodeps php-common-5.4.16-48.el7.x86_64 # 重建仓库缓存 sudo yum clean all sudo yum makecache ``` --- ### 📚 版本管理原理 | 组件 | PHP 5.4 (默认) | PHP 7.2 (Webtatic) | PHP 7.2 (SCL) | |------|----------------|---------------------|---------------| | 核心包 | `php-common` | `php72w-common` | `rh-php72-php-common` | | 安装路径 | `/usr/bin/php` | `/usr/bin/php` | `/opt/rh/rh-php72/root/usr/bin/php` | | 配置文件 | `/etc/php.ini` | `/etc/php.ini` | `/etc/opt/rh/rh-php72/php.ini` | | 共存能力 | ❌ | ❌ | ✅ | > 💡 **设计建议**:生产环境推荐方案一(完全迁移),开发环境可用方案二(多版本共存) ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

谢高升

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值