今日は遅い夏期休暇(明日の学校行き用)ということで年休中。まあ、引っ越しのための準備もありますが。
――引っ越しに当たって今までのファイルを全部サーバ経由でアクセスできるようにしなければいけない。この辺についてあんまり良い手段が思いつきませんでした。
とりあえず、WebDAVフォルダを作ってPatchGooさん紹介のNetDriveを使って仮想ドライブ化、拡張コピーを使って一括コピー という形で運用します。まあ、元が実ファイルなので、そのうちそこにrsyncを持ち込むことも出来るかな と(やっぱり出来れば使いたいし)。
さて、そこで出来れば、外部コンテンツのほかに、ユーザーディレクトリ配下にWebDAVプレースを作って、そこにファイルを配置したい。ということで、ApacheのUserDirモジュールを使って、ユーザーディレクトリ配下にApacheの影響の及ぶディレクトリを作ってみました。
うちのApache/2.2.4では、UserDirに関する設定はextra/httpd-userdir.confにまとめられているので、そこを編集します。
わたしは各ユーザーディレクトリにwebというディレクトリを作り、web/davがWeb-DAV用。web/wwwが通常のサイト用(使うのか?)として作ってみたい。ということで、UserDirにはwebを設定し、別途以下のようなディレクティブを追加しました。
# ルートディレクトリにはアクセス不可
<Directory /home/*/web>
Order deny,allow
Deny from all
</Directory>
そして、WebDAV用に以下のディレクティブを追加
# 一般公開WebDAV用
<Directory /home/*/web/dav> AllowOverride FileInfo AuthConfig Limit Indexes Dav on Order allow,deny Allow from all </Directory>
Dav svnとしておけば、現状のサーバ全体用のSubversionリポジトリ用ディレクトリのほかに、各ユーザー用のリポジトリディレクトリも作れて良かったかもしれません(^_^;
そして、ここからが詰まるところで、なぜかどうアクセスしてもForbiddenになってしまう。まあ、一部もっと良い方法があるような気もしますが、ひとまず以下のようにして対処。
webディレクトリ配下のオーナーをApache実行ユーザに変更します。これについてはディレクトリのパーミッションで、Apacheに操作権限を与えられれば良いだけだったのかもしれませんが、その辺がよく分からなかった(さすがにo+rwxという訳にはいかないし)ので、このようにしました。
のちのちコンソール上で作成するファイルは、apacheユーザーではログインが出来ないので、sudoで作るかrootになって作るかする必要がある=所有者がデフォルトでrootになってしまいます。なので、ファイルを作る場合はchownを忘れず実施すること。
そして、最後に。ユーザーディレクトリのパーミッションに、o+xを追加すること。これについてはid:ir9Exさんの情報より。情報どうもありがとうございました。
とりあえず、このディレクトリに定期的に必要なデータをバックアップして、管理するようにしておしまいでしょうか。次はバックアップですね、ひとまず
rsync -a -z --delete /home /var/backup
として、/var/backupを暗号化&認証付き&読み取り専用で外部からのアクセス許可を与え、外部から定期的に吸い出す という感じでしょうか。このままではApacheの設定ファイルなどが対象外となってしまうので、何らかの方法で管理しなければいけませんね(出来ればこれこそSubversionで管理したいところですが、ファイルが散逸しているのでどうにもいかないんですよね)。