Raspberry PI でWebDAV

正攻法で Redmine 入れようとして、実際入ったのだけれど、とてもじゃないが実用的じゃないパフォーマンスだったので削除。
(一応、インストール手順の参考サイト→ RedMine on Raspberry pi:エンジニアの趣味のブログ:So-netブログ )

Redmine が使えた所で、多分ファイル管理くらいにしか使わないだろうと思うので
じゃあ、ということで WebDAV 環境を作ってみることにする。
(LAN内なら samba でいいのだけど、外でスマートフォンから参照したいとかなら HTTP のポートだけ使う WebDAV の方が都合がいいので)

  • 外付けHDDのマウント設定
    • Raspberry PI に外付けHDDをつなげる。
      ただしUSB給電タイプのものは出力不足で不安定になるのでACアダプタ電源供給タイプを使用すること。
      (AC電源を使うUSBハブを介するでもいいかもしれない)
    • ntfs-3g のインストール、再起動
      sudo apt-get install ntfs-3g
      sudo reboot
    • 外付けHDDの認識状況確認
      sudo fdisk -l
    • 手動マウント設定
      ここでは /dev/sda1 で認識されているものとする
      sudo mkdir /mnt/hdd
      sudo mount -t ntfs-3g /dev/sda1 /mnt/hdd
      ちなみにマウント解除の場合は umount コマンド。
      sudo umount /dev/sda1
    • 自動マウント設定
      手動マウントでは、再起動時に再度マウントする必要があるので、起動時に自動マウントするための設定をしておく。
      sudo vi /etc/fstab
      以下を追記
      /dev/sda1    /mnt/hdd   ntfs-3g   defaults   0    0
  • Apache2 の設定
    • DAV関連モジュールの有効化
      cd /etc/apache2/mods-enabled
      sudo ln -s ../mods-available/dav.load dav.load
      sudo ln -s ../mods-available/dav_fs.conf dav_fs.conf
      sudo ln -s ../mods-available/dav_fs.load dav_fs.load
      sudo ln -s ../mods-available/dav_lock.load dav_lock.load
    • マッピング設定
      sudo vi /etc/apache2/sites-enabled/000-default
      以下追記
      <Location "/dav">
        Dav on
        AuthType Basic
        AuthName DAV
        AuthUserFile /etc/apache2/dav.passwd
        require valid-user
      </Location>
      /var/www/dav に外付けHDDのマウントディレクトリのシンボリックリンクを作る
      sudo ln -s /mnt/hdd /var/www/dav
  • 認証ユーザーの設定
    cd /etc/apache2
    sudo htpasswd -c dav.passwd user
  • Apache2 再起動
    sudo service apache2 restart

これで、http://xxxxx/dav でファイル参照ができる。
ただし、Windows などでは SSL じゃないとWebDAVクライアントでの接続はできない(レジストリ変更すれば可能らしい)らしいし、
Android などだと WebDAV 用のクライアントアプリ(ファイルマネージャ HD とか) が必要。
外から参照だけできればいいや、という場合ならこれで十分かと。

この辺 を参考にすれば、自己証明書SSLにすることはできそう。