宝塔10周年开年大促,年度钜惠,先领红包再下单,享受折上折,还有抽奖!查看活动
当前位置:论坛首页 > Linux面板 > 讨论

php7.4版本在rocky10 宝塔安装不起,手动安装可以

发表在 Linux面板3 天前 [复制链接] 1 7

PHP 7.4 在 AlmaLinux 10.1 系统上编译时,与系统中高版本的 libxml2 库存在兼容性问题,具体表现为函数参数类型不匹配和废弃函数调用。下面我会给你提供完整的解决方案。
问题分析
  • 核心错误:xmlSetStructuredErrorFunc 函数期望接收 const struct _xmlError * 类型的参数,但 PHP 7.4 源码中传递的是非 const 类型,导致类型不兼容。
  • 环境原因:AlmaLinux 10.1 自带的 libxml2 版本较高(新增了 const 修饰),而 PHP 7.4 是较老的版本,源码未适配该变化。
  • 次要警告:xmlRelaxNGCleanupTypes 函数已被废弃,也需要适配。



从 libxml2 2.9.x 系列(包括 2.9.12)开始,xmlSetStructuredErrorFunc 等函数的参数已新增 const 修饰(如 const struct _xmlError *),而 PHP 7.4 源码中对应的函数参数未添加 const,导致类型不兼容 —— 这正是你之前编译失败的核心原因。2.9.12 作为 2.9.x 系列的后续版本,延续了该接口设计,并未回滚或兼容旧版 PHP 的写法。
无额外收益:libxml2 2.9.12 的更新主要集中在安全补丁和细节优化,并未针对旧版 PHP 做兼容性适配,升级后无法解决编译问题,反而可能因版本差异引入新的依赖冲突。

要在 AlmaLinux 10 上安装 PHP 7.4,请按照以下步骤启用 Remi 仓库,安装 PHP 核心包,并添加常用扩展。
步骤1:先更新所有系统包:
sudo dnf update -y

步骤2:安装Remi仓库包:
sudo dnf install https://rpms.remirepo.net/enterprise/remi-release-10.rpm -y

步骤3:列出可用的PHP模块流:
sudo dnf module list php

步骤4:重置默认PHP模块并启用PHP 7.4:
sudo dnf module reset php -ysudo dnf module enable php:remi-7.4 -y

步骤5:安装PHP 7.4核心组件:
sudo dnf install -y php74 php74-php-fpm php74-php-cli

步骤6:安装常用的PHP扩展:
sudo dnf install -y php74-php-{mysqlnd,curl,gd,mcrypt,json,pear,common,xml,zip,devel,xsl,soap,bcmath,mbstring,gettext,imagick}

  • mysqlnd – PHP原生MySQL驱动程序
  • curl – 启用 HTTP 和 API 请求
  • GD——图像处理与处理
  • mcrypt – 加密功能(遗留支持)
  • json – JSON data handling
  • pear – PHP 扩展与应用仓库
  • common – 核心PHP文件和依赖
  • xml——XML 解析与处理
  • zip – ZIP 归档管理
  • Devel – PHP 开发头部
  • xsl – XSLT 变换
  • soap – SOAP 协议支持
  • bcmath – 任意精确数学
  • mbstring – 多字节字符串处理
  • gettext – 本地化与翻译
  • imagick – 使用ImageMagick的高级图像处理
步骤7:检查已安装的PHP版本:
php74 -v

恭喜你!您已成功在 AlmaLinux 10 上安装了 PHP 7.4 及必要的扩展,您的系统现在已准备好进行 PHP 应用开发或托管。


使用道具 举报 只看该作者 回复
发表于 3 天前 | 显示全部楼层
rocky 8 宝塔安装mysql 8.045  变成8.0.24 gx也安装不起
使用道具 举报 回复 支持 反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

紧急运维服务

响应时间:3分钟

问题处理方式:宝塔专家1对1服务

工作时间:工作日:9:00 - 18:30

宝塔专业团队为您解决服务器疑难问题

点击联系技术分析

工作时间:09:00至18:30

快速回复 返回顶部 返回列表