php怎么下载安装到centos系统_yum源配置与安装【教程】

27次阅读

centos 7 默认 yum 源仅提供 php 5.4.16,因 Red Hat 策略不升级主版本;需启用 remi 仓库(如 remi-php74 或 remi-82)并禁用冲突源,配合 epel-release 和 yum-utils 安装指定 PHP 版本及扩展。

php怎么下载安装到centos系统_yum源配置与安装【教程】

CentOS 7 默认的 yum 源里 PHP 版本太老(5.4),直接 yum install php 装不上 7.x 或 8.x —— 你得换源,不是“配置错了”,是原生源压根没提供。

为什么 yum install php 装的是 PHP 5.4?

CentOS 7 自带的 baseupdates 仓库只维护与系统生命周期一致的旧版 PHP(5.4.16),安全更新到 2024 年就停了。这不是 bug,是 Red Hat 的策略:PHP 升级交给第三方仓库或 SCL。

  • 直接运行 yum list php 会看到 php.x86_64 5.4.16-48.el7
  • php -v 输出也确认是 5.4.x
  • 想装 7.4/8.0/8.1/8.2?必须启用额外仓库

推荐方案:启用 remi 仓库(最稳定、更新及时)

remi 是 CentOS/RHEL 生态最成熟的第三方 PHP 仓库,支持多版本共存,且提供 php 主包 + 扩展分包(如 php-mysqlndphp-opcache)。

  • 先安装 EPEL(remi 依赖它):
    yum install epel-release -y
  • 再安装 remi 仓库配置:
    yum install https://rpms.remirepo.net/enterprise/remi-release-7.rpm -y
  • 启用 PHP 7.4(示例):
    yum-config-manager --enable remi-php74
  • 现在装 PHP:
    yum install php php-cli php-common php-opcache php-mysqlnd php-gd php-xml php-mbstring -y

注意:yum-config-manager 来自 yum-utils,若报错“command not found”,先 yum install yum-utils -y

立即学习PHP免费学习笔记(深入)”;

如果要装 PHP 8.2,步骤一样但仓库名不同

remi 对每个 PHP 大版本都单独建 repo,不能混用。PHP 8.2 需启用 remi-82,不是 remi-php82(后者不存在):

  • 启用 8.2 主仓库:
    yum-config-manager --enable remi-82
  • 禁用其他 PHP repo(避免冲突):
    yum-config-manager --disable remi-php74 remi-php80 remi-php81
  • 安装:
    yum install php php-cli php-fpm php-mysqlnd php-opcache -y

装完后 php -v 应输出 PHP 8.2.x;若还是 7.4,说明 remi-82 没生效,检查 yum repolist enabled | grep remi 是否有 remi-82

别碰 webtatic 和手动编译(除非真有特殊需求)

webtatic 已停止维护(最后更新是 2020 年),其 PHP 包在 CentOS 7.9+ 上常因依赖冲突失败;手动编译虽然可控,但你要自己处理 libxml2openssloniguruma 等底层依赖版本,升级和打补丁极其麻烦。

  • 常见翻车点:configure: Error: off_t undefined; check your library configuration(缺 glibc-devel
  • 更隐蔽的问题:编译出来的 php-fpm 无法被 systemd 正确管理,systemctl start php-fpmFailed to start php-fpm.service: Unit php-fpm.service not found

remi 提供完整 systemd unit 文件、logrotate 配置、SElinux 策略,这些细节才是生产环境真正卡人的地方。

text=ZqhQzanResources