PC館

ApacheをWindowsで使ってみよう

Apacheって?

ApacheとはWEBサーバーソフトのことだ...以上...じゃ,あまりにあっけないので...インターネットブラウザ(Windowsだとインターネットエクスプローラーが標準)を立ち上げてインターネットに繋いだときに画面に表示されるデータを送ってくれるソフトウェアの事で,主にLinuxで採用されている(WindowsだとInsternetInformationService:IISがServer版にはおまけで付いている)。

ところで,我が家のサーバー機のOSはWindows2000を使ってるのにどうしてIISじゃなくてApacheにするんだ?...「使ってみたかったから」っていうのが最大の理由だ(^^;

Apacheのセットアップ

まずは最初に。ここで紹介するセットアップ方法はあくまで自分用セッティングなので,セキュリティについてはほとんど考慮していない。そういった対策が必要な場合はもっとまっとうなサイトを見てもらいたい。

さぁそれではセットアップを始めよう。まずは,http://www.apache.org/からWin32 Binary版をダウンロード(Ver2.xxの最新版)して実行する。インストール方法は「Typical」じゃなくて「Custom」がおすすめだ。「Typical」だとインストール先が「C:\Program Files\Apache Group\Apache2」と深くなるので,「Custom」インストールにして「C:\Apache」に以下のフォルダ構成になるようにしてしまおう。

C:¥Apache
        \bin
        \cgi-bin
        \conf
        \error
        \htdocs
         :

これだと,後々設定変更する際にもエクスプローラーで開くのが速いし(^^; それにフォルダ名に空白が入るのは気持ち悪いじゃないか(コマンドプロンプトで開く場合にね)。

インストールが終われば,ブラウザで「http://localhost/」にアクセスしてみよう。Apacheの画面が表示されればイントールは無事完了だ。

Apacheの環境設定

さて次は環境設定だ。設定変更は「C:\Apache\conf\httd.conf」でおこなう。中身はテキストファイルなのでメモ帳とかその他適当なエディタで編集できるぞ。

変更が終わったらApacheを再起動しよう。PCを丸ごと再起動するか,コマンドプロンプトから

c:¥>net stop apache2
c:¥>net start apache2

とすれば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進数で表すと

192.168.11.1    = 11000000.10101000.00001011.00000001
192.168.12.127 = 11000000.10101000.00001100.11111111

となる。ここで双方を左側から比較していくと,同じ数字が続いているのは("."は除いて)左側から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をインストールしよう。