うぇぶくり?

 ホーム > 自宅サーバー構築マニュアル > WindowsにWebサーバーを導入する - Apache2 設定編

 

WindowsにWebサーバーを導入する - Apache2 設定編

 
2005/4/18

設定する前に

インストール終了後、「すべてのプログラム」内に次のようなメニューが生成されていると思います。
Apacheの動作設定を行う場合は、「Config Apache Server」から「Edit the Apache httpd.conf Configuration」を選択します。


※クリックすると、大きな画面で表示します。

クリックすると既定のエディタで設定ファイルが表示されます。
通常、そのままでも問題なく動作します。ローカル内で運用する場合には問題ありませんが、インターネット上に公開する場合はいくつか設定を変えたほうがいい箇所があります。
※先頭に「#」印があるのは、コメントアウトされているので、設定が有効になっていません。

コメントアウトとは

設定ファイルやプログラムのを変更するときに、記述されている内容を消すのではなく、コメントとして用意されている記号を用いて無効化することをいいます。
この設定ファイルでは、先頭に「#」が付いているものは、ただのドキュメントとして理解され、設定には反映されません。
例えば、新しく設定を追加するときは、今まであった設定を上書きするのではなく、前後にコメントアウトしておくことで、正常動作時の状態を保存しておくことができます。

httpd.confファイルは大きく分けて3つのセクションから成り立っています。ここでは、Section2からの説明になります。
また、設定後は、Webサーバーを再起動させないと設定が有効になりません。再起動の方法は次のページで解説します。

管理者のメールアドレス

ServerAdmin xxx@xxx.com

すでにインストールの時に入力したメールアドレスが入っていると思います。
変更したい場合は、ここを修正します。

サーバー名

ServerName www.xxx.com:80

これもインストールのときに指定したサーバー名です。
後ろの80は、80番ポートを使うという意味です。

ポートとは

ネット上で通信する際に、マシンごとのアドレス(IPアドレス)の下に設けられた補助アドレスのこと。
Webサーバーの場合、80番や8080番がよく使われます。
メールサーバーの場合は、25番や110番がよく使われます。

ドキュメントを置く場所

DocumentRoot "C:/Program Files/Apache Group/Apache2/htdocs"

公開するHTMLファイルを置く場所になります。
「/」は「\」に読み替えてください。
別途Cドライブの直下に「public_html」や「www」などのフォルダを作って、そこにファイルを置いたほうが運用上は楽だと思います。

文字コードの変更

AddDefaultCharset ISO-2022-JP

デフォルトの文字コードを変更します。
本来、この項目は変更しなくても<meta>タグでキャラクター設定すれば文字化けしないはずなのですが、インターネットエクスプローラーなどでは問題ありませんが、Firefoxなどのブラウザでは、文字コードを宣言していても、ここの設定のほうが優先され、ISO-2022-JPで表示しようとして文字化けの原因になってしまいます。
ページをShift-JISで構築する場合は、ここを

AddDefaultCharset Shift_JIS

とします。
じゃあこのサーバーではShift-JIS以外使えないのか!?というと先頭をコメントアウトして、ページ中できちんとキャラクタ設定してあげれば問題ありません。

#AddDefaultCharset Shift_JIS

ただしこの場合は、ページ中で文字コードをきちんと指定しないと文字化けを起こします。(IEもFirefoxもデフォルトはShift-JIS、もちろんユーザーがブラウザの設定で変更できます)
ページ先頭で文字コードを指定するのは当然といえば当然なのですが。。。

ログ書式の変更

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"${User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
LogFormat "%{Referer}i -> %U" referer
LogFormat %{User-agent}i"agent

ここはログの書式を定義しています。
このログの書式を combined と名づける、この書式をcommonと名づける、で、その後の行で

CustomLog logs/access.log common

という行があると思いますが、logs\access.logというファイルに先ほど定義したcommonという書式で書き込みなさい、という設定になります。

デフォルトでは、リファラやユーザーエージェントを書き込まないことになっているので、

CustomLog logs/access.log combined

として、記録するようにします。

しかしなぜかウチの環境ではうまく保存できなかったので

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"${User-Agent}i\"" common

として保存しています。

リファラとは

そのページの訪問者が、そのページの前に参照していたページです。
検索エンジンからアクセスがあった場合は、ユーザーがどのようなキーワードでそのページに訪問したのかがわかります。


ユーザーエージェントとは

そのページにアクセスがあったときに、使用していたソフト(主にブラウザ)のことです。
どのようなブラウザで見ているかの統計をとることで、ページが正しく表示されているか検証を行う必要もあります。

サーバーの署名設定

ServerSignature On

PageNotFoundなどで、サーバーがエラーメッセージを表示する場合、ここがOnになっていると、バージョンの情報などが表示され、攻撃者に情報を与えることになります。
ここは

ServerSignature Off

としておきます。

PHPの設定

MIME Typeを設定しているところで、PHPの設定もしておきましょう。
PHPのインストールについては別途説明します。

ScriptAlias /php/ "c:/php/"
Action aoolication/x-httpd-php "/php/php.exe"
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

以上を追記します。
ちなみに、

AddType application/x-httpd-php .php

の部分を

AddType application/x-httpd-php .php .html

とすると、拡張子が.htmlでも中に記述したPHPが動作するようになります。

ヴァーチャルホストの設定

ヴァーチャルホストとは、1台のWebサーバーにいくつかのドメインを割り振って運用させることです。
例えば、http://www.hoge.com/は、「c:\www\hoge/」をトップページとする、http://www.xxx.com/は、「c:\www\xxx」をトップページとする、という運用がApacheの設定で可能です。

ヴァーチャルホストはSection3に設定します。

#NameVirtualHost x:80

ここはヴァーチャルホストで使用するマシンのIPアドレスを記述します。

#NameVirtualHost 192.168.xx.xx:80

IPアドレスがわからない場合は、「コマンドプロンプト」で調べられます。
使用するマシンの「スタート」-「すべてのプログラム」-「アクセサリ」-「コマンドプロンプト」を選択します。
開いた窓上で「ipconfig」と入力してリターンキーを押します。

ipconfig
※クリックすると、大きな画面で表示します。

IP Address・・・のところにある数字がこのマシンのIPアドレスです。

※いくつかネットワークカードが刺さっている場合は、それぞれの設定が表示されます。

次に、Section3の一番下に例として

#<VirtualHost *:80>
# ServerAdmin webmaster@dummy-host.example.com
# DocumentRoot /www/docs/dummy-host.example.com
# ServerName dummy-host.example.com
# ErrorLog logs/dummy-host.example.com-error_log
# CustomLog logs/dummy-host.example.com-access_log common
#</VirtualHost>

このように記述しているところがあると思いますが、この例に従って記述していきます。

<VirtualHost 192.168.xx.xx:80>
ServerAdmin xxx@oyogu.com
DocumentRoot "c:/public_html/oyogu/"
ServerName www.oyogu.com
ErrorLog logs/oyogu_error_log
CustomLog logs/oyogu-access_log common
</VirtualHost>

ServerAdmin・・・管理者のメールアドレスを記述します。設定によりますが、公開される恐れがありますので注意です。
DocumentRoot・・・公開ファイルを置いておく場所を指定します。
ServerName・・・サーバー名です。
ErrorLog・・・エラーログの保存場所を指定します。logsは、Apache2のインストール先配下のフォルダ名です。
CustomLog・・・一般のアクセスログを保存する場所を指定します。

この書式で、必要なドメイン分記述していきます。
この設定は必ず

<VirtualHost 192.168.xx.xx:80>〜</VirtualHost>

の形になるように気をつけてください。

<2005.05.18 追記>
ヴァーチャルホストでは、Section2の設定を各ドメイン毎に設定することができます。
例えば、エラーページの設定を各ドメインごとに変えたい場合は、

<VirtualHost 192.168.xx.xx:80>
ServerAdmin xxx@oyogu.com
DocumentRoot "c:/public_html/oyogu/"
ServerName www.oyogu.com
ErrorLog logs/oyogu_error_log
CustomLog logs/oyogu-access_log common
ErrorDocument 404 /missing.html
</VirtualHost>

とすると、404エラー(対象ページがない場合に表示される)の場合は「c:/public_html/oyogu/missing.html」がエラーページとして表示されますが、他のドメインでは404エラーが発生した場合でもこのページが表示されることはありません。

このように、Section2の設定を<VirtualHost 192.168.xx.xx:80>〜</VirtualHost>内に記述することで、各ドメイン毎に詳細な設定ができるようになります。

関連する他のページ