特に変更点はなし(ぉ。Server Infomation では、
しかし Win98SE ではサービスとして動作させるのはうまくいきませんでした。
Setup Type では Typical を選択。Destination Folder では、選択したフォルダ(デフォルトでは %programfiles%\Apache Group\)に Apache2 サブディレクトリを作ってインストールされるので、1.3系に上書きされる事はありません。ただし、2.0系をインストールする前に 1.3系は(もし起動していれば)終了させておきましょう。というか、1つのポート(ここでは80番ポート)を複数のプロセスが同時に使う事は出来ません。
インストールが終了すると、Apache Service Monitor が常駐します。サービスとしてインストールした場合はここから "Apache" や "Apache2" の制御ができます。それぞれ切り替えて挙動を確認するような時には便利でしょう(そんな機会がそれほど多いとは思いませんが)。
‥‥に入る前に、まずはドキュメントを読みましょう。日本語で記述されている文書を読むだけでもこの後起こるであろう問題を減らす事が出来ます。多分:)
228行目付近。公開する(しないけど)文書の基準となるディレクトリ。Win32版での初期値は "%programfiles%/Apache Group/Apache2/htdocs"
。Win32版でもディレクトリ区切り子が / (スラッシュ)であること、最後にスラッシュを付けないことに注意。
DocumentRoot "E:/localhost"
ちなみに、"//TOUYA/E/localhost"
などとネットワーク上のディレクトリを指定する事はできないようです。追記:コンピュータ名が自分自身である場合は可能のようです(意味無し)。
238行目付近。/ (ルート)と全てのサブディレクトリに対する設定はこのセクション中に書くことができますが、まぁここは弄らないで、次のセクションで指定しましょう:)
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
253行目付近から。まずはディレクトリパスを DocumentRoot ディレクティブで指定した値に変更します。
Options ディレクティブはスペースセパレートで複数指定可能(None
を除く)。初期値は Indexes FollowSymLinks
、デフォルト値は All
。CGI を使う場合は ExecCGI
、SSI を使う場合は Includes
、コンテントネゴシエーションを行なう場合は MultiViews
を追加。値 All
は MultiViews
の機能を含まないので全ての機能を有効にするには All MultiViews
とします。
AllowOverride ディレクティブは .htaccess ファイルによる上書きを許可するかの指定。デフォルト値は All
ですが、初期値は None
になっています。トクトクでは使えませんが、都合によりここは All
にします。
Order ディレクティブ、Allow ディレクティブ、Deny ディレクティブはアクセス制御関係。Allow ディレクティブ、Deny ディレクティブで許可|拒否するホスト等を指定、Order ディレクティブでデフォルトのアクセス状態と、Allow ディレクティブと Deny ディレクティブの評価順を指定。Order ディレクティブのデフォルト値は Deny,Allow
。初期値は Order ディレクティブが allow,deny
、Allow ディレクティブが from all
で、アクセスは常に許可。
ついでに、ここに DefaultLanguage ディレクティブと AddDefaultCharset ディレクティブを追加しておきます。
<Directory "E:/localhost">
Options Indexes FollowSymLinks ExecCGI MultiViews
AllowOverride All
Order allow,deny
Allow from all
DefaultLanguage ja
AddDefaultCharset UTF-8
</Directory>
Deny,Allow
の場合、アクセスはデフォルトで許可されます。Deny ディレクティブで指定されたアクセスだけが拒否されます。その上で Allow ディレクティブに指定されたアクセスは許可されます。Deny ディレクティブの指定は、Allow ディレクティブの指定によって上書きされます。
Allow,Deny
の場合、アクセスはデフォルトで拒否されます。Allow ディレクティブで指定されたアクセスだけが許可されます。その上で Deny ディレクティブに指定されたアクセスは拒否されます。Allow ディレクティブの指定は、Deny ディレクティブの指定によって上書きされます。
これを上記初期値に当てはめると、allow,deny
であるのでアクセスはデフォルトで拒否されます。そして Allow from all
により、全てのアクセスが許可されます。Deny ディレクティブはないので拒否されるアクセスはありません。すなわち、アクセスは常に許可されます。
625行目付近から。このディレクティブは 1.3系では初期状態では含まれていませんでした。2.0系でも初期状態ではコメントアウトされています。せっかくなので指定しておきましょう。
DefaultLanguage en
これにより、言語拡張子のない全てのファイルは日本語のファイルだとみなされて HTTP 応答ヘッダに Content-Language: ja が追加されます。逆に言うと、日本語以外の言語によるドキュメントの場合は言語拡張子を与えなければならないという事ですが、私、日本人ですので。
ここでの指定はサーバ全体に適用されるものなのでとりあえず英語にしておきましょう。公開する(しないけど)ファイルについては、そのファイルのあるディレクトリについての <Directory> ディレクティブで指定したほうが美しいような気がします。
705行目付近から。このディレクティブも 1.3系では初期状態では含まれていませんでした。しかし 2.0系では指定されていて、しかも初期値は HTTP/1.1 のデフォルトである ISO-8859-1
。これによって文字符号化方式拡張子のない日本語のテキストファイルは確実に文字化けしてくれます(CGI で Content-Type に適切な文字符号化方式を示していれば別ですが)。
デフォルト値は Off
なのでコメントアウトすると文字化けしなくなりますが、ここは素直に指定しておきましょう。
AddDefaultCharset ISO-8859-1
このままでは UTF-8 以外の文字符号化方式によるページ(NUAと最萌色々)が文字化けしてしまうのでそれぞれのサブディレクトリ下に .htaccess ファイルで AddDefaultCharset ディレクティブを指定しておきます(例の都合)。
上に同じ。
770行目付近から。CGI を使うときは cgi-script ハンドラを設定する AddHandler ディレクティブのコメントを外します。ついでに .cgi だけでなく .pl も CGIスクリプトとしておきます。
AddHandler cgi-script .cgi .pl
拡張子 .shtml を持つファイルに対して SSI を使う場合、1.3系では以下のように記述していました。
AddType text/html .shtml
AddHandler server-parsed .shtml
2.0系(2.0.26 以降)では新たに追加された AddOutputFilter ディレクティブを用いて以下のように書くことができます。799行目付近から。
AddType text/html .shtml
AddOutputFilter INCLUDES .shtml
ここまでの設定でローカルサーバとしては十分に使えるものになります(多分)。ここはそれに追加して何かしようというコーナー(?)です。
2.0系でもかなりの日本語マニュアルが用意されていますが、わりと参照頻度が高い(と思われる) core モジュールや Windows での Apache の使用についてのマニュアルには日本語版がなかったりします。というわけで 1.3系のマニュアルを読めるようにしましょう。そんなに変更点があるわけでもないので参考程度にはなります。
Alias /manual13 "%programfiles%/Apache Group/Apache/htdocs/manual"
<Directory "%programfiles%/Apache Group/Apache/htdocs/manual">
Options MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>
以上を httpd.conf の最後あたりにでも追加しておきましょう。これで http://localhost/manual13/ から 1.3系のマニュアルを読む事ができます。
ちなみに 2.0系のマニュアルは http://localhost/manual/ から読む事ができるように初期状態で設定されています。487行目付近から。