外部ストレージとの連携について

      外部ストレージとの連携について

      ownCloud8.2(CentOS7)を利用しています。

      Windows Server 2012 との SMB/CIFS共有の際、以下のエラーが出力され外部ストレージに接続できません。
      環境としてはownCloudに2つのNICを持たせパブリックとプライベートで通信を分けています。
      エラーを解消し、プライベートで外部ストレージにアクセスさせたいと考えています。アドバイスの程よろしくお願い致します。

      -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
      エラー内容
      -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
      Exception: {"Exception":"Icewind\\SMB\\Exception\\Exception","Message":"Unknown error (NT_STATUS_OBJECT_NAME_INVALID) for \/","Code":0,"Trace":"#0 \/var\/www\/html\/owncloud\/apps\/files_external\/3rdparty\/icewind\/smb\/src\/Share.php(364): Icewind\\SMB\\Parser->checkForError(Array, '\/')\n#1 \/var\/www\/html\/owncloud\/apps\/files_external\/3rdparty\/icewind\/smb\/src\/Share.php(128): Icewind\\SMB\\Share->parseOutput(Array, '\/')\n#2 \/var\/www\/html\/owncloud\/apps\/files_external\/lib\/smb.php(102): Icewind\\SMB\\Share->stat('\/')\n#3 \/var\/www\/html\/owncloud\/apps\/files_external\/lib\/smb.php(136): OC\\Files\\Storage\\SMB->getFileInfo('')\n#4 \/var\/www\/html\/owncloud\/lib\/private\/files\/storage\/common.php(414): OC\\Files\\Storage\\SMB->stat('')\n#5 \/var\/www\/html\/owncloud\/apps\/files_external\/lib\/config.php(261): OC\\Files\\Storage\\Common->test(false)\n#6 \/var\/www\/html\/owncloud\/apps\/files_external\/controller\/storagescontroller.php(237): OC_Mount_Config::getBackendStatus('\\\\OC\\\\Files\\\\Stora...', Array, false)\n#7 \/var\/www\/html\/owncloud\/apps\/files_external\/controller\/globalstoragescontroller.php(174): OCA\\Files_External\\Controller\\StoragesController->updateStorageStatus(Object(OCA\\Files_external\\Lib\\StorageConfig))\n#8 [internal function]: OCA\\Files_External\\Controller\\GlobalStoragesController->update(1, 'SMB', 'smb', 'password::passw...', Array, Array, Array, Array, 100)\n#9 \/var\/www\/html\/owncloud\/lib\/private\/appframework\/http\/dispatcher.php(159): call_user_func_array(Array, Array)\n#10 \/var\/www\/html\/owncloud\/lib\/private\/appframework\/http\/dispatcher.php(89): OC\\AppFramework\\Http\\Dispatcher->executeController(Object(OCA\\Files_External\\Controller\\GlobalStoragesController), 'update')\n#11 \/var\/www\/html\/owncloud\/lib\/private\/appframework\/app.php(108): OC\\AppFramework\\Http\\Dispatcher->dispatch(Object(OCA\\Files_External\\Controller\\GlobalStoragesController), 'update')\n#12 \/var\/www\/html\/owncloud\/lib\/private\/appframework\/routing\/routeactionhandler.php(45): OC\\AppFramework\\App::main('GlobalStoragesC...', 'update', Object(OC\\AppFramework\\DependencyInjection\\DIContainer), Array)\n#13 [internal function]: OC\\AppFramework\\routing\\RouteActionHandler->__invoke(Array)\n#14 \/var\/www\/html\/owncloud\/lib\/private\/route\/router.php(282): call_user_func(Object(OC\\AppFramework\\routing\\RouteActionHandler), Array)\n#15 \/var\/www\/html\/owncloud\/lib\/base.php(831): OC\\Route\\Router->match('\/apps\/files_ext...')\n#16 \/var\/www\/html\/owncloud\/index.php(39): OC::handleRequest()\n#17 {main}","File":"\/var\/www\/html\/owncloud\/apps\/files_external\/3rdparty\/icewind\/smb\/src\/Parser.php","Line":66}
      -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
      Images
      • 外部ストレージ設定1.jpg

        24.92 kB, 1,095×403, viewed 463 times
      • エラーログ.png

        92.08 kB, 1,064×531, viewed 459 times
      こちらownCloud8.2(CentOS7) + windows 2012 R2で発生する事象と言うことが分かりました。
      libsmbclientのバグの可能性が高いです。以下のlibsmbclientを利用して解決しています。

      ■修正手順
      (1) yum で以下のパッケージを追加
      # yum --enablerepo=remi-php55 install php php-common php-mbstring php-pdo php-cli php-devel php-gd php-mysql
      # yum install gcc

      (2) 修正版のlibsmbclientをインストール
      # git clone git://github.com/eduardok/libsmbclient-php.git
      # cd libsmbclient-php
      # phpize
      # ./configure
      # make && make install
      # cd /usr/lib64/php/modules/
      --------------------------------------------------------------------------------------
      [root@owncloud modules]# ls -alt
      合計 6756
      drwxr-xr-x 2 root root 4096 11月 24 11:25 .
      -rwxr-xr-x 1 root root 201924 11月 24 11:25 smbclient.so ← 新たに導入したライブラリ。
      --------------------------------------------------------------------------------------

      (3) /etc/php.iniにて導入したライブラリを指定する。
      ; Add ownCloud PHP
      extension="smbclient.so"

      Post was edited 1 time, last by “ysuzuki963” ().