Oct 23, 2008

htaccess制限セットアップ_AppleScript_ver1RC1

10.3と10.4と10.5対応

htaccess applescriptロゴ


 「ウェブページへのアクセスを限られたユーザーだけにしたいなぁ。」、そう思うことがあったりします。phpやCGIを利用すれば、こうした機能を実現させることができますが、本当にちょびっとした小さなサイトなどのために、わざわざCGIなどをいじくり回すのは、なんだか腰が重くなってしまいます。

 ここでは、Mac OS XのWeb共有機能にちょっとした設定をおこない、Web共有機能に組み込まれている「htaccess機能」を有効にして、アクセス制限を実現する方法を考えていきます。



こんなパスワードで制限されたサイトを設置することができる


 htaccessによるアクセス制限を実現するには、Mac OS X10.3や10.4なら、/etc/httpd/にあるhttpd.confファイルの編集、10.5なら/etc/apache2にあるhttpd.confファイルの編集を行います。次に制限したいフォルダに、設定が書かれている「.htaccss」ファイルとアクセスを許可するユーザー情報が書かれた「.htpasswd」ファイルを設置します。ここでは、「.htaccss」と「.htpasswd」ファイルは私が作成したAppleScriptを利用し、ちょっとだけ楽ちんをするようにしています。



 htaccessによるアクセス制限はとても手軽なアクセス制御方法ですが、利用する際は、十分な理解と対策、覚悟を持って行ってください。注意しないと思わぬマシンへの負荷を引き起こし、あなただけでなくたくさんの人にも迷惑をかけることになるかもしれません。あと、ありきたりですが、パスワードが盗まれたりしないようにも気をつけましょう。




httpd.confの設定の仕方

 ここではまず、/Library/Webserver/Document内で.htaccessによる制御ができるように設定します。もし自分のホームフォルダにあるサイトフォルダ(/Users/ユーザー名/Sites)内でも.htaccessを使用したいという場合は、このページの下の方に書いてある修正もおこなうのを忘れないようにします。

  1. まずシステム環境設定から共有を選んで、"パーソナルWeb共有"をオフにします。



  2. httpd.confがある場所を開きます。Finderのメニューから、フォルダに移動を選びます。




  3. "フォルダへ移動"ウィンドウが出ますので、以下の内容を入力してhttpdがあるフォルダに移動します。

  4. Mac OS X10.3や10.4の場合

    /etc/httpd/

    Mac OS X10.5の場合

    /etc/apache2/

  5. httpd.confが保存されている今まで不可視だったフォルダが開きます。


    いままで見えなかったフォルダです。もう少し詳しく場所をみるとこんな感じ。半透明のフォルダの下。



  6. "httpd.conf"ファイルをデスクトップにコピーします。


    ドラッグアンドドロップするだけでコピーできます。(アクセス権の関係)


  7. httpd.confファイルをもしも何かあったときのために複製してどこかにしまっておきます。

    デスクトップにコピーしたhttpd.confを選んで、Finderのメニューから複製を実行します。

    httpd.conf のコピーという名前のファイルができますので...



    を"httpd.conf050806a"とか、変更した日付なんでもいいですがわかりやすい名前を付けておきます。

    これを忘れないところにバックアップしておきます。

    書類フォルダやhttpconfのバックアップフォルダとかを作ってしまっておきます。トラブルあったときに役立ちます。


  8. miエディットでデスクトップにおいてあるhttpd.confを開きます。miエディットはhttp://mimikaki.net/でダウンロードできます。



    ちなみに、ANYiMacさんところのCotEditorを利用すれば/etc/httpd/httpd.confまたは/etc/apache2/httpd.confファイルを直接編集、保存することができますので便利です。でも直接編集する場合はバックアップ作成と編集ミスに十分気をつけましょう。


  9. ファイルの中から以下の記述の場所を探します。似たような記述があって紛らわしいですが、「検索」を利用して、.htaccessと検索すると見つかります。Mac OS X10.3や10.4とMac OS X10.5では記述がちょっと違いますが、設定方法は同じです。

    上記の画像はMac OS X10.3や10.4での記述。


  10. ここの記述を次のように書き換えます。なお、下記はMac OS X10.5での記述です。
    # AllowOverride controls what directives may be placed in .htaccess files.
    # It can be "All", "None", or any combination of the keywords:
    # Options FileInfo AuthConfig Limit
    #
    AllowOverride None


    以下のように書き換え


    # AllowOverride controls what directives may be placed in .htaccess files.
    # It can be "All", "None", or any combination of the keywords:
    # Options FileInfo AuthConfig Limit
    #
    AllowOverride All


  11. ファイルを保存します。




  12. 今編集したhttpd.confファイルをMac OS X10.3や10.4なら/etc/httpd/に書き戻します。10.5なら/etc/apache2/にドラッグアンドドロップで書き戻します。もしもうフォルダを閉じてしまっていたら、先ほどやったのと同じ手順で"フォルダへ移動"を使って開いてください。


    ドラッグアンドドロップで放り込みます。禁止マークがつきますが、気にせず放り込みます。


  13. 警告ダイアログが出ますので、びっくりしますが、気にせず"認証"を押して進みます。



  14. httpd.confの古いファイルを置き換えてもいいか聞いてきますので"置き換える"を押しましょう。



  15. 名前とパスワード(Macの)を聞かれますので、入力します。管理者パスワードですよ。



  16. コピーが無事行われるはずです。



  17. これでコピー完了です。



  18. コピーをしただけだと、ファイルのアクセス権がちょっと変わってしまっていますので、これを元に戻す作業を行います。
  19. Mac OS X10.3や10.4の場合

    httpd.confの情報をみます。所有者とアクセス権を以下のように変更します。まずグループをwheel/読み出しのみに、次にオーナーをシステム/読み書きにします。先にオーナーの方を変えるとグループの方がかえられませんので注意。認証を求められることがありますのでそのときは指示に従います。


    Mac OS X10.5の場合

    ユーティリティフォルダからターミナルを起動して、以下のコマンドを入力し、リターンで実行します。
    sudo chown root:wheel /etc/apache2/httpd.conf


    実行時にpasswordを求められます。求められたら管理者パスワードを入力して対応します。ちなみに入力しても、盗み見防止のため、表示されません。でもちゃんと入力されていますので間違えないようにします。


  20. システム環境設定から、共有を開いて"パーソナルWeb共有"をオンにします。Mac OS X10.5では"Web共有"という名前です。



  21. あとはhtaccess制限セットアップAppleScriptを利用して、アクセス制限を行いたいフォルダの指定とパスワードセットにすすみます。



htaccess制限セットアップAppleScriptのダウンロード

htaccess制限に必要な.htaccessファイルと.htpasswdファイルの設置を手伝ってくれるAppleScriptをダウンロードします。

  1. まず以下のリンクからファイルをダウンロードします。


    htaccess_Setup_AppleScript_ver1RC1.dmg (application/x-diskcopy : 172 KB)
    MD5 : 3738dd5eb7766a311fc0d536fb09c426


  2. ダウンロードしたら、ファイルをダブルクリックで開きます。するとディスクトップにイメージディスクができます。



  3. イメージディスクの中にインストーラパッケージがありますので、ダブルクリックして、起動し、インストールを完了させてください。

    インストーラパッケージをダブルクリックして...


    インストールを実行。


  4. インストールが完了すると、アプリケーションフォルダの中にインストールされた「htaccess_Setup_AppleScript」フォルダが開きます。



  5. 「htaccess制限設置AppleScript」を利用して、アクセス制限したい場所を設定していきます。



htaccess制限設置AppleScriptで設定ファイルを作成・設置

「htaccess制限設置AppleScript」を起動させて、あとは指示に従って、操作を完了していきます。

  1. 起動して、いざ作業スタート。





    了解事項もちゃんと読んでおいてください。


  2. [Step1]ではhtaccessで制限をしたい場所を決定します。



  3. どのフォルダを制限するか指定します。ここでは例として/Library/WebServers/Documents内にtestという名前のフォルダを作り、そこを制限するように設定します。

    なお、htaccessでアクセス制限を行える場所は、httpd.confに設定を行っただけなら、/Library/WebServers/Documents以下に作成したフォルダです。httpd.confに加えて、「ユーザーネーム.conf」のほうの設定も行った場合は、/ユーザー/ユーザーネーム.confと同じユーザー/Sites/以下でもオーケーになります。


  4. アクセス制御に使用される名前をつけます。これはアクセスするユーザーネームではなく、通信の際に便宜的に使われる名前です。なので、あまり深く考えなくてもよいです。



  5. [Step2]では、この制限されたサイトにアクセスできるユーザーとそのパスワードを作る作業を行います。



  6. アクセスを許可するユーザー名を決めてください。半角英数字に限ります。

    Macのユーザーネームじゃないですよ。何でも好きなものをつけてOKです。


  7. そのユーザーが使うパスワードを決めてください。半角英数字に限ります。



  8. [成功]の表示が出れば、無事作業は完了です。次は動作確認に進みます。



  9. なお補足ですが、このAppleScriptによって設置された.htaccessや.htpasswdファイルは見えないファイルになっています。この見えないファイルを確認したり、開いたりしたいときは、miエディット(http://mimikaki.net/)などを使用します。またこのファイルの名前を変更するにはFugu(http://rsug.itd.umich.edu/software/fugu/)などのアプリケーションを使うと便利です。




    miには目に見えないファイルを開くメニューがちゃんと用意されています


    そこから開くとこんな具合にみえます。


    開けば中身を確認することができます。



動作確認

実際にアクセス制限がされているかをテストしていきます。

  1. 先ほど設置した場所へのURLをSafariなどで開いてみます。ここでは例として/Library/WebServer/Documents/に作成したtestフォルダをアクセス制限しましたので以下のようなURLでテストしていきます。

    http://localhost/test/





  2. URLを入力してひらくと、ユーザー名とパスワードを求められますので、正しく入力します。ここでは例としてユーザー名をUserName、パスワードをpasswordと設定していますので、その通り入力します。

    おおー、ちゃんとアクセスが制限されてる。


  3. 無事アクセスができれば成功です。



  4. これですべての作業は終了です。お疲れ様でした。




ユーザーのサイトフォルダでもhtaccessを使えるようにする

 上記のhttpd.confの設定だけではユーザーのサイトフォルダではhtaccess制限は使うことができません。htaccessを有効にするためにはMac OS X10.3や10.4なら/etc/httpd/usersフォルダ以下にある「htaccessを有効にしたいユーザー名.conf」を編集する必要があります。Mac OS X10.5の場合は、/etc/apache2/usersフォルダ以下にある「htaccessを有効にしたいユーザー名.conf」です。

  1. httpd.confがあるフォルダを開きます。その中から「users」フォルダを見つけ開きます。



  2. htaccessを有効にしたいユーザー名のconfファイルを探します。


  3. このファイルのバックアップをかならずどこかに保存しておきます。



  4. miやCotEditorで開きます。



  5. 以下の記述の部分を修正します。バックアップさえしっかりとっているいるのであれば、CotEditorで直接編集してしまってかまいません。

    <Directory "/Users/wallstreet/Sites/">
    Options Indexes MultiViews
    AllowOverride None
    Order allow,deny
    Allow from all
    </Directory>

    これを

    <Directory "/Users/wallstreet/Sites/">
    Options Indexes MultiViews
    AllowOverride All
    Order allow,deny
    Allow from all
    </Directory>

    これに


  6. 編集が済んだら、保存します。



  7. あとはhttpd.confで行った操作と同じ手順で、usersフォルダに書き戻し、アクセス権を修正します。Mac OS X10.5の場合は

    sudo chown root:wheel /etc/apache2/users/ユーザー名.conf

    を実行します。CotEditorで直接編集した場合はこの操作は不要です。


  8. ユーザーのサイトフォルダでhtaccessを有効にするための設定は以上で完了です。



Trackback

No Trackbacks

Track from Your Website

http://earlybirds.ddo.jp/namahage/inegalog/trackback/tb.php?id=63
(言及リンクのないトラックバックは無視されます)

Comments in Forum

1 Comment