You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

CentOS是否已官方发布PHP 7?按维基指引无法从PHP5.4升级求助

CentOS 官方是否提供 PHP 7 版本?升级失败的原因及解决办法

咱们先把核心问题说清楚:CentOS 7 的默认官方基础仓库(比如base、updates这些)确实没有PHP 7.x 版本——系统自带的是PHP 5.4,这是为了保证系统核心组件的稳定性(毕竟很多系统工具依赖这个老版本)。你在维基里看到的“官方版本”,其实是指CentOS官方维护的Software Collections (SCL) 仓库,这个仓库专门用来提供更新版本的软件包,属于官方支持的渠道,但它不是默认启用的基础仓库,所以容易和默认仓库混淆。

至于你看到的2年前的教程说“依赖第三方源”,其实也没错:当时SCL的普及度没那么高,很多用户会选择第三方源来装PHP7;而SCL因为不是默认仓库,有时候会被误归为“第三方”,但实际上它是CentOS官方团队维护的,稳定性更有保障。

你按照维基指引升级失败,大概率是踩了SCL的几个常见坑,我给你梳理下:

  • 没正确启用SCL仓库
    要装SCL里的PHP7,第一步得先把SCL仓库启用:
    针对CentOS 7,执行这条命令就行:

    sudo yum install centos-release-scl
    

    这个包会自动帮你添加SCL的仓库配置,不用手动改文件。

  • SCL的PHP是并行安装,不会替换系统默认的PHP5.4
    SCL的设计是为了不破坏系统默认环境,所以安装的PHP7和系统自带的PHP5.4是共存的。安装完后你得手动切换环境才能用PHP7:
    比如你要装PHP 7.2(SCL里有7.1、7.2、7.3等多个版本可选),先执行安装命令:

    sudo yum install rh-php72 rh-php72-php-fpm rh-php72-php-mysqlnd
    

    安装好后,临时启用PHP7.2环境可以用:

    scl enable rh-php72 bash
    

    要是想永久启用(比如给当前用户),就把下面这行加到你的~/.bashrc或者~/.bash_profile里:

    source /opt/rh/rh-php72/enable
    

    下次登录就自动用PHP7.2了。

  • 搞错了包名
    SCL里的PHP包是带前缀的,比如rh-php72,不是默认的php,所以不能直接用yum install php来装SCL的PHP7,必须指定带前缀的完整包名。

另外补充一句:如果你觉得SCL的操作有点麻烦,也可以用第三方源比如Remi,它的PHP版本更新更及时,但SCL胜在官方支持,稳定性更适配CentOS系统。

内容的提问来源于stack exchange,提问作者user9644880

火山引擎 最新活动