- 2009-02-04 (水) 23:35
- Web関連


- Windows用Apache設定編
無事Apacheのインストールが出来たところで、設定を変更してみましょう。
Windows用Apacheの設定ファイルは、Apacheをインストールしたフォルダ内の、「conf」フォルダ以下にある「httpd.conf」になります。
確かApache1.3系だと、ズラズラとすべての情報がコメントアウトで書かれていたのですが、Apache2.2の「httpd.conf」はかなりシンプルな構造になっています。
というのも、一般的でない設定は「conf」のさらに下にある「extra」フォルダ内に、種類ごとに分割されているからです。「httpd.conf」ではこれらの設定ファイルをコメントを外して読み込むようになっています。
設定ファイルの記述パターンは、以下の様になっています。
# # This is the main Apache HTTP server configuration file. It contains the # configuration directives that give the server its instructions. # See <URL:http://httpd.apache.org/docs/2.2/> for detailed information. # In particular, see # <URL:http://httpd.apache.org/docs/2.2/mod/directives.html> # for a discussion of each configuration directive. #
この様に「#」で始まる行はコメントです。上記の様に解説メモになっている部分と、下記の様に「#」を削除した場合に有効になる設定値の部分があります。
# Some examples: #ErrorDocument 500 "The server made a boo boo." #ErrorDocument 404 /missing.html #ErrorDocument 404 "/cgi-bin/missing_handler.pl"
Apacheの設定については、基本的に検索すれば大抵の情報は見つけられますし、「manual」以下にHTMLによるマニュアルもインストールされていますので、さほど難しくはないと思います。ただしApache1.3用の説明だったりして、そのままでは有効でない情報もありますので注意してください。
ちなみにApacheの設定項目、および記述部分をディレクティブと呼ぶようです。
それではApacheの設定の、特に重要な部分のみ抜粋して説明します。
ServerRoot "C:/usr/local/httpd"
ここはApacheがインストールされた場所です。ここを基準に各フォルダが配置されています。インストーラによる新規インストールの場合、この様に実際にインストールされた場所が、設定ファイルに書き込まれます。(その為インストーラ上で、正しいインストール場所を指定した方が作業が楽になります。)後からフォルダを移動せせるような場合には、ここ及び各ディレクティブを変更します。
#Listen 12.34.56.78:80 Listen 80
サーバーが要求を受け付けるアドレスとPort番号です。通常は80(HTTP)で良い筈です。アドレスを書いた場合、そのIPアドレスに対する要求しか処理しません。
LoadModule actions_module modules/mod_actions.so LoadModule alias_module modules/mod_alias.so LoadModule asis_module modules/mod_asis.so LoadModule auth_basic_module modules/mod_auth_basic.so #LoadModule auth_digest_module modules/mod_auth_digest.so ・ ・
DSOモジュールと呼ばれるものです。プラグインの様なものと理解して下さい。Apacheではコンパイル時に機能を組み込むか、DSOにより動的に機能を読み込むかを選択するようになっています。Windows環境では特殊な場合を除き、DSOによる組み込みが一般的です。読み込むには行頭の「#」を削除します。
ServerAdmin postmaster@example.com ServerName www.example.com:80 DocumentRoot "C:/usr/local/httpd/htdocs"
ここがサーバーの基本情報になります。よくサーバーエラーの時に管理者のメールアドレスが表示されているのを見かけると思いますが、それはここの値になります。「ServerName」は実際には「Listen 80」とした場合、「localhost」の様なアドレスでもアクセス可能なので、サーバーの情報だと思ってください。
「DocumentRoot」がサーバーのルート「/」(http://www.example.com/)の位置になります。
<Directory /> Options FollowSymLinks AllowOverride None Order deny,allow Deny from all Satisfy all </Directory>
ドキュメントルートに対する設定です。各内容については、説明が氾濫しているので、特に触れません。このDirectoryディレクティブで、場所ごとの設定を上書きが可能です。また、よく知られている様に「.htaccess」ファイルを使っても設定の上書きが可能です。設定は上位から下位に向けて上書きされます。ただし「AllowOverride」によって上書き禁止にされている場合は、その限りではありません。
<IfModule dir_module> DirectoryIndex index.html </IfModule>
Apacheは(WEBサーバーは)通常ディレクトリを指定した場合に、特定のファイルを表示します。ここに書かれたファイル名がその時返されるファイルです。
ここには複数のファイル名をスペースで区切って書くことが可能です。書かれた順番で処理され、最初に適合したファイルが表示されます。「index.html」よりも「index.php」を表示したい場合は以下のように記述します。
DirectoryIndex index.php index.html
両方のファイルが存在する場合、この場合「index.php」が表示されます。該当するファイルがひとつも存在しない場合、「Not Found」が表示されます。(Indexディレクティブで、ファイルリスト表示する設定がしてある場合は、ファイルリストが表示されますが、余り公開サーバーで勧められる設定ではありません。)
<FilesMatch "^\.ht"> Order allow,deny Deny from all </FilesMatch>
設定ファイルの「.htaccess」とパスワードファイルの「.htpasswd」をWEBサーバー経由でアクセスが出来なくする為のものです。絶対に無効にしないでください。
ScriptAlias /cgi-bin/ "C:/usr/local/httpd/cgi-bin/"
「ScriptAlias」はCGIファイルのアクセス権限の設定と、「Alias」ディレクティブの設定を合わせたものです。CGIファイルには実行権限が必要なので、ここで設定したフォルダに入れるか、他のDirectory指定でsuEXEC設定を行います。単純な構成ならCGIスクリプトはこのフォルダ内で使用するようにします。ただし、このフォルダ内のファイルはCGI以外のアクセス方法で表示出来ません。アイコンやスタイルシートなど(いわゆるスタティックファイル)が、このフォルダ以下に配置されても、それを表示する事は出来ません。
# Local access to the Apache HTTP Server Manual #Include conf/extra/httpd-manual.conf
最初に説明したカスタム設定は、この様に読み込み設定されています。使用するには行頭の「#」を削除します。
# Required modules: mod_alias, mod_setenvif, mod_negotiation
各ファイルには上記の様なコメント(各設定ファイルで必要とされているDSO)が書かれているので、「httpd.conf」のDSO部分をコメントアウトし、読み込むようにしておきます。
各設定が有効になるのはサーバーを再起動したタイミングです。設定に必要なDSOが読み込まれていなかったり、設定自体がおかしかったりすると、エラーになりサーバープロセスは起動しません。
これだけじゃ中途半端なんで、Apacheプロセスのリスタートについて。
インストールでスタートアップに入るかはうろ覚えだけど、Apacheサービスの起動状態を表示してくれる、「ApacheMonitor」というのがあります。
こんなインジケーターが表示されていなければ、メニューから起動します。
インジケーターをダブルクリックで、こういう画面が表示されます。
緑色テカテカで「Start」ボタンがグレーアウトしている、この状態がApacheが正常起動している状態です。ちなみにここが「Apache2.2」という名前になっているのは、サービスをこの名前で登録しているからです。サービスはこんな風に手動インストール・アンインストール出来、登録時のサービス名を変更する事で、複数のApache(2.0と2.2とか)も登録可能です。(同じPortを同時には使えませんけど)
これがエラー状態。サービス起動時にエラーが発生すると、こんなようなエラーポップアップも表示されます。
これだけだと、「なにかがまずい」という事しか解りません。もう少しきちんとした情報が欲しい場合は、Apacheの設定テストを使います。
メニューからこれを実行すると、この様な感じで何行目に問題があるかを表示してくれます。
動作としてはhttpd.confの頭から処理をはじめて、矛盾や問題が見つかった行を表示し動作が止まります。必ずしもその行に問題がある訳では無く、行の処理に必要とされていることを、先に書いていなかったケースもあります。また、その行以後の問題はまだチェックされていないので、一つが解決出来ても、次の行でエラーで止まる場合もあります。それでも、手を付ける場所が解らない場合には役に立ってくれます。
サービス起動には管理者権限が必要になるので、ここでも以前説明したUACツールをお勧めしておきます。
という訳で、駆け足の設定(httpd.conf)編は終わり。
次は「Windows用Apache設定編・バーチャルホストとログローテーション」になります。(次こそ、短めで追われるかな?)
- Newer >: Windows用Apache設定編・バーチャルホストとログローテーション
- < Older: ActionStreamsのロシア語版が出てる訳だけど
ping a Trackback
- TrackBack URL for this entry.(1)




スクリプトの読み込みが完了していません。
メールフォーム(Javascriptを使用していません)や、
Twitter経由のCommentでもReplyいたします。ただし返信はブログのコメントとして行う事もあります。