ブログ カレンダー

« « 2017 5月 » »
30 1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31 1 2 3

カテゴリ一覧

アーカイブ

最新のエントリ

最新のコメント

最新のトラックバック

趣味のブログ - Pydio を WebDAV サーバにする

Pydio を WebDAV サーバにする

カテゴリ : 
Ajax
執筆 : 
OhYeah! 2015.01.29 23:10
AjaxPlorer の頃から WebDAV サーバ機能はあったが、私には WebDAV クライアントから共有リポジトリの内容を見られるようにすることができなかった。Pydio では、簡単に WebDAV サーバとして機能させられる。
Pydio を WebDAV サーバとして使用するには、3か所の設定変更が必要だ。
まずは、Pydio をインストールしたディレクトリにある .htaccess を環境に合わせて変更する。最低限必要な設定箇所は、ReriteBase の行。
RewriteBase /
標準状態では、上の通りなので、サブドメイン等のドキュメントルートに Pydio をインストールした場合の設定になっている。ドキュメントルート直下にたとえば pydio というサブディレクトリを作成してインストールした場合は、
RewriteBase /pydio
と修正する。
次に、現在の coreserver/XREA のように、PHP が Apache モジュールではなく、CGI や FastCGI として動作しているサーバでは、
#RewriteCond %{HTTP:Authorization} ^(.*)
#RewriteRule ^(.*) - [E=HTTP_AUTHORIZATION:%1]
の2行の先頭の # を削除しておく必要がある。
サーバ管理のためにサーバのルートを WebDAV で公開するような場合は、RewriteRule ^shares の行も、できれば shares 以外の仮想ディレクトリに修正しておいた方が良いだろう。
RewriteRule ^shares ./dav.php [L]

Main Option の WebDAV サーバ設定次に、「設定(g)」メニューから、「Application Core」→「Pydio Main Options」とたどり、「WebDAV Server」の部分を下記のように設定する。
1. ENABLE WEBDAV で Yes を選択
2. SHARES URI を .htaccess で設定した RewriteBase+仮想ディレクトリに設定
たとえば、RewriteBase が /pydio で仮想ディレクトリが shares の場合は「/pydio/shares」
3. BROWSER ACCESS で Yes を選択
(Pydio からこの項目が追加され、WebDAV クライアントから見えるようになった)
4. 「保存」ボタンをクリック

My Account の「WebDAV 設定」の設定部最後に、プロファイル設定の周辺にある「WebDAV 共有を有効化」をチェックする。Pydio6 では「MyAccout」→「WEBDAV 設定」、Pydio5 では「Dashboard」→「My Profile」→「WebDAV 設定」。

なお、サーバ管理のために .htaccess などの . で始まる隠しファイルを WebDAV で扱えるようにするには、「Pydio の WebDAV サーバで . から始まる隠しファイルを扱う」で書いたコードハックが必要になる。

トラックバック

トラックバックpingアドレス http://www.o-ya.net/modules/d3blog/tb.php/65

コメント一覧

OhYeah!  投稿日時 2015.06.20 23:36 | 最終変更
coreserver の SSL が特殊すぎて(HTTPS 変数が常に OFF とか、ポートが常に 80 とか、共有サーバ経由だけど HTTP_HOST は共有サーバにならないとか)、Pydio が使用している SabreDAV が対応しきれないのが原因のようです。.htaccess の mod_rewrite の設定でどうにかならないかと二晩悪戦苦闘しましたが、どうやら SabreDAV をコードハックしないとダメそうな気配…。

URL にリポジトリ名やリポジトリ内のディレクトリ名まで全部指定すれば SSL でもアクセス可能なので、どうしても SSL でアクセスしたい場合は、面倒でも全部手で URL を書くという運用をするしかなさそうです。
https://ss1.coressl.jp/your-domain/pydio5/shares/my-files
https://ss1.coressl.jp/your-domain/pydio5/shares/my-files/your-directory

ちなみに、mod_rewrite における共有 SSL サーバ経由かどうかの判定は、REMOTE_ADDR が ss1.coressl.jp の IP アドレスかどうかをチェックするしかありません。
RewriteCond %{REMOTE_ADDR} ^202\.172\.28\.253$
tom  投稿日時 2015.06.19 09:59 | 最終変更
こんにちわ、
coreserver.jpにPydio5をインストールしました。Webdav共有を設定してshareフォルダーにアクセス出来るのですが、coreserverの共有SSL経由でアクセスするとshareフォルダ内の例えばmy-filesフォルダーを開こうとすると、ERROR
The requested URL could not be retrieved
While trying to retrieve the URL: http://pydio5/shares/my-files

The following error was encountered:

Access Denied.

Access control configuration prevents your request from being allowed at this time. Please contact your service provider if you feel this is incorrect.

となります。これはcoreseverのSSLサーバーからのメッセージのようです。

メッセージ内のURLにはSSLサーバーのドメイン名と私のアカウントのドメイン名が抜け落ちていてこのURLではファイルが見つからないのは当然です。pydioの他のページはsslサーバー経由で正しくリダイレクトします。webdavは仮想ディレクトリを使用しているのでこうなるのかも知れません。

これはサーバーの仕様なのかPydioの設定で回避できるのかお知恵を拝借出来ればとおもってコメントしました。
よろしくお願いします。
tom