最直观办法是运行phpinfo()查看GD小节,确认gd.enabled为enabled、GD Version存在及jpeg/png/webp等格式标enabled;也可用extension_loaded('gd')返回布尔值验证,或命令行php -m | grep gd筛查CLI环境。

直接用 phpinfo() 看 GD 是否启用
最直观的办法就是运行 phpinfo(),它会把所有已加载的扩展和配置原样打出来。GD 库状态就藏在 “gd” 小节里,重点看三处:gd.enabled(必须为 enabled)、GD Version(比如 bundled (2.3.3) 或 system)、以及下方列出的图像格式支持(如 jpeg、png、webp 是否标 enabled)。
实操建议:
- 新建一个
info.php文件,内容只有一行: - 通过本地服务器访问
http://localhost/info.php(或你实际的本地地址) - 用浏览器 Ctrl+F 搜索 “gd”,快速定位到 GD 模块区块
用 extension_loaded('gd') 写代码验证
适合集成进脚本或部署检查逻辑中——比 phpinfo() 更轻量、更可控。这个函数返回布尔值,true 表示 GD 扩展已加载且可用;false 则说明没装、被禁用,或模块名写错了(注意是 'gd',不是 'gdlib' 或 'php_gd2')。
常见错误现象:
立即学习“PHP免费学习笔记(深入)”;
- 返回
false但phpinfo()显示 GD 已启用 → 可能是 CLI 和 Web 使用了不同php.ini,需分别检查 -
extension_loaded('gd')为true,但imagecreatefromjpeg()报错 → 说明 GD 编译时没带 JPEG 支持,得查phpinfo()里的 JPEG 行是否标enabled
简短示例:
命令行下用 php -m | grep gd 快速筛查
适用于调试 CLI 环境(比如 Laravel Artisan 命令、定时任务),也适合 CI/CD 脚本做前置检测。注意:该命令只反映 CLI 模式下的扩展列表,和 Apache/Nginx 下的 Web 环境可能不一致。
使用场景:
- 执行
php -v确认当前 CLI 使用的是哪个 PHP 版本和php.ini - 再执行
php -m | grep -i gd(加-i避免大小写问题) - 若无输出,说明 CLI 没启用 GD;若有
gd,再补一句php -r "var_dump(gd_info());"查看详细支持项
GD 功能可用性 ≠ 扩展已加载 —— 图像格式支持要单独确认
很多环境看似启用了 GD,但调用 imagecreatefromwebp() 或 imagecreatefromavif() 仍报“undefined function”,这是因为 GD 的图像解码器是编译期开关控制的,不是扩展一开就全有。
关键判断依据只有两个:
-
phpinfo()中 GD 小节下对应格式(如WebP Support)是否为enabled - 运行
php -r "print_r(gd_info()['webp']);"输出是否为1
容易被忽略的地方:macOS 上用 Homebrew 安装 PHP,默认 GD 不带 WebP 支持;Windows WAMP/XAMPP 旧版本默认不带 AVIF;Docker 镜像若基于 php:alpine,需手动 apk add --no-cache freetype-dev libpng-dev libjpeg-dev libwebp-dev 并重新编译 GD。











