昨日書いたように, Windows7HP+SP1(x86) が載ったデスクトップを手にしたわけで,しめしめと,新 Wamp 系 WebServer の構築に取り掛かった。
手始めに,ハードディスク上にパーティションを2つ切った。サーバ・ウェア用のドライブ (Drive_SV) と他のサイト用のファイルのドライブ (drive_DC) にするためだ。
ところで,作業の間に何度か Windows ファイアーウォールからアラートが来ると思うが,その場合は,間違いなく必要であることを確認のうえ,「許可」すること。じゃ,始めます。
Apache のインストール。
- httpd-2.4.6-win32-VC11.zip (= Apache2.4.6)を落とす。
この zip の場合, VC11 が必須なので,vcredist_x86.exe をダウンロードしてインストールする。
zip を展開する。 - 展開ファイル内の httpd.conf をカスタマイズする (場所:Apache24conf)。
デフォルト カスタム 1 ServerRoot “c:/Apache24” ServerRoot “Drive_SV:/Apache24” 2 ServerAdmin admin@example.com ServerAdmin 私のメールアドレス 3 #ServerName www.example.com:80 ServerName local IP アドレス:80 4 DocumentRoot “c:/Apache24/htdocs” DocumentRoot “drive_DC:/WEB/htdocs” 5 <Directory “c:/Apache24/htdocs”> <Directory “drive_DC:/WEB/htdocs”> 6 Options Indexes FollowSymLinks Options FollowSymLinks 7 ErrorLog “logs/error.log” ErrorLog “|bin/rotatelogs.exe -l -f logs/error.%Y.%m.%d 86400” 8 CustomLog “logs/access.log” common # CustomLog “logs/access.log” common 9 #CustomLog “logs/access.log” combined CustomLog “|bin/rotatelogs.exe -l -f logs/access.%Y.%m.%d 86400” combined 10 ScriptAlias /cgi-bin/ “c:/Apache24/cgi-bin/” ScriptAlias /cgi-bin/ “drive_DC:/WEB/cgi-bin/” 11 <Directory “c:/Apache24/cgi-bin”> <Directory “drive_DC:/WEB/cgi-bin”> 12 Require all granted Require ip Lan IP range (cgi-bin へのアクセス制限として) 13 ServerTokens Prod - Apache24 フォルダをそっくり Drive_SV に移動する。
- cmd.exe を管理者として起動。
>cd Drive_SV:Apache24bin
>httpd.exe -t
この段階でエラーが出るようなら,先に進む前に,もう一度確認すること。サービスとして登録する。
>httpd.exe -k install
ApacheMonitor.exe ショートカットを Windows スタートアップの中に作り,Apache をスタート。 - index.html を Apache24/htdocs から drive_DC:WEBhtdocs に移動する。
ブラウザから, http://localhost/ にアクセスする。
“It works!” が帰ってくれば,インストールは完了。 - 先ほどの index.html を削除する。
追記(8/11):
ここのところ, Apache のハングアップに悩まされていた。で,そのときのエラーメッセージが相変わらず,「(OS 64)指定されたネットワーク名は利用できません。 : AH00341: winnt_accept: Asynchronous AcceptEx failed.」。というわけで, httpd.conf に下記の行を加えてみた。(参照:AcceptFilter ディレクティブ)<--- 先に英語版を読んでから,それの日本語版へのリンクを貼ったが,肝心な点ついての情報量が大分違うことに今気づいたので,英語版へのリンクも貼っておきます。
<IfModule mpm_winnt_module>
AcceptFilter http none
AcceptFilter https none
</IfModule>