Apache2 インストール
ゲストOS(Ubuntu)IPアドレス確認
ここまで、ホストオンリ-アダプタ設定してきました。
引き続き、設定したゲストOS(Ubuntu)IP アドレスを確認します。
Ubuntu を起動します。
端末画面から
yamada@ubuntu-18:~$ ip address show
または
yamada@ubuntu-18:~$ ip a
と入力してください。
3: enp0s8
のところに
inet 192.168.56.102/・・・・・・・
の表示があれば OK です。
もし、設定がない場合は
一旦IPアドレスを開放して再度割り当ててみてください。
$ sudo dhclient -r
$ sudo dhclient
これで、ホストオンリ-アダプタによるゲストOS(Ubuntu)IP アドレスの準備が完了しました。
サ-バ名設定
これは本来 Apace2 をインスト-ルしたらすぐ設定すべきものですが、特にここまで設定せずとも動作してきました。
しかし、仮想ホストを設定するにあたり、もともとのサ-バ名がないと仮想ホストがうまく設定できないかもしれないので
サ-バ名を設定することにします。
設定 conf は
/etc/apache2/conf-available/
に新規に作成します。
ファイル名はなんでもよいのですが、fqdn.conf とします。
Ubuntu 画面から端末を起動します。
$ sudo nano /etc/apache2/conf-available/fqdn.conf
とし、
ServerName hogeserver
ServerName はなんでもよい 例 hogeserver
入力が完了したら
$ sudo a2enconf fqdn
$ sudo service apache2 restart
で完了です。
/etc/apache2/conf-enabled/fqdn.conf
が作成できていることを確認しましょう。
内容は全く同じものになっているはずです。
サ-バ名を設定しようとすると
yamada@ubuntu-18:~$ sudo a2enconf fqdn
Conf fqdn already enabled
のようになり、うまく設定できないことがあります。
このような時は一旦
$ sudo a2disconf fqdn
として無効化してから、再度有効化してください。
仮想ホスト設定
新規に仮想ホスト設定 conf ファイル
/etc/apache2/sites-available/v-host.jp.conf
を作成します。
名前は分かりやすい名前にしてください。
ただし、アンダバ-は使用できません。
Apache2.4.25 以降ではエラーになります。
注意してください。
私は、v_host を使用していてひどく苦労しました。
詳細は
Apacheにバーチャルホストを設定するときのエラーと対処法
を参照してください。
Ubuntu ディスクスクトップ画面の端末から
yamada@ubuntu-18:~$ sudo nano /etc/apache2/sites-available/v-host.jp.conf
とし、以下の内容を入力し保存してください。
ただし、最初に、
Listen 192.168.56.102:80
NameVirtualHost 192.168.56.102:80
のような内容は書いてはいけません。
# v-host.jp 用設定ファイル新規作成
# ホスト名にアンダースコアを使うと
# 400 Bad Request が発生する
<VirtualHost 192.168.56.102:80>
ServerName v-host.jp
ServerAdmin webmaster@v-host.jp
DocumentRoot /home/yamada/public_html
ErrorLog /var/log/apache2/v-host.jp.error.log
CustomLog /var/log/apache2/v-host.jp.access.log combined
LogLevel warn
</VirtualHost>
次に、
yamada@ubuntu-18:~$ sudo a2ensite v-host.jp
Enabling site v-host.jp
To activate the new configuration, you need to run:
systemctl reload apache2
で設定を読み込み、Apache2 を再起動します。
yamada@ubuntu-18:~$ sudo systemctl restart apache2
仮想ホスト設定しようとすると
yamada@ubuntu-18:~$ sudo a2ensite v-host.jp
Site v-host.jp already enabled
のようになり、うまく設定できないことがあります。
このような時は一旦
$ sudo a2dissite v-host.jp
として無効化してから、再度有効化してください。
$ sudo a2ensite v-host.jp
$ sudo systemctl restart apache2
がエラしてしまうことはよくある話。
そんな時は入力ミスがほとんど、
v-host.jp.conf
はかなり文字数が多いですよね、えてしてスペルミスはつきもの
こんな時は
$ apache2ctl -t
を実行してみてください。
Syntax OK
となれば、正しく入力されています。
問題のある行やスペルミスは指摘してくれます。
優れものです。
お試しを!
もう一つ
$ apache2ctl -S
も実行してみてください。
VirtualHost の現状を下記のように報告してくれます。
yamada@ubuntu-18:~$ apache2ctl -S
VirtualHost configuration: 192.168.56.102:80 v-host.jp (/etc/apache2/sites-enabled/v-host.jp.conf:1) *:80 hogeserver (/etc/apache2/sites-enabled/000-default.conf:1) ServerRoot: "/etc/apache2" Main DocumentRoot: "/var/www/html" Main ErrorLog: "/var/log/apache2/error.log" Mutex default: dir="/var/run/apache2/" mechanism=default Mutex mpm-accept: using_defaults Mutex watchdog-callback: using_defaults PidFile: "/var/run/apache2/apache2.pid" Define: DUMP_VHOSTS Define: DUMP_RUN_CFG User: name="www-data" id=33 not_used Group: name="www-data" id=33 not_used
仮想ホスト設定確認
/etc/apache2/sites-enabled
を見ると v-host.jp.conf
が追加されたのがわかります。
/etc/apache2/sites-available/v-host.jp.conf
/etc/apache2/sites-enabled/v-host.jp.conf
の2つのファイルは中身は全く同じものなのです。
そして
etc/apache2/apache2.conf には
IncludeOptional sites-enabled/*.conf
なる記述があるので、
v-host.jp 用設定ファイル
sites-enabled/v-host.jp.conf
を読み込んでいるのです。
すなわち apache2.conf が最終的な apache2 の conf ファイルとなっているのです。
仮想ホストをブラウザで確認
ブラウザのアドレスバーに
http://v-host.jp/test.html
と記入して画面に
「ハロー!ワールド!」
と表示できれば Apache の動作確認は完了なのですが、まだできません。
hosts ファイルの修正
通常、ホスト名と IP アドレスは DNS サ-バがその対応表を持っていて、
たとえば、v-host.jp の IP アドレスは DNS サ-バが教えてくれます。
でも、今回は v-host.jp の IP アドレスは誰も教えてくれません。
仕方がないので、自分の PC の中で解決します。
そこで、DNS サ-バの代わりをしてくれるのが、hosts ファイルです。
ここに、ホスト名と IP アドレスの対応表を書き込みます。
hosts ファイルは
C:\Windows\System32
\drivers\etc\hosts
にあります。
hosts ファイルを開いて編集
hosts ファイルは開いて編集まではできるのですが、保存ができません。
メモ帳で開くにはコツがいります。
PC 画面左下隅 Winwowsマ-クをクリック
W Windows アクセサリ-をクリック
メモ帳 を右クリック
→ その他
→ 管理者として実行 をクリック
一旦画面が暗くなって「はい」をクリック
メモ帳画面が開いたら
ファイル → 開く
をクリック
ファイルの種類を「すべてのファイル」を選択するのを忘れずに!
C:\Windows\System32
\drivers\etc\hosts
にある hosts ファイル
を開きます。
・・・・・・
# localhost name resolution is handled within DNS itself.
# 127.0.0.1 localhost
# ::1 localhost
の後に(ファイルの最後に)
192.168.56.102 v-host.jp
を追加し、上書き保存 します。
文字列の間の空白は、Tab キ-で設定しましょう。
これで、v-host.jp の IP アドレスがわかるようになりました。
DNS の肩代わりが完了しました。
仮想ホスト設定がうまくいかない
仮想ホスト設定がうまくいかないときは
VirtualHost一覧を出力するコマンド
apachectl -S
を端末画面から入力してみましょう。
何かヒントがつかめるかもしれません。
仮想ホストの確認
ブラウザのアドレスバーに
http://v-host.jp/test.html
と入力して、画面に
「ハロー!ワールド!」
と表示できれば仮想ホストの動作確認は完了です。
これで、ゲストOS(Ubuntu)IPアドレス確認に続く仮想ホスト構成の説明は終わりです。
引き続き、VirtualBox Apache2 Digest 認証サイト を作成していきます。