![FreePBX 安装升级失败](https://linux22.com/image/1408431/FreePBX%20%E5%AE%89%E8%A3%85%E5%8D%87%E7%BA%A7%E5%A4%B1%E8%B4%A5.png)
我正在安装在 VMWare VM 上的 Ubuntu 14.04 64 位服务器上通过 Asterisk asterisk-11.9.0(也是从源代码构建的)从源代码构建 FreePBX 2.11.0.25。在安装过程中,我遇到一个错误,即 Asterisk 版本与当前支持的版本不匹配。我注释了该检查,以便提前运行代码。注释该检查后,运行sudo ./install_amp
初始安装很顺利。然后在安装第一个更新时失败。输出:
-> Running PHP script /home/xeno/freePBX/freepbx/upgrades/1.10.007beta1/upgradecallgroups.php
Upgrading Call Groups..0 to check...
OK
DB Error: no such table
现在,打印的OK
是 PHP 文件中的最后一条语句。我尝试out()
在父脚本 ( libfreepbx.install.php
) 中放入一些语句,以查看脚本如何确定错误的确切位置。它似乎永远upgradecallgroups.php
不会返回;错误出在这个文件中,而不是在父脚本中。
它看起来不像是一个兼容性错误,所以我确信评论版本检查在这里是不相关的。
我对 PHP 不是很熟练(虽然可以轻松阅读代码),并且完全不知道这个错误是什么。作为初学者,我按照此链接中的步骤安装了 FreePBX:http://highsecurity.blogspot.in/2012/12/quick-and-dirty-asterisk-11-and-freepbx.html
任何帮助都值得感激。提前致谢。
答案1
事实证明,asterisk
需要名为的数据库,asteriskcdrdb
但教程中并未提及。
创建数据库及其所有表解决了该问题。
原因:更新中的某些 SQL 脚本强制使用asterisk
数据库,即使您在初始设置中覆盖了数据库。为了解决以前的错误(顺便说一句,这也是因为教程中没有提到asterisk
数据库而出现的),我还更新了初始安装中的脚本以用于asteriskcdrdb
所有表,但没有更新提供的脚本。事实证明,如果您使用默认(和正确的)数据库而不是覆盖所有 SQL 脚本,会容易得多asterisk
。错误很棘手,因为当表存在于不同的数据库中时,MySQL 指定了不存在的表。
答案2
我建议您获取带有 freepbx 的 VMware 映像(可以在互联网上找到很多)或使用 PIAF。
您也可以尝试通过 web->modules 进行升级。