OpenX:移动到不同的服务器

时间:2013-08-22 07:09:40

标签: php openx

我将安装移到了另一台服务器上。我更新了var /目录中的configfile并提供了横幅,但是管理界面无法正常工作。

我收到错误:

  

发生致命错误OpenX无法连接到数据库。因为   这不可能使用管理员界面

我清理了var中的缓存目录,但后来我得到了 PHP Fatal error: Call to undefined method MDB2_Error::quoteIdentifier() in /[path]/opx/lib/OA/Upgrade/VersionController.php on line 50

我不知道这是哪个版本,但它看起来至少有2年了。

是否有任何特殊的缓存我不知道?

对此的任何帮助都将非常感激。

2 个答案:

答案 0 :(得分:3)

请注意,如果你在不同的服务器上有数据库,那么openx并不重要,如果你将主机设置为数据库服务器和端口的IP ...只要你没有设置{{1} !!!!

这是迄今为止我见过的最愚蠢的事情,不需要协议配置,因为如果设置“localhost”,php总是使用套接字。

答案 1 :(得分:1)

要弄清楚这里究竟出了什么问题并不容易,但人们可以做出很好的猜测:

正如我们从错误消息中看到的那样,代码中有一个对象没有实现方法quoteIdentifier()

这主要有两个可能的原因:我们要么调用不实现该方法的相同Class实例的较旧版本或较新版本。也许是因为它被弃用或谁知道。或者对象根本不是预期的类型。

瞧,如果我们寻找一个实现此方法的MDB2相关类,那就是类MDB2。不是MDB2_Error!所以现在我们知道错误的原因,是时候推测根本原因了。

MDB2的{p> Connecting to a database大致如下:

$mdb2 =& MDB2::connect('pgsql://usr:pw@localhost/dbnam');
if (PEAR::isError($mdb2)) {
    die($mdb2->getMessage());
}

就是这样。我们可以看到$ mdb2实际上可以是MDB2_Error类型,以防由于某种原因连接出错。这就是原因:您的代码由于某种原因无法连接到数据库。因此,下一个明显的步骤应该是检查您的db用户是否具有正确的权限并使用正确的密码。我100%确定您的管理员后端没有使用正确的凭据。