Ubuntu系统下PECL安装Gearman失败及gearman.so加载异常求助
解决Ubuntu下Gearman与PHP7.2兼容的安装问题
嘿,咱们来一步步拆解你遇到的问题并解决掉:
从报错信息里能看出三个核心问题:
- 官方旧版的
pecl/gearman扩展不支持PHP7.2版本,它的版本限制是>=5.1.0, <=6.0.0,但你当前安装的PHP是7.2.24 - pecl的通道协议已经更新,需要先升级通道
- 因为安装失败,导致PHP启动时找不到
gearman.so扩展文件,触发警告
下面是具体的解决步骤:
1. 更新pecl通道
先执行这条命令更新pecl的通道协议,解决那个警告提示:
sudo pecl channel-update pecl.php.net
2. 安装适配PHP7+的Gearman扩展
官方的pecl/gearman主线版本停更了,咱们需要安装专门适配PHP7及以上版本的分支——gearman-2.1.0(这个版本支持PHP7.0到PHP8.1,完全兼容你的7.2版本):
sudo pecl install gearman-2.1.0
3. 配置PHP加载Gearman扩展
安装完成后,得让PHP能识别并加载这个扩展:
- 先确认扩展文件的存放路径,执行这条命令查看:
pecl config-get ext_dir
- 然后根据你使用的PHP环境(CLI命令行或者Web服务器,比如Apache),找到对应的配置目录:
- 若用CLI:
/etc/php/7.2/cli/conf.d/ - 若用Apache:
/etc/php/7.2/apache2/conf.d/
- 若用CLI:
- 在对应目录下创建
20-gearman.ini文件,写入以下内容:
extension=gearman.so
4. 验证安装是否成功
执行这条命令检查扩展是否成功加载:
php -m | grep gearman
如果输出gearman,说明安装成功。别忘了重启你的Web服务器(比如Apache的话执行sudo systemctl restart apache2),让配置生效。
额外:解决编译依赖问题
如果安装过程中出现编译错误,大概率是缺少系统依赖,先安装这些包再重试:
sudo apt-get install libgearman-dev build-essential php7.2-dev
内容的提问来源于stack exchange,提问作者nikhil gantyala
相关产品推荐
相关产品推荐

