Windows11 WSL2 Ubuntu Apache2

Apache2 ユ-ザ公開ディレクトリ

ここまでで、Apache2 のインスト-ルが完了いました。
引き続き、ホスト Windows OS のフォルダと Ubuntu ユ-ザ名直下の任意のフォルダ の共有化をして、ユ-ザ-ごとの公開ディレクトリを用意します。
これにより、ブラウザからこの共有フォルダがみえるようになります。
ただちょっと面倒です。
少しずつ進んでいきます。

ユ-ザ-ディレクトリ作成

ユ-ザ-ディレクトリ
/home/yamada/public_html
を作成します。
このディレクトリは Windows 上では
\\wsl.localhost\Ubuntu-22.04\home\yamada\public_html
となります。
Windows のエクスプローラでは
Linux\Ubuntu-22.04\home\yamada\public_html
のように見え共有化されます。
Ubuntu ターミナル端末画面から
yamada@yama:~$ mkdir ~/public_html
とします。
次にアクセス権を設定します。
ディレクトリ public_html は所有者以外は実行だけ許可
yamada@yama:~$ chmod 701 ~/public_html
ディレクトリ /home/yamada はすべて実行を許可
yamada@yama:~$ chmod +x ~
とします。
Windows のエクスプローラで
Linux\Ubuntu-22.04\home\yamada\public_html
が見えたら OK です。

ホスト OS での準備

ホスト Windows OS 上で、ブラウザで公開するファイルを作成します。
公開用の HTML ファイル test.html を作成して
Linux\Ubuntu-22.04\home\yamada\public_html
に保存します。
Windows のエクスプローラで
Linux\Ubuntu-22.04\home\yamada\public_html
の中に新規作成で test.html を作成し、これを編集して以下の内容のファイルにします。


<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="UTF-8">
  <title>テスト</title>
</head>
<body>ハロー!ワールド!
</body>
</html>

文字コ-ドは、UTF-8N
BOM なし
改行コ-ドは、LF
です。
次にアクセス権(664)を設定します。
すべてのユーザは読み取りができ、所有者と所有グループは書き込みもできる
にします。
yamada@yama:~$ chmod 664 public_html/test.html
設定を確認します。
yamada@yama:~$ ls -la public_html/test.html
-rw-rw-r-- 1 yamada yamada 157 7月 6 16:19 public_html/test.html

ユ-ザ-ディレクトリ有効化

ファイル userdir.conf を確認します。

yamada@yama:~$ cat /etc/apache2/mods-available/userdir.conf

<IfModule mod_userdir.c>
  UserDir public_html
  UserDir disabled root

  <Directory /home/*/public_html>
    AllowOverride FileInfo AuthConfig Limit Indexes
    Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
    Require method GET POST OPTIONS
  </Directory>
</IfModule>

これを見ると Apache のユ-ザ-ディレクトリは public_html にデフォルトで設定されていることがわかります。
だから、公開用の HTML ファイル test.html は
Linux\Ubuntu-22.04\home\yamada\public_html
に作成しました。
よって userdir を a2enmod すると ユ-ザ-ディレクトリが有効になります。
yamada@yama:~$ sudo a2enmod userdir
と入力して apache2 サービスを再起動します。
yamada@yama:~$ sudo systemctl restart apache2
まとめると次のようになります。


yamada@yama:~$ sudo a2enmod userdir
[sudo] yamada のパスワード:
Enabling module userdir.
To activate the new configuration, you need to run:
  systemctl restart apache2
yasuhiro@ysenba:~$ sudo systemctl restart apache2

ユ-ザ-ディレクトリを有効化しようとすると
yamada@yama:~$ sudo a2enmod userdir
Module userdir already enabled
のようになり、うまく有効化できないことがあります。
このような時は一旦
$ sudo a2dismod userdir
として無効化してから、再度有効化してください。

仮想ホストの構成

ユ-ザ-ごとの公開ディレクトリを用意することができました。
仮想ホストを構成し個別の URL でアクセスできるようにします。
バーチャルホストを設定するとドメイン名を利用できるようになります。
例として、バーチャルホストで運用するドメイン名 [v_host3.jp] を、
一般ユーザー [ubuntu] のホームディレクトリ領域
/home/yamada/public_html
に割り当ててアクセスできるように設定します。
当例のように一般ユーザー領域を利用する場合は事前に Userdir の設定も必要です。
すでにこれは前項で設定済みです。
今回目指すのは、
http://172.25.186.150/test.html
http://v_host3.jp/test.html
のような URL 設定です。
ちなみに上記 IP アドレス 172.25.186.150 は私の場合の例で
yamada@yama:~$ hostname -I
から取得することができます。

これで、Apache2 にユ-ザ-ごとの公開ディレクトリを用意できました。
引き続き、仮想ホストを設定していきます。


  • 仮想ホスト設定 に進む
  • Apache2 環境構築 に戻る
  • 70VPS に戻る