如何修复Drush 8/PHP 7.2的count()参数必须为数组警告
问题:Drush 8.1.3 在 PHP 7.2 + Ubuntu 16.04 环境下异常,已更新 pear/console_table 和 PEAR 仍未解决
我的环境配置
- 操作系统:Ubuntu 16.04
- 服务栈:LAMP
- 部署应用:Drupal 7
- Drush 版本:8.1.3(通过 Composer 1.5.2 安装)
- PHP 版本:7.2
问题背景
我碰到了一个 Drush 相关的异常,根据 GitHub 上的讨论内容,我猜测这个问题是PHP 7.2 的 bug导致的。
已尝试的修复操作
我已经做了以下两步,但问题还是没解决:
- 把
pear/console_table更新到了最新版本 - 按照 Super User 的相关说明,确保 PEAR 本身也升到了最新版
求助
有没有其他可行的排查方向或者修复方案?
我的解答
针对你遇到的这个问题,我整理了几个额外的排查和修复建议,你可以试试:
- 验证 PHP 版本兼容性
Drush 8.x 虽然官方标注支持 PHP 7.2,但实际使用中确实存在一些边缘场景的兼容性问题。你可以临时切换到 PHP 7.1 测试下,看看问题是否消失,这样能确认是不是 PHP 7.2 的锅。切换命令可以用:
sudo update-alternatives --set php /usr/bin/php7.1
- 清理 Composer 缓存后重装 Drush
有时候 Composer 缓存的旧依赖文件会导致安装不完整,你可以清理缓存后重新安装:
composer clear-cache composer require drush/drush:8.1.3
- 获取详细错误日志
运行 Drush 命令时加上-v参数,能输出更详细的错误信息,帮你定位具体是哪个环节出问题:
drush -v status
- 手动替换 Console_Table 文件
如果确定是pear/console_table的问题,你可以手动下载最新版的Console_Table类文件,替换掉 Drush 依赖里的对应文件,一般路径是vendor/pear/console_table/Console/Table.php。
内容的提问来源于stack exchange,提问作者mjones
相关产品推荐
相关产品推荐

