You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CentOS7 VPS更新PHPASN1后遇ext-gmp缺失问题求助

解决CentOS7下PHP7.0搭配fgrosse/phpasn1 2.0.1时缺失ext-gmp的问题

我来帮你搞定这个APNS服务器更新后碰到的问题,之前我在CentOS7+PHP7.0的环境里也处理过类似的情况,咱们一步步来:

问题根源

你更新后的fgrosse/phpasn1 2.0.1版本开始依赖PHP的gmp扩展(之前的1.x版本不需要这个),而你的CentOS7 PHP7.0环境默认没装这个扩展,所以才会报这个错误。

解决办法(两种可选)

方法一:安装PHP7.0的gmp扩展(推荐,保持新版本包)

  • 先安装系统层面的gmp依赖库,编译PHP扩展需要它:
    yum install gmp-devel -y
    
  • 安装PHP7.0对应的gmp扩展:
    如果你用的是remi源(大部分CentOS7用户装PHP7.0都会用这个源),直接执行:
    yum install php70-php-gmp -y
    
    要是你还没配置remi源,先执行这几步添加源:
    # 安装epel源
    yum install epel-release -y
    # 安装remi源
    yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm -y
    # 启用PHP7.0的仓库
    yum-config-manager --enable remi-php70
    
  • 重启你的PHP服务(根据你用的服务选择):
    用PHP-FPM的话:
    systemctl restart php70-php-fpm
    
    用Apache的话:
    systemctl restart httpd
    
  • 验证扩展是否安装成功:
    php -m | grep gmp
    
    如果输出gmp就说明安装成功了,之后再重新执行composer install或者composer update就没问题了。

方法二:回退到不需要gmp的PHPASN1旧版本(适合不想折腾扩展的情况)

如果你不想安装gmp扩展,可以指定安装PHPASN1的1.x系列版本(这个版本和你之前用的环境兼容,不需要gmp):

composer require fgrosse/phpasn1:^1.5

执行这个命令后,Composer会自动安装兼容的旧版本,就能恢复之前的APNS服务了。

额外提示

如果你的PHP是源码编译的,那需要手动编译gmp扩展:

  • 找到你PHP7.0的源码包,进入ext/gmp目录
  • 执行:
    phpize
    ./configure --with-gmp
    make && make install
    
  • 打开php.ini文件,添加一行extension=gmp.so
  • 重启PHP服务即可

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 03:52:11