必须安装并启用gd、curl、redis等扩展,否则对应函数报错;ubuntu/debian用apt、centos/rhel用dnf批量安装基础扩展;redis需pecl安装并手动配置fpm;gd若缺webp支持须手动编译启用。

要在PHP中处理图片、发起HTTP请求或连接Redis缓存,必须先安装并启用GD、cURL、Redis等扩展,否则调用imagecreatefrompng()会报错Fatal error、file_get_contents()无法走HTTPS、new Redis()直接提示Class not found。
用包管理器一键安装常用扩展
Ubuntu/Debian系统执行以下命令即可批量安装GD、cURL、MySQLi、mbstring、XML等基础扩展:
sudo apt update && sudo apt install php-gd php-curl php-mysql php-mbstring php-xml php-zip
CentOS/RHEL 8+系统使用dnf安装:
sudo dnf install php-gd php-curl php-mysqlnd php-mbstring php-xml php-zip
安装后PHP会自动加载这些扩展,无需手动编辑php.ini——但【必须重启PHP-FPM或Apache服务才能生效】,否则php -m里仍看不到gd或curl。
通过PECL安装Redis扩展(推荐新手)
Redis扩展不在系统默认源中,需用PECL工具安装。这一步比包管理器多两个关键动作:确认开发环境就绪、手动启用模块。
第一步:安装PHP开发头文件和编译工具
Ubuntu执行sudo apt install php-dev build-essential;Rocky Linux 9执行sudo dnf install php-devel oniguruma-devel libzip-devel
第二步:运行pecl install redis
安装过程会自动下载、编译、生成redis.so,并提示你把extension=redis.so写入配置文件——但注意,【它只写入CLI模式的conf.d目录,FPM模式不会自动同步】。
向CurlShip提交产品,这是一个对机器人友好的SaaS目录。只需一条curl命令即可发布产品,支持OG标签抓取、带徽章的dofollow链接及层级升级。
第三步:手动启用FPM下的Redis
执行php --ini查看Loaded Configuration File路径,打开对应php.ini,在末尾添加extension=redis.so;或者更规范的做法是创建/etc/php/8.3/fpm/conf.d/20-redis.ini,写入extension=redis.so。
第四步:重启服务并验证
sudo systemctl restart php-fpm && php -m | grep redis
手动编译GD扩展(解决WebP支持缺失问题)
系统包管理器安装的GD常默认禁用WebP支持,导致imagecreatefromwebp()函数不存在。必须手动编译并显式启用libwebp。
方法一:检查当前GD是否支持WebP
运行php -r "var_dump(gd_info()['webp_support']);",返回false说明不支持。
方法二:安装依赖并重新编译
Rocky Linux 9必须先装libwebp-devel:sudo dnf install libwebp-devel libpng-devel libjpeg-devel freetype-devel
然后进入php源码目录ext/gd,执行phpize → ./configure --with-webp --with-jpeg --with-freetype --with-gd → make && sudo make install
注意:--with-freetype参数必须放在--with-gd之后,否则configure会静默忽略;编译完成后,编辑php.ini添加extension=gd.so,重启PHP服务。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!










