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

Parrot OS系统下PHP7.4.21已安装gd扩展但运行应用提示缺失求助

PHP7.4 gd扩展已安装但Composer识别失败问题解决

报错信息(中文翻译)

从锁文件安装依赖(包括require-dev依赖)
正在验证锁文件内容可在当前平台安装
警告:锁文件与composer.json的最新更改不同步,你可能安装的是过时的依赖,建议执行composer update或composer update <包名>。
你的锁文件不包含兼容的依赖集合,请执行composer update。

问题1

  • phpoffice/phpspreadsheet被锁定到1.14.1版本,未请求更新该包
  • phpoffice/phpspreadsheet 1.14.1需要ext-gd * -> 你的系统中缺失该扩展,请安装或启用PHP的gd扩展。

如需启用扩展,请确认扩展在以下ini文件中已开启:

  • /etc/php/7.4/cli/php.ini
  • /etc/php/7.4/cli/conf.d/10-mysqlnd.ini
  • /etc/php/7.4/cli/conf.d/10-opcache.ini
  • /etc/php/7.4/cli/conf.d/10-pdo.ini
  • /etc/php/7.4/cli/conf.d/15-xml.ini
  • /etc/php/7.4/cli/conf.d/20-bcmath.ini
  • /etc/php/7.4/cli/conf.d/20-bz2.ini
  • /etc/php/7.4/cli/conf.d/20-calendar.ini
  • /etc/php/7.4/cli/conf.d/20-ctype.ini
  • /etc/php/7.4/cli/conf.d/20-curl.ini
  • /etc/php/7.4/cli/conf.d/20-dom.ini
  • /etc/php/7.4/cli/conf.d/20-exif.ini
  • /etc/php/7.4/cli/conf.d/20-ffi.ini
  • /etc/php/7.4/cli/conf.d/20-fileinfo.ini
  • /etc/php/7.4/cli/conf.d/20-ftp.ini
  • /etc/php/7.4/cli/conf.d/20-gd.ini
  • /etc/php/7.4/cli/conf.d/20-gettext.ini
  • /etc/php/7.4/cli/conf.d/20-gmp.ini
  • /etc/php/7.4/cli/conf.d/20-iconv.ini
  • /etc/php/7.4/cli/conf.d/20-imagick.ini
  • /etc/php/7.4/cli/conf.d/20-imap.ini
  • /etc/php/7.4/cli/conf.d/20-intl.ini
  • /etc/php/7.4/cli/conf.d/20-json.ini
  • /etc/php/7.4/cli/conf.d/20-mbstring.ini
  • /etc/php/7.4/cli/conf.d/20-mysqli.ini
  • /etc/php/7.4/cli/conf.d/20-pdo_mysql.ini
  • /etc/php/7.4/cli/conf.d/20-pdo_pgsql.ini
  • /etc/php/7.4/cli/conf.d/20-pdo_sqlite.ini
  • /etc/php/7.4/cli/conf.d/20-pgsql.ini
  • /etc/php/7.4/cli/conf.d/20-phar.ini
  • /etc/php/7.4/cli/conf.d/20-posix.ini
  • /etc/php/7.4/cli/conf.d/20-readline.ini
  • /etc/php/7.4/cli/conf.d/20-shmop.ini
  • /etc/php/7.4/cli/conf.d/20-simplexml.ini
  • /etc/php/7.4/cli/conf.d/20-soap.ini
  • /etc/php/7.4/cli/conf.d/20-sockets.ini
  • /etc/php/7.4/cli/conf.d/20-sqlite3.ini
  • /etc/php/7.4/cli/conf.d/20-sysvmsg.ini
  • /etc/php/7.4/cli/conf.d/20-sysvsem.ini
  • /etc/php/7.4/cli/conf.d/20-sysvshm.ini
  • /etc/php/7.4/cli/conf.d/20-tokenizer.ini
  • /etc/php/7.4/cli/conf.d/20-xmlreader.ini
  • /etc/php/7.4/cli/conf.d/20-xmlrpc.ini
  • /etc/php/7.4/cli/conf.d/20-xmlwriter.ini
  • /etc/php/7.4/cli/conf.d/20-xsl.ini
  • /etc/php/7.4/cli/conf.d/20-zip.ini
    你也可以在终端执行php --ini查看PHP CLI模式使用的配置文件。

排查解决步骤

  1. 确认gd扩展实际加载状态
    执行命令:
    php7.4 -m | grep gd
    如果命令无任何输出,说明gd扩展虽然存在配置文件,但实际加载失败,这是该问题的核心原因:Parrot OS基于Debian测试分支,默认源的旧版PHP7.4扩展包和系统新的依赖库(如libpng、libjpeg)不兼容,导致扩展无法正常加载。
  2. 查看具体加载错误
    执行命令:
    php7.4 -i 2>&1 | grep -i gd
    输出中会明确给出加载失败的原因,常见为.so扩展文件不存在、依赖库版本不匹配。
  3. 修复方案
  • 先完全卸载当前所有PHP7.4相关组件:
    apt purge php7.4* -y && apt autoremove -y
  • 添加第三方适配PHP源后重新安装PHP7.4和对应gd扩展:
    apt install php7.4 php7.4-gd -y
  • 验证加载状态,执行第一步的命令,输出gd即说明修复成功。
  1. 额外注意事项
    如果你的设备安装了多个PHP版本,需确认CLI默认版本为7.4:
    执行php -v查看版本,若不是7.4,执行update-alternatives --set php /usr/bin/php7.4切换默认版本即可。
    扩展正常加载后,若仍出现锁文件警告,执行composer update phpoffice/phpspreadsheet单独更新该依赖包即可,无需全量更新所有依赖。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 22:18:04