在 FreeBSD 8.2 服务器上将 PHP 升级到 5.3 并将 Postrgres 升级到 9.2beta3 后,正常工作的 torrentflux 设置似乎出现故障。登录屏幕会正常显示,但单击登录按钮后,我收到错误:
Fatal error: Call to undefined function pg_escape_string() in \
/usr/home/parker/tf/html/inc/lib/adodb/drivers/adodb-postgres64.inc.php \
on line 241
似乎是 PHP 和 pgsql php 包的一个错误。phppgsql 包本身并没有完全损坏,因为我正在使用它来托管此服务器上的数据库驱动应用程序。这是我从中看到的第一个也是唯一一个错误。
我该如何修复这个问题?
答案1
portstree 中有一个名为 portdowngrade 的工具可以帮助解决此类问题。
如果你不想使用它,最好的方法是从 SVN 中检出旧版本的 postgres 端口
答案2
如果您手动编译了端口,则可能未包含 Web 应用程序所需的 PHP 功能。我对 FreeBSD 或那里的 PHP 包没有太多经验,但5.6.3.3 重新配置端口就足够了。
我的意思是,您需要在 PHP 中启用 PostgreSQL 支持并重新编译或使用包含 Web 应用程序所需的所有模块的二进制文件。