2015年3月3日火曜日

ServersMan@VPS(Ubuntu14.04-64)でWebDAVとSVN

ServersMan@VPS(Ubuntu14.04-64)でウェブサーバApacheを設定しましたが、
単なる静的コンテンツ配信にしか使わないのはもったいないので、
ファイル共有のためのWebDAVとバージョン管理のためのSVNを設定することにします。

まずはWebDAVです。安全性を確保するためSSL接続のみを許可します。
適当な"/etc/apache2/sites-enabled/<サーバ名>-ssl.conf"の
VirtualHostディレクティブの中に以下の記述を追加します。
Alias /dav "/var/www/dav"
<Location /dav>
        DAV on
        SSLRequireSSL
</Location>
また以下を実行します。
# cd /var/www
# mkdir dav
# chown daemon:daemon dav/
# chown 777 dav/
# a2enmod dav
# a2enmod dav_fs
# a2enmod dav_lock
# service apache2 restart

例えばUbuntu14.04なら、[ファイル]アプリケーションの[ファイル]-[サーバへ接続]メニューで
[サーバアドレス]に"davs://<サーバ名>/dav/"を指定すると
WebDAVサーバへアクセスできます。
もしサーバ側がhttpsではなくhttpなら、davsのかわりにdavスキームを使用します。

次はSVNです。安全性を確保するためこちらもSSL接続のみを許可します。
適当な"/etc/apache2/sites-enabled/<サーバ名>-ssl.conf"の
VirtualHostディレクティブの中に以下の記述を追加します。
<Location /svn>
        DAV svn
        SSLRequireSSL
        SVNParentPath /opt/svn
</Location>
また以下を実行します。
# apt-get install subversion
# apt-get install libapache2-svn
# apt-get install libapache2-mod-encoding
# a2enmod dav_svn
# cd /opt
# mkdir svn
# chmod 777 svn
# cd svn
# svnadmin create /var/svn/<リポジトリ名>
# cd ..
# chown -R daemon:daemon svn/
# service apache2 restart
この後適当なクライアントマシン等で
$ svn co http://<サーバ名>/svn/<リポジトリ名>
などと実行すれば指定したリポジトリをチェックアウトできます。

最後にWebDAV、SVNに共通ですが、パスワードによる認証をつけておきます。
まずは以下を実行してパスワードファイルを新規作成します。
# cd /etc/apache2/
# htpasswd -c <パスワードファイル(先頭は‘.’)> <ユーザ名>
ここでパスワードファイルはシステム的に隠し属性とするため先頭を‘.’とし、
パスワードファイルにユーザを追加する場合は'-c'オプションは外します。
そしてWebDAV、SVNでアクセスできるようにしたときに作成したLocationディレクティブの中に
        AuthUserFile /etc/apache2/<パスワードファイル>
        AuthName "<領域名>"
        AuthType Basic
        require valid-user
を追加し、
# service apache2 restart
を実行してapacheを再起動すれば完了です。
多数のユーザーアカウントを管理するような場合にはLDAPを使ったりとか、
httpを使う場合はDigest認証にしたりとかしますが、
今回はあくまでも個人利用であることを前提にもっともお手軽な方法で実現しています。

0 件のコメント:

コメントを投稿