2021 年度 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 ユーザ・グループ権限で実行されるためである.
# usermod -aG www-data hogehoge # grep www-data /etc/group 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 にアップロード登録せよ.
- 3 年生の実験で Web ページを作ったはずである.それを思い出して,楽しい Web ページを作ってみて欲しい.