週末は、自宅サーバーで使用しているApache HTTP Serverをバージョン2.0.63から2.2.9に変更する作業を行いました。

上書きインストールをしようと思い、

入手したapache_2.2.9-win32-x86-openssl-0.9.8h-r2.msiのパッケージを実行。

本当は、no_sslでも良かったのですが、後々使うことも考えられるので。

念のため、公開していない方のポート8080でインストールを実行。

しかし、インストール後、Apache Monitorを見ると、

Apache2とApache2.2の2つがあるじゃないか。

ということで、インストール先を確認すると、

Apache Software Foundationというフォルダが作成されていて、

そこにインストールされていました。

どっかで見たことのあるフォルダ名だなとは思ったが、

その話はあえてここでは触れません。

古いバージョンは、以前のApache Groupのフォルダに残っていました。

ということは、新バージョン設定は最初から?と思い、

httpd.confファイルをサクラエディタというテキストエディタで開く。

思いっきり最初からのようです。

まずは、インストールが成功しているか確認するため、

http://127.0.0.1:8080/にアクセスしてみる。

It works!

というのが表示された。

あれ? "あなたの予想に反して、このページが…"でなかったかなと思い、

デフォルトの公開フォルダに入っているHTMLを確認したら、これでOKでした。

インストールの成功を確認した後は、httpd.confの設定です。

前のバージョンの設定は反映されず、最初からでしたが、

そこはもう慣れたもの。

サクラエディタで、変更必須の部分を探して、以下の部分を変更。

ルートディレクトリから下の階層の.htaccessの読み込みを許可。
AllowOverride All

公開フォルダを以前と同じ場所へ。
DocumentRoot "中略/public_html"

公開ポートを80に変更。
Listen 80

個別ディレクトリの表示方法の変更と管理者ディレクトリにパスワードを設定。

ログファイルの設定。
CustomLog "logs/access.log" costom
CustomLog "logs/referer.log" referer
CustomLog "logs/agent.log" agent

エラードキュメントのカスタマイズ。
ErrorDocument 404 /404.html
ErrorDocument 403 /403.html

PHP、CGIの実行を許可。
LoadModule php5_module "c:/php/php5apache2_2.dll"
PHPIniDir "C:/php"
Options FollowSymLinks ExecCGI
DirectoryIndex index.html index.htm index.php index.cgi index.shtml


これが終わると、旧バージョンのApacheを停止。

早速、Apache2.2を再起動してみる。

結果はOKでした。

その後、旧バージョンをサービスから削除&アンインストールしました。

この作業は、1時間くらいで終了しました。

.htaccessは前のバージョンのものをそのまま使えるので、

思ったほど時間はかかりませんでした。

現在も、気が付いた部分を細かく設定している最中です。

なお、VirtualHostは今のところ使う予定がないので、放置しています。