2006/08/06
MAMPでWebサーバ構築2

前回の続き。
Apacheの設定ファイルを手動でいじります。
Apacheの設定ファイルの場所は次のとおりです。
このファイルをテキスト・エディタで編集します。
/Applications/MAMP/conf/apache/httpd.conf
さて、Webブラウザで「http://localhost:8888/」にアクセスすると次のように表示されるでしょう。

サーバのDocumentRoot(前回のエントリー参照)に設定したパス「/Apprications/MAMP/htdocs/」に、index.htmlやindex.phpが存在しないため、そのディレクトリ内のファイルリストを表示されています。(実際はファイルが何一つないので表示されていませんけど)
クローズドな環境であれば丸見えでもOKですが、サーバを外部に公開するならばリストをさらすのはあまり好ましくないでしょう。
で、これを制御するがOptionsディレクティブで指定するIndexes。これを除外します。
また、私好みの環境として、FollowSymLinks、ExecCGI、MultiViewsもいじりました。
この辺の詳しいドキュメントはこちら。
サーバ全体のデフォルト設定はhttpd.confの378行目あたり。
変更前
<Directory />
Options Indexes FollowSymLinks
AllowOverride All
</Directory>
変更後
<Directory />
Options ExecCGI MultiViews
AllowOverride All
</Directory>
DocumentRootの変更は406行あたり。<Directory "/Applications/MAMP/htdocs">と</Directory>に囲まれた部分です。
コメントアウトすることで、デフォルト設定と一緒にしてみました。
変更前
Options All
変更後
#Options All
さて、設定ファイルの変更後はApacheサーバを再起動します。
つまり、MAMP.appでサーバを一旦停止し、再度起動します。
それでは、もう一度「http://localhost:8888/」にアクセスしてみましょう。
「Forbidden」のページが表示され、ディレクトリの一覧が出てこなくなります。

--- 以下、2006/8/21追記 ---
もう一つ重要な設定を忘れていましたので、追記しておきます。
perlなんかで書かれたcgiプログラムを、cgiとして認識させるために、次のように変更します。
959行目あたり。
変更前
#AddHandler cgi-script .cgi
変更後
AddHandler cgi-script .cgi
これで拡張子がcgiであるファイルがcgiとして認識されます。
売り上げランキング:38751
発売日:2006/06

