PHP 8.6尚未发布,当前最新稳定版为8.3.x、8.4已进入RC阶段;启用GD WebP支持需安装libwebp-dev等依赖并显式配置--with-webp路径,否则imagecreatefromwebp()等函数不可用。

PHP 8.6 目前尚未发布(截至 2026 年 8 月,PHP 官方最新稳定版为 8.3.x,8.4 已进入 RC 阶段),因此“PHP 8.6”属于不存在的版本。你很可能是指 PHP 8.3 或 8.4,或是误写了版本号。以下所有配置方法均基于当前实际可用的 PHP 8.3+ 环境,并完全适用于未来可能发布的 8.6 —— 只要其底层构建机制不变。
确认当前 PHP 版本与 GD 基础状态
先运行命令明确环境:
php -v php -m | grep gd php -r "print_r(gd_info()['WebP Support'] ?? 'not found');"
若输出 false 或报错 Call to undefined function gd_info(),说明 GD 未启用或 WebP 支持缺失。
Linux(Ubuntu/Debian)一键启用 WebP 支持
确保系统级依赖和 PHP 扩展同步到位:
立即学习“PHP免费学习笔记(深入)”;
- 安装编译依赖:
sudo apt update && sudo apt install -y libwebp-dev libjpeg-dev libpng-dev libfreetype6-dev - 重装 PHP-GD(自动链接新依赖):
sudo apt install --reinstall php-gd - 重启服务:
sudo systemctl restart apache2(Apache)或sudo systemctl restart php8.3-fpm(Nginx + FPM)
完成后再次运行 php -r "print_r(gd_info());",检查 webp support 是否为 true。
Docker 环境(php:8-fpm 类镜像)关键修复点
默认镜像常缺 libwebp-dev 且未显式配置 GD 编译参数。需在 Dockerfile 中补充:
RUN apt-get update && \
apt-get install -y libwebp-dev libjpeg-dev libpng-dev && \
rm -rf /var/lib/apt/lists/*
<h1>必须显式调用 configure 指定 webp 路径</h1><p>RUN docker-php-ext-configure gd \
--with-jpeg=/usr/include/ \
--with-png-dir=/usr/include/ \
--with-webp=/usr/include/</p><p>RUN docker-php-ext-install gd构建后验证:docker exec -it your-container php -r "var_dump(gd_info()['WebP Support']);" 应返回 bool(true)。
Mac(Homebrew)快速启用方案
Homebrew 安装的 PHP(如 php@8.3)默认已含 GD,但 WebP 支持依赖系统库:
- 更新并重装依赖:
brew install webp jpeg pngquant freetype - 重装 PHP(触发 GD 重新链接):
brew reinstall php@8.3 - 确认生效:
php -r "echo gd_info()['WebP Support'] ? 'OK' : 'FAIL';"
若 Web 服务器(如 Apache)仍不识别,检查 phpinfo() 中显示的 Loaded Configuration File 路径,确保它指向 Homebrew 的 php.ini(通常为 /opt/homebrew/etc/php/8.3/php.ini),而非系统自带版本。
只要完成上述任一路径的配置,imagecreatefromwebp()、imagewebp() 等函数即可直接使用,无需额外扩展。不复杂但容易忽略的是:WebP 支持不是“装了 GD 就自动有”,而是取决于编译时是否链接了 libwebp 及其开发头文件。



















