ApacheとはWEBサーバーソフトのことだ...以上...じゃ,あまりにあっけないので...インターネットブラウザ(Windowsだとインターネットエクスプローラーが標準)を立ち上げてインターネットに繋いだときに画面に表示されるデータを送ってくれるソフトウェアの事で,主にLinuxで採用されている(WindowsだとInsternetInformationService:IISがServer版にはおまけで付いている)。
ところで,我が家のサーバー機のOSはWindows2000を使ってるのにどうしてIISじゃなくてApacheにするんだ?...「使ってみたかったから」っていうのが最大の理由だ(^^;
まずは最初に。ここで紹介するセットアップ方法はあくまで自分用セッティングなので,セキュリティについてはほとんど考慮していない。そういった対策が必要な場合はもっとまっとうなサイトを見てもらいたい。
さぁそれではセットアップを始めよう。まずは,http://www.apache.org/からWin32 Binary版をダウンロード(Ver2.xxの最新版)して実行する。インストール方法は「Typical」じゃなくて「Custom」がおすすめだ。「Typical」だとインストール先が「C:\Program Files\Apache Group\Apache2」と深くなるので,「Custom」インストールにして「C:\Apache」に以下のフォルダ構成になるようにしてしまおう。
これだと,後々設定変更する際にもエクスプローラーで開くのが速いし(^^; それにフォルダ名に空白が入るのは気持ち悪いじゃないか(コマンドプロンプトで開く場合にね)。
インストールが終われば,ブラウザで「http://localhost/」にアクセスしてみよう。Apacheの画面が表示されればイントールは無事完了だ。
さて次は環境設定だ。設定変更は「C:\Apache\conf\httd.conf」でおこなう。中身はテキストファイルなのでメモ帳とかその他適当なエディタで編集できるぞ。
および250行目前後の# DocumentRoot: The directory out of which you will serve your
# documents. By default, all requests are taken from this directory, but
# symbolic links and aliases may be used to point to other locations.
#
DocumentRoot "C:/Apache/htdocs"
を変更する。# This should be changed to whatever you set DocumentRoot to.
#
<Directory "C:/Apache/htdocs">
および530行目前後の# ScriptAlias: This controls which directories contain server scripts.
# ScriptAliases are essentially the same as Aliases, except that
# documents in the realname directory are treated as applications and
# run by the server when requested rather than as documents sent to the client.
# The same rules about trailing "/" apply to ScriptAlias directives as to
# Alias.
#
ScriptAlias /cgi-bin/ "C:/Apache/cgi-bin/"
を変更する。 ちなみに,Perl-CGIファイルの1行目に書くおきまり(#!/usr/bin/perl)はActiveperlのある場所(イントラ実験室1参照)# "C:/Apache/cgi-bin" should be changed to whatever your ScriptAliased
# CGI directory exists, if you have that configured.
#
<Directory "C:/Apache/cgi-bin">
となるぞ。#!c:/perl/bin/perl (Perl.exeのある場所への絶対パス指定だ)
と,jaを一番前に持ってくる。LanguagePriority ja en ca cs da de el eo es et fr he hr it ko ltz nl nn no pl pt pt-BR ru sv zh-CN zh-TW
をコメントアウトする(行頭に#を付ける)#AddDefaultCharset ISO-8859-1
変更が終わったらApacheを再起動しよう。PCを丸ごと再起動するか,コマンドプロンプトから
とすればOKだ。
セキュリティは考えていないと書いたが,最低限,IPアドレスによるアクセス制限くらいは紹介しておこう。「c:\apache\conf\httd.conf」を開くと,前項の「htmlを公開するフォルダ」のところに
<Directory "C:/Apache/htdocs">
:
:
Order allow,deny
Allow from all
</Directory>
の記述があるはず。これは,
アクセスはallow(許可),deny(拒否)の順に設定
全部のアドレスからのアクセスを許可
なので,
Order deny,allow
Deny from all
Allow from IPアドレス1 IPアドレス2 IPアドレス3
と変更すれば指定したIPアドレス1〜3だけ接続可能になる。このIPアドレス部分をCIDR表記すればIPアドレスの範囲で指定可能になるぞ。例えば,192.168.11.1〜192.168.12.127の範囲を指定したいなら,それぞれを2進数で表すと
となる。ここで双方を左側から比較していくと,同じ数字が続いているのは("."は除いて)左側から21個なので,CIDR表記は192.168.11.1/21だ。
設定変更後はApacheを再起動しないと変更内容が反映されないぞ。
デフォルトではファイル(フォルダ)名が日本語になっているとリンクできない。この問題を解決するためにはmod_encodingのインストールが必要である。WebDAV Resources JPから,Win32版をダウンロードしてインストールすればよい...が,ひとつ問題がある。このバイナリだとCGI引数の日本語もUTF-8にエンコードされてしまう。通常はそのまま使用できるが,全文検索namazu(イントラ実験室2参照)や配布されているcgiプログラム等でUTF-8に対応していないものでは文字化けが発生し検索できなくなってしまう。
対策としてはソースからビルドし直す必要があるらしいが,そんなことできるかい! と,困ったときのGoogle頼みだ。Googleで「apache mod_encoding namazu win32」を検索すると,パッチの当たったWindows用バイナリを公開しているサイトが見つかった。そこのmod_encoding.soをインストールしよう。
LoadModule encoding_module modules/mod_encoding.so
<IfModule mod_encoding.c>
EncodingEngine On
SetServerEncoding UTF-8
DefaultClientEncoding JA-AUTO-SJIS-MS
</IfModule>