ownCloud服务器:DBA_DEFAULT PHP错误

时间:2017-01-05 12:05:30

标签: php database mariadb owncloud synology

我在Synology NAS上运行我的ownCloud实例时遇到了问题。我得到以下日志错误:

  

PHP启动:没有这样的处理程序:DBA_DEFAULT at Unknown#0

...应该是关于数据库的连接。 这非常令人困惑,因为可以通过ownCloud调用数据库,所有连接的客户端都可以工作,Web界面可以工作等等......只剩下这条消息。

我的配置详情:

  • Synology DS216j与DSM 6.0.2-8451 Update 7
  • PHP 5.6.28
  • MariaDB 5.5.53
  • ownCloud 9.1.3

我完全没有找到有关该错误的信息......

2 个答案:

答案 0 :(得分:0)

我最近在Synology NAS上看到了这条消息,这就是我发现的。我的NAS有多个Php安装,我认为这个错误来自默认安装。

root@synology:~# /bin/php --ri dba
Extension 'dba' not present.

但使用我的备用php

root@synology:~# /usr/local/bin/php56 --ri dba

dba

DBA support => enabled
Supported handlers => gdbm cdb cdb_make db4 inifile flatfile 

Directive => Local Value => Master Value
dba.default_handler => flatfile => flatfile

因此,一种解决方案是确保您的应用程序正在调用正确的Php版本。为此,您可以从Synology Web Station 管理HTTP服务器和PHP版本。

或者,我注意到此消息仅为E_WARNING级别,可以忽略(除非您需要Berkley数据库)。我将此代码添加到我的应用程序

function shutdownHandler()
{
    try {
        $error = error_get_last();
        if ( $error !== NULL && $error["type"] == E_ERROR) {
            $backtrace = "(E_ERROR) " . $error["message"];

            $trace = debug_backtrace();
            foreach($trace as $item) {
                $backtrace .= "\n\t" . (isset($item['file']) ? $item['file'] : '<unknown file>')
                    . ' ' . (isset($item['line']) ? $item['line'] : '<unknown line>')
                    . ' calling ' . (isset($item['function']) ? $item['function'] : '<unknown function>') . '()';
            }

            \Logger::LogError( $backtrace, $error["file"], $error["line"]);
        }
    }
    catch (Exception $e) {
        print get_class($e)." thrown within the shutdown handler. Message: ".$e->getMessage()." on line ".$e->getLine();
    }
}

# Registering shutdown function
register_shutdown_function('shutdownHandler');

我猜测 ownCloud 有类似的功能,但它可能会记录所有错误消息,这就是您看到此消息的原因。

答案 1 :(得分:0)

在我的DS114 DSM 6.0.2-8451 Update 7上也发生了这种情况,在2017年1月6日Apache 2.2升级之后。在升级之前一切正常。

我已更改/volume1/@appstore/Apache2.2/usr/local/etc/apache22/conf/extra/mod_xsendfile.conf

来自

XSendFilePath / var / services / web / var / services / homes

XSendFilePath / volume1 / owncloud

现在再次运作