2017-01-05 13 views
0

У меня проблема с моим экземпляром ownCloud на NAS Synology. Я получаю следующую ошибку журнала:ownCloud server: DBA_DEFAULT Ошибка PHP

PHP Startup: No such handler: DBA_DEFAULT at Unknown#0

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

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

  • Synology DS216j с DSM 6.0.2-8451 Update 7
  • PHP 5.6.28
  • MariaDB 5.5.53
  • OwnCloud 9.1.3

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

ответ

0

Я недавно видел это сообщение в NAS Synology, и это то, что я нашел. У моего 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. Для этого вы можете управлять HTTP-сервером и версией PHP с веб-узла Synology .

Альтернативно, я заметил, что это сообщение только E_WARNING и может быть проигнорировано (если вам не нужна база данных Беркли). Я добавил этот код в моем приложении

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

Благодарим за этот намек! Я переключил свои версии PHP на веб-сайт, но сообщение не исчезло. Наконец, я увидел, что ни один из них не назначил обработчик dba (т. Е .: DBA_DEFAULT). Но на веб-странице в разделе «Настройки PHP» -> Выберите версию PHP, которую вы используете, -> «Дополнительные настройки» («Я использую немецкую версию») -> «Дополнительно». Я нашел «dba.handler_default "и вставил" flatfile "вместо" DBA_DEFAULT ". Ошибка не произошла с 24h ... Я не хочу редактировать свой пост и добавлять это как решение, потому что я не знаю, насколько это точно .: - / – deusexmac

0

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

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

из

XSendFilePath/вар/услуги/Web/вар/услуги/дома

в

XSendFilePath/volume1/OwnCloud

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