база данных — сервер ownCloud: ошибка PHP DBA_DEFAULT

У меня проблема с запуском экземпляра ownCloud на NAS-устройстве Synology. Я получаю следующую ошибку журнала:

Запуск PHP: такого обработчика нет: DBA_DEFAULT при Unknown # 0

… который должен быть о подключении к базе данных.
Это очень запутанно, потому что база данных может быть вызвана ownCloud, все подключенные клиенты работают, веб-интерфейс работает и так далее … Остается только это сообщение.

Мои данные конфигурации:

  • Synology DS216j с DSM 6.0.2-8451, обновление 7
  • PHP 5.6.28
  • MariaDB 5.5.53
  • ownCloud 9.1.3

Я не могу найти абсолютно никакой информации об этой ошибке …

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. Для этого вы можете управлять HTTP-сервером и версией PHP из Synology. Веб-станция.

Поочередно я заметил, что это сообщение 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 имеет аналогичную функцию, но, вероятно, она регистрирует все сообщения об ошибках, поэтому вы видите это сообщение.

0

Другие решения

Это произошло на моем DS114 с DSM 6.0.2-8451 Update 7 также после обновления Apache 2.2 6 января 2017 года. До обновления все работало нормально.

Я изменил /volume1/@appstore/Apache2.2/usr/local/etc/apache22/conf/extra/mod_xsendfile.conf

от

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

в

XSendFilePath / volume1 / owncloud

и теперь снова работает

0

По вопросам рекламы [email protected]