Apache UNIX Windows

【Apache】Windows(64bit)版Apache2.4でバーチャルドメインを有効にする方法

2018/05/17

使っていたPCのHDDが逝ってしまわれたので、新マシンにApache2.4、PHP5.6、MySQL5.1という内容で開発環境を作成しました。

以前と同じく、Apacheのバーチャルドメインを有効にし複数サイトを管理する必要があるので、バーチャルホストを設定するのですが、Apache2.4で若干ハマったポイントを備忘録としてポストします。

バーチャルホスト設定

Acpahe2.4のhttpd.conf編集

インストールの状況は以前のポストからどうぞ。
今回の状態だと「httpd.conf」のパスは C:\Program Files\Apache24\conf\httpd.conf となります。

500行目あたりのコメント記号(#)を削除し、Apacheを再起動します。

これでバーチャルホストがオンになってくれます。

httpd-vhosts.conf編集

バーチャルホストを起動した場合のPHPの設定ファイルは
C:\Program Files\Apache24\conf\extra にある「httpd-vhosts.conf」となるので、オリジナルをバックアップしてから編集します。
httpd-vhosts.conf には下記のコメントアウトされたサンプルがあるので、これと、これまで過去に使っていた設定を交えて編集します。

掲載されているサンプル

Apache2.2で使っていた設定

例として、最初のテストなので適当に以下のようなURLとドキュメントルートで作成します。

PHPをインストールした(C)ドライブではなく、データ用の(I)ドライブで管理展開していくので、ドキュメントルートなどのパスは(多少面倒ですが)フルパスで設定していくことにします。

上記のように記述。

"Directory" から始まるブロック(ディレクティブ)を追記します。

あと、この設定だとエラーログ及びアクセスログは、C:\Program Files\Apache24\logs 以下に延々と同じファイルで作成されてしまいますが、まずは起動テストが先なので細かいところは無視して進めます。

hostsファイルの編集

次に「hosts」ファイルの設定を行います。
C:\Windows\System32\drivers\etc にある「hosts」ファイルをメモ帳や秀丸などのエディタで編集します。
管理者権限が必要になる場合もあるので、管理者として実行すると幸せになれるかもしれません。

超カンタンなテスト用のHTML、PHPテスト用のファイルも作成。

index.html

info.php

これをドキュメントルート(I:/website_data/FIRSTTEST/firsttest/public_html)に配置。

アクセス許可の設定

起動テスト

Apacheを再起動し、起動テストします。
さぁこい。

vhost_01

↑ 403 Forbidden。なんでやねん。

アクセス許可設定の記述方法

エラーログ(C:\Program Files\Apache24\logs\firsttest.lh-error.log)を見ると以下の通り。

よくわからないのでエラーメッセージを頼りにググります。

どうやら、Apache2.4系では Directory 部分の書き方がApache2.2系とは変わっているとのこと。
以下のように書く必要があるようです。
なるほどですね。

vhost_02

↑ 無事にバーチャルホストで動きました。

.htaccessを有効にする

もうひとつ大事なこと。
CakePHPでサイトを運用することが大前提なので、必ず.htaccess を有効にする必要があります。
ここでもう一行追加して、.htaccess を使えるようにもします。

以上で幸せになれます。

ログローテーションする

前述しましたが、この設定だとエラーログ及びアクセスログは、C:\Program Files\Apache24\logs 以下に延々と同じファイルで作成されてしまうので、以前使っていた設定通り、月替りでログローテーションするよう変更します。

ついでにログのパスをフルパスにして、ドキュメントルート近くのlogsディレクトリに作成保存するようにもします。

最終的には以下のように記述。

vhost_04

↑ ログも指定通りにキタ!

ローテーション部分ではどこが変わったかといえば、rotatelogs に「.exe」の拡張子が必要になったようです。
これがわからなくて少しハマってしまいました…。

バージョンが変わるとこういう事に陥るのですよね。
ふぅ、やれやれ。

Apacheが起動しない場合のWindowsのログ

最後に、Apacheが起動しない場合のWindowsのシステムイベントログの確認方法。

ApacheMonitor.exe からではいまいち何が起こっているのか分からないので、Apacheが起動しない場合は[サービス]ウィンドウから起動・再起動すると、このようなウィンドウが開いて「ログを確認しなはれ」という喚起をしてくれます。

vhost_03

サービスウィンドウは[コントロールパネル] → [管理ツール] → [サービス] をたどり、登録されていれば、Apache2.4という項目があると思います。

システムイベントログ

[コントロール パネル] → [管理ツール] → [イベント ビューアー]をダブルクリックして開き、
左フレームの「Windowsログ」 → 「システム」から確認することが出来ます。

vhost_05

vhost_06

これで、多少の手がかりにはなりそうです。
…なってるか?

-Apache, UNIX, Windows
-, , , ,