Windows11 WSL2 Ubuntu Apache2

仮想ホスト設定

ここまでで Apache2 にユ-ザ-ごとの公開ディレクトリを用意できました。
引き続き、仮想ホストを設定していきます。
新規に仮想ホスト設定 conf ファイル
/etc/apache2/sites-available/v-host3.jp.conf
を作成します。
仮想ホストの名前は分かりやすい名前にしてください。
ただし、アンダバ-は使用できません。
Apache2.4.25 以降ではエラーになります。 注意してください。
私は、v_host を使用していてひどく苦労しました。
詳細は
Apacheにバーチャルホストを設定するときのエラーと対処法
を参照してください。
Ubuntu ディスクスクトップ画面の端末から
yamada@yama:~$ sudo nano /etc/apache2/sites-available/v-host3.jp.conf
とし、以下の内容を入力し保存してください。

# v-host3.jp 用設定ファイル新規作成
# ホスト名にアンダースコアを使うと
# 400 Bad Request が発生する
<VirtualHost 172.25.186.150:80>
  ServerName v-host3.jp
  ServerAdmin webmaster@v-host3.jp
  DocumentRoot /home/yamada/public_html
  ErrorLog /var/log/apache2/v-host3.jp.error.log
  CustomLog /var/log/apache2/v-host3.jp.access.log combined
  LogLevel warn
</VirtualHost>

次に、
yamada@yama:~$ sudo a2ensite v-host3.jp
Enabling site v-host.jp
To activate the new configuration, you need to run:
systemctl reload apache2
で設定を読み込み、Apache2 を再起動します。
yamada@yama:~$ sudo systemctl restart apache2
または
yamada@yama:~$ sudo systemctl reload apache2

仮想ホストを設定しようとすると
yamada@yama:~$ sudo a2ensite v-host3.jp
Site v-host3.jp already enabled
のようになり、うまく設定できないことがあります。
このような時は一旦
$ sudo a2dissite v-host3.jp
として無効化してから、再度有効化してください。

$ sudo a2ensite v-host3.jp
$ sudo systemctl restart apache2
がエラしてしまうことはよくある話。
そんな時は入力ミスがほとんど、
v-host3.jp.conf
はかなり文字数が多いですよね、えてしてスペルミスはつきもの
こんな時は
$ apache2ctl -t
を実行してみてください。
Syntax OK
となれば、正しく入力されています。
問題のある行やスペルミスは指摘してくれます。
優れものです。
お試しを!
もう一つ
$ apache2ctl -S
も実行してみてください。
VirtualHost の現状を下記のように報告してくれます。
yamada@ubuntu-18:~$ apache2ctl -S

VirtualHost configuration:
172.25.186.150:80      v-host3.jp (/etc/apache2/sites-enabled/v-host3.jp.conf:4)
*:80                   yama. (/etc/apache2/sites-enabled/000-default.conf:1)
ServerRoot: "/etc/apache2"
Main DocumentRoot: "/var/www/html"
Main ErrorLog: "/var/log/apache2/error.log"
Mutex watchdog-callback: using_defaults
Mutex default: dir="/var/run/apache2/" mechanism=default
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-host3.jp.conf
/etc/apache2/sites-enabled/v-host3.jp.conf
の2つのファイルは中身は全く同じものなのです。
そして
etc/apache2/apache2.conf には
IncludeOptional sites-enabled/*.conf
なる記述があるので、
v-host3.jp 用設定ファイル
sites-enabled/v-host3.jp.conf
を読み込んでいるのです。
すなわち apache2.conf が最終的な apache2 の conf ファイルとなっているのです。

仮想ホストをブラウザで確認

ブラウザのアドレスバーに
http://v-host3.jp/test.html
と記入して画面に
「ハロー!ワールド!」
と表示できれば Apache の動作確認は完了なのですが、まだできません。

hosts ファイルの修正

通常、ホスト名と IP アドレスは DNS サ-バがその対応表を持っていて、 たとえば、v-host3.jp の IP アドレスは DNS サ-バが教えてくれます。
でも、今回は v-host.jp の IP アドレスは誰も教えてくれません。
仕方がないので、自分の PC の中で解決します。
そこで、DNS サ-バの代わりをしてくれるのが、hosts ファイルです。
ここに、ホスト名と IP アドレスの対応表を書き込みます。
hosts ファイルは
C:\Windows\System32
\drivers\etc\hosts
にあります。

hosts ファイルを開いて編集

hosts ファイルは開いて編集まではできるのですが、保存ができません。
メモ帳で開くにはコツがいります。
PC 画面左下隅 Winwowsマ-クをクリック
画面右上部にある「すべてのアプリ >」をクリック スクロールして一番最後の方にある ま 「メモ帳」 を右クリック
→ 詳細
→ 管理者として実行 をクリック
一旦画面が暗くなって「はい」をクリック
メモ帳画面が開いたら
ファイル → 開く
をクリック
画面右下にあるファイルの種類を「すべてのファイル」を選択するのを忘れずに!
C:\Windows\System32
\drivers\etc\hosts
にある hosts ファイル
を開きます。
・・・・・・
# localhost name resolution is handled within DNS itself.
# 127.0.0.1    localhost
# ::1    localhost
の後に(ファイルの最後に)
172.25.186.150    v-host3.jp
を追加し、上書き保存 します。
文字列の間の空白は、Tab キ-で設定しましょう。
これで、v-host3.jp の IP アドレスがわかるようになりました。
DNS の肩代わりが完了しました。

仮想ホスト設定がうまくいかない

仮想ホスト設定がうまくいかないときは
VirtualHost一覧を出力するコマンド
apachectl -S
を端末画面から入力してみましょう。
何かヒントがつかめるかもしれません。

仮想ホストの確認

Windows 側のブラウザでアドレスバーに
http://172.25.186.150/test.html
http://172.25.186.150/~yamada/test.html
または
http://v-host3.jp/test.html
と入力しアクセスします。
画面に
「ハロー!ワールド!」
と表示できれば Apache 仮想ホストの動作確認は完了です。
なお、Apache2 にユ-ザ-ごとの公開ディレクトリを用意したので /var/www/html 内の index と名前の付いたファイルは開かなくなりました。

これで、Apache2 環境構築が完了しました。
引き続き PHP をインストールしていきます。


  • PHP 環境構築 に進む
  • Apache2 ユ-ザ公開ディレクトリ に戻る
  • Apache2 環境構築 に戻る
  • 70VPS に戻る