mをファイルサーバにするのはftpを使えばいいので簡単だと思っていたが、ftpは敷居がちと高いようなのでブラウザでできるようにしたのは前に書いた。生理グループで共通に使えるものを作ったが、個人的にもやりたいという要望があったので、ユーザ単位で作成した。
この場合、個人しか使えないように.htaccess と .htpasswd で制限することにした。生理共通のファイルサーバも.htaccessでmikeのユーザにしか使えないように設定してある。
1)AR-UPLOADER01をダウンロードして解凍する。できたフォルダをshareと名前を変更して、設定したいユーザのdirectoryのSites内に保存する。
2)share のowner を該当ユーザに変更する。
3)readme にあるようにcontrol.php の$password = ”; にパスワードを書き加える。混乱しないように該当ユーザのmikeのパスワードと同じにするのがいいが、ユーザが初期パスワードを変更しているのでユーザに聞く必要がある。さもなければ別パスワードとなる。
3)ar_uploader01.php の名前を適当なものに変更する(しなくてもいいけど)。例えばユーザのIDを使って [ユーザ名]share.php とかにする。オリジナルのuploader はアップロード/ダウンロードするという機能にふさわしくないので、今回の目的に合うようにshareにし、ほかのユーザが作成を依頼してきたときに管理者が混乱しないようにユーザ名を付けたのだ。
4) [ユーザ名]share.php を開き ar_uploader01.php の文字列を検索し置換する。置換するのは変更したファイル名―この例では [ユーザ名]share.php に置換する。243、286、382、389、394行目の5カ所である。
5)control.php を開き ar_uploader01.php の文字列を検索し置換する。置換するのは変更したファイル名―この例では [ユーザ名]share.php に置換する。1110行目の1カ所である。
6)さらにcontrol.php の AR-UPLOADER01 の文字列を検索し置換する。26、46行目の2カ所にある。これはコントロールパネルに表示される文字列だから、好きなものでいい。この例では 「[ユーザ名]の共有 コントロールパネル」とかにする。日本語が使える。
7).htaccess を作る。このファイルはshare のdirectory に置く。owner を該当ユーザとし、パーミッションは604 とする 。「share 」directory の中身を見ることができる者をIDとパスワードで限定するファイルである。このファイルの中身は
AuthUserFile /Users/[該当ユーザID]/.htpasswd
AuthGroupFile /dev/null
AuthName “Please enter your ID and Password”
AuthType Basic
require valid-user
である。一行目はパスワードが書いてあるファイル(.htpsswd)の位置を指定するもので、[該当ユーザ]とはユーザのhome directory のことである。絶対directoryで表記する必要がある。またWebで公開されるdirectory内にあってはいけない。
8) .htpasswd を作る。
パスワードファイルに書かれている内容はIDと暗号化されたパスワードである。暗号化はユーザIDとパスワードで計算されたもので以下のコマンドで、パスワードファイルを設置するdirectory―この場合ユーザのhome directory で作成する。
# htpasswd -c .htpasswd [ユーザID]
New password:
Re-try new password:
Adding password for user [ユーザID]
ユーザを追加するときは htpasswd のコマンドにオプションの -c を付けない。付けると新規作成となって、前のパスワードがなくなってしまう。
このファイルは上記のようにユーザのhome directoryに置く。owner を該当ユーザとし、パーミッションは604 とする 。このファイルの中身は;
[ユーザID]:joF/nP5URJhPc のような表記になっている。
9)確認http://example.com/[ユーザ名]/share/ [ユーザ名]share.php にアクセスしてID パスワードが要求されること、
http://example.com/[ユーザ名]/share/ control.php にアクセスして、パスワードを入力すると設定できること。
おしまい。
10)付録
Delete 専用ページを作成するためにはconrol.php を複製しdelete.phpと名前を変えて、開き、余計な部分を削除する。
control.php のページにアクセスして設定画面で、「削除のページ」とかいう文字列とリンク先「http://example.com/[ユーザ名]/share/delete.php」をコメントA に記入する。