前回は名前ベースのバーチャルホストの設定について説明しました。
今回は実際にApacheへバーチャルホストを設定し動作を確認します。
今回の環境は以下になります。 Amazon Linux2 docker コンテナにて Apache2.4 を使用します。
目次
やりたいこと
結果
http://local.test.com をブラウザで表示すると “test” と表示された画面が見えること。
バーチャルホストの設定内容
バーチャルホストの機能を使って以下を設定します。
・Amazon Linux2 内の “/www-contents” というディレクトリをドキュメントルートとする。
・http://local.test.comへアクセスするとドキュメントルート(“/www-contents”)を参照させる。
手順
大まかな手順は以下の通りです。
1. Amazon Linux2 内へ “/www-contents” と言うディレクトリを作成
2. バーチャルホストの設定を記載した設定ファイル vhost.conf を配置
3. Apache を再起動しバーチャルホストの設定を読み込む
4. ローカルPCのhostsを設定
5. http://local.test.com をブラウザで表示すると “test” と表示された画面が見えることを確認
ドキュメントルート用ディレクトリの作成
Amazon Linux2 内にて以下のコマンドを実行しドキュメントルートディレクトリを作成します。
・コマンド
mkdir /www-contents
バーチャルホストの設定
設定ファイルの配置
Apacheは設定を設定ファイルに記載します。なお、Apacheの設定ファイルは設定内容を他のファイルへ分割して読み込みを行う様な設定がされていることがあります。
今回は、Apacheの設定ファイルを確認すると、他の設定ファイルの読み込み先が /etc/httpd/conf.d ディレクトリ以下の .conf という拡張のファイルが読み込み対象となっていました。
従って、今回は上記(他の設定ファイル)の読み込み先に、上記の内容を記載した vhost.conf を配置します。なお、ファイル名は .conf という拡張子であればなんでも良いです。a.conf とかでもOKです。
設定ファイルの読み込みついては以下を参考にして下さい。
Amazon Linux2 内にて以下のコマンドを実行し、今回設定するバーチャルホストの内容を記載して保存して下さい。
・コマンド
vi /etc/httpd/conf.d/vhost.conf
・内容
NameVirtualHost *:80
<VirtualHost *:80>
ServerName local.test.com
DocumentRoot /www-contents
<Directory "/www-contents">
Options -Indexes +FollowSymLinks
AllowOverride all
Require all granted
</Directory>
</VirtualHost>
今回 local.test.com というドメイン(ホスト名)でHTTP接続を行います。従って ServerName ディレクティブに local.test.com を指定します。
次にDocumentRootディレクティブへ今回使用するドキュメントルート、/www-contents を指定します。
また、Directoryディレクティブにより、ドキュメントルートへのアクセスを許可する為に、Require ディレクティブを使用しています。
Apacheの設定読み込み
設定ファイルを変更しただけではApacheは設定を読み込んでくれません。Apacheを再起動すると変更した設定を読み込んでくれます。
ゆえに、Apacheを再起動します。
systemctl restart httpd
hostsの設定
Amazon Linux2 内ではなく、ローカルPCのhostsを設定します。
local.test.com を ローカルIP(127.0.0.1)と紐付けることで、http://local.test.com が 127.0.0.1 のホストを参照するようにします。
いつもはlocalhostとすると127.0.0.1を見るようにしていますが、local.test.comでも 127.0.0.1 を見ることが可能にできるようにhostsを設定します。
今回は、127.0.0.1 を local.test.com と紐付けます。
以下を参考にして hosts 設定を行って下さい。
動作確認
動作確認用ファイルの作成
Amazon Linux2 内にて以下のコマンドを実行し、確認の為にブラウザに表示させるファイルを作成します。
内容は “test” と言う文字としますが内容はなんでも良いです。
・コマンド
vi /www-contents/index.html
確認
ブラウザへ http://local.test.com を入力して下さい。 “test” と表示されれば成功です。
最後に
NameVirtualHost ディレクティブを設定しなくてもできました。* を指定してるからかなと。ローカルIPを指定するとうまくいきませんでした。
以下でIPアドレスを指定して、バーチャルホストの設定を行いました。
参考にして下さい。