2020 年度 OSS リテラシ 3 : Apache のセットアップ

はじめに

本演習ではサーバとして VMware 上の仮想マシンを用いる. 本資料では仮想マシンに Apache をインストールする手順をまとめる.

Web サーバの準備

インストール

Web サーバとして Apache2 を利用する. Debian パッケージを利用してインストールする.

$ sudo -s

# apt-get update

# apt-get install apache2

apache2 パッケージをインストールすると自動的に Web サーバが起動する. この段階では apache2 の設定ファイルを変更する必要はない.

ブラウザで自分の IP にアクセスしてみよ. 以下のような URL をブラウザに打ち込めば良い.

http://10.176.0.XXX (XXX は自分の IP に)

上記のデフォルトページに書かれているように, 設定ファイルは /etc/apache2 以下に存在する. デフォルトのドキュメントルートは /etc/apache2/sites-enabled/000-default.conf に書かれている. ファイルを見るとドキュメントルートが /var/www/html であることがわかる.

# less /etc/apache2/sites-enabled/000-default.conf 

  ...(略)...
  DocumentRoot /var/www/html
  ...(略)...

そのため, /var/www/html 以下に HTML ファイルを置けば, ブラウザ上から閲覧することが可能となる.

Apache2 の設定ファイル

Linux のディストリビューション毎に設定ファイルの置き方に多少の違いがあるが, Debian 系の Linux では設定ファイルは /etc/ の下にあるパッケージ名のディレクトリに置かれている.

# ls -l /etc/apache2/

  合計 80
  -rw-r--r-- 1 root root  7224 11月  4 03:46 apache2.conf
  drwxr-xr-x 2 root root  4096 12月  4 23:52 conf-available
  drwxr-xr-x 2 root root  4096 12月  4 23:52 conf-enabled
  -rw-r--r-- 1 root root  1782 11月  3 20:34 envvars
  -rw-r--r-- 1 root root 31063 11月  3 20:34 magic
  drwxr-xr-x 2 root root 12288 12月 10 15:33 mods-available
  drwxr-xr-x 2 root root  4096 12月 10 15:33 mods-enabled
  -rw-r--r-- 1 root root   320 11月  3 20:34 ports.conf
  drwxr-xr-x 2 root root  4096 12月  4 23:52 sites-available
  drwxr-xr-x 2 root root  4096 12月  4 23:52 sites-enabled

ここで, conf-available と conf-enabled, mods-available と mods-enabled, sites-available と sites-enabled のセットがあることに気づくだろう. それぞれ以下のような意味がある.

conf-      : 諸々の設定ファイル 
mods-      : モジュール
sites-     : サイトの設定 (root ディレクトリやサイト名, など)

-available : 利用可能なもの. 
-enabled   : 有効になっているもの. 

モジュールなどを有効・無効にするために, 以下のコマンドが用意されている.

a2enmod <module 名>
a2dismod <module 名>

a2enconf <conf 名>
a2disconf <conf 名>

a2ensite <site 名>
a2dissite <site 名>

また, ユーザは www-data グループに入れておくと良い. apache2 は www-data ユーザ・グループ権限で実行されるためである.

# vigr

  www-data:x:33:hogehoge   (自分のユーザ名を加える)

ユーザディレクトリの有効化

URL で http://サイト名/~ユーザ名/ と書かれているケースがよくある. これは Apache2 で userdir モジュールを有効にすることで実現される. userdir モジュールを有効にすると, 各ユーザは自分の権限で Web ページを公開できるようになる (そうでなければ, 常に root 権限で /var/www/html/ 以下にファイルを置かねばならない).

userdir モジュールを用いるには, a2enmod コマンドを実行し, apache2 を再起動すれば良い.

# a2enmod userdir

# /etc/init.d/apache2 restart  (apache2 の再起動)

  [ ok ] Restarting apache2 (via systemctl): apache2.service.

# exit

$

Web ページを作成するためには, ホームディレクトリ以下に public_html という名前のディレクトリを作成し, その中にファイルを置けば良い.

$ mkdir ~/public_html

$ cd ~/public_html

$ vi helloworld.htm

  <html>
    <body>
      Hello World!
    </body>
  </html>

作成が終わったら, 自分の仮想マシンに接続し, helloworld.htm を表示してみよ. ブラウザを起動して, URL として "http://10.176.0.XXX/~USER/" を入力せよ (XXX は自分のIP, USER は自分のユーザ名に置き換えること)

課題

  • ~/public_html 以下に HTML ファイルを作成し, それをブラウザで表示せよ. URL (IP アドレス) とページの内容がわかるようにスナップショットをとり, それを wbt にアップロード登録せよ.