You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

FreePBX安装报错:FreePBX\Database::query()声明与PDO::query不兼容

解决FreePBX安装时PHP致命错误(方法声明不兼容PDO)

错误原因

Ubuntu 22.04默认搭载PHP 8.1,你当前使用的FreePBX版本的Database.class.php中query()方法声明未适配PHP 8.x的PDO接口规范,导致方法签名不匹配,触发致命错误。

解决方案

1. 确认PHP版本

执行命令验证当前PHP版本:

php -v

输出应显示为PHP 8.1或更高版本。

2. 修改方法签名

编辑/root/asterisk-20.7.0/freepbx/amp_conf/htdocs/admin/libraries/BMO/Database.class.php文件,找到第240行的query()方法,将其声明替换为与PDO完全兼容的版本:

public function query(string $query, ?int $fetchMode = null, mixed ...$fetchModeArgs): PDOStatement|false
{
    // 保留该方法原有的内部代码不变
}

确保参数类型、可选参数设置、返回值类型与上述代码完全一致。

3. 重新执行安装

保存文件后,再次运行安装命令:

./install -n

额外提示

如果后续出现其他类似的PDO方法兼容错误,可按同样方式同步方法签名至PHP 8.x规范。另外,建议确认你使用的FreePBX版本是否官方支持PHP 8.1——FreePBX 16及以上版本对PHP 8.x的兼容性更好,若使用旧版FreePBX,升级到对应版本也可从根源解决这类问题。

内容的提问来源于stack exchange,提问作者famfamfam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 00:05:01