我最近在Synology NAS上看到过这条消息,这是我发现的。我的NAS有多个Php安装,我认为这个错误来自默认安装。
[email protected]:~# /bin/php --ri dba
Extension 'dba' not present.
但使用我的备用PHP
[email protected]:~# /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 网站管理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'] : '')
. ' ' . (isset($item['line']) ? $item['line'] : '')
. ' calling ' . (isset($item['function']) ? $item['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有类似的功能,但它可能是记录所有的错误信息,这就是为什么你看到此消息。