最終更新:2008/3/1

Webサーバ apache のインストールと設定

現在リリースされているバージョンは 1.3系, 2.0系, 2.2系 の3個です。 このうち1.3は伝統的な非常に安定したものです。 2.0は機能のモジュール化とマルチスレッド化などが行われ非常に扱いやすくなったものです。 2.2はキャッシュとPROXYロードバランシング、 認証モジュールの改良やデータベース連携モジュールの提供などさらに進化しています。 ここでは2.2系の最新版である 2.2.6 を導入していきますので、 あらかじめ ports コレクションを最新にしておきます。

ports では apache 2.2系 は /usr/ports/www/apache22 にありますが、 多機能なので非常に多くのモジュール選択オプションが用意されています。 初回の実行時に既定値を元に対話的に選択しますが、 手動で選択するには make config で設定できます。 一度設定すると以後その設定が自動的に引き継がれます。 以前の設定を削除するには make rmconfig を実行します。 あまり気にとめる必要はありませんが、 この設定情報は /var/db/ports/apache22 に格納されています。

# cd /usr/ports/www/apache22
# make config ←対話的に設定を変更する(BATCHモードでなければ初回に実行される)
# make rmconfig ←以前の設定を削除する(既定値に戻る)

apache22 では make show-options で追加のオプション機能が表示されます。 make config を利用せず個別に設定するには WITHOUT_APACHE_OPTIONS=yes をつけて処理をしないといくつかの設定が無視されてしまいます。 (詳細は /usr/ports/UPDATING 参照) これらの設定は毎回設定してもいいのですが、 すでにオプションを決めていて変更する必要がなければ、 portupgrade 時に適用されるようにあらかじめ指定しておくと簡単にすすみます。 設定ファイルは /usr/local/etc/pkgtools.conf にあります。 このファイルの中ほどに MAKE_ARGS という項目があるので追加します。 たとえば、PROXY系を有効にするには以下のようにしておきます。 もしも、make config ですでに作っているならこの設定は不要です。

/usr/local/etc/pkgtools.conf
 MAKE_ARGS = {
    'www/apache22' => [
      'WITHOUT_APACHE_OPTIONS=yes',
      'WITH_PROXY_MODULES=yes',
    ],
    .
    .
    .
  }

インストールは portinstall www/apache22 で行います。 既定値になっているモジュール群は通常のサーバとして十分な設定なので、 特に理由がなければ変更せずにそのまま [OK] を押すことをお勧めします。

# portinstall www/apache22

make config や pkgtools.conf を変更して再インストールするには、 portupgrade -f オプションを使います。

# cd /usr/ports/www/apache22
# make config
# portupgrade -f www/apache22
もしくは
# ee /usr/local/etc/pkgtools.conf
# portupgrade -f www/apache22

apache 以外の ports に関しても上記のように make config や make rmconfig および pkgtools.conf で 設定を変更する事になります。


apache の起動と終了

ports でインストールしたソフトの起動用スクリプトは、 /usr/local/etc/rc.d の中に作成されます。 www/apache22 の場合は /usr/local/etc/rc.d/apache22 になります。 rc.conf にスクリプトを起動するように追加します。

/etc/rc.conf
apache22_enable="YES"

上記のように rc.conf に書くと、 起動用スクリプトが有効になり、 次回サーバ再起動から起動時に自動的に起動します。 また、shutdown 時に自動で停止します。 現在の環境で再起動なしにすぐに動かす場合は手動でデーモンを起動します。 主に利用するのは以下のようなコマンドです。

# /usr/local/etc/rc.d/apache22 start ←デーモンを起動します
# /usr/local/etc/rc.d/apache22 reload ←設定ファイルを再読み込みします
# /usr/local/etc/rc.d/apache22 restart ←デーモンを再起動します
# /usr/local/etc/rc.d/apache22 stop ←デーモンを停止します

正常に起動していると、 サーバに設定したIPアドレスでアクセスできるようになっています。 Internet Explorer などで、 http://192.168.2.60/ のようにサーバのIPで直接指定すると、 「It works!」と表示されます。

ルータの設定(アドレス変換やポート変換をサーバのIPアドレスと80番ポートに指定する)が終っていれば、 携帯からも http://選んだ名前.mydns.jp/ のようにアクセスできます。 ルータの設定はここでは目的としていないので書きませんので、 各メーカのサイトやマニュアルなどを見てください。

参考までに VirtualPC 2007 と説明で使った FreeBSD6.2 とドメイン名(ahtena.mydns.jp) を利用したサーバを置きました。http://athena.mydns.jp/ でアクセスすることができます。 ただし、予告なく停止することがあります。


apache の設定

ports でインストールしたソフトの設定ファイルは、 /usr/local/etc の中に作成されます。 www/apache22 の場合は /usr/local/etc/apache22/ に作成されて、 基本設定が httpd.conf になります。

この設定ファイルを自分の環境にあわせて変更するわけですが、 最初にやる事は設定ファイルのバックアップを作成する事です。 すでに動いている環境を変更する場合は、 必ず正常動作するファイルを保存するように癖をつける事をおすすめします。 ここでは簡単に変更するファイルのみ.bakとして保存する例を書いておきます。

# cd /usr/local/etc/apache22/
# cp -p httpd.conf httpd.conf.bak

設定を保存したら、httpd.conf を編集していきます。 主に編集する項目は以下のようなものです。

/usr/local/etc/apache22/httpd.conf
ServerAdmin you@example.com

エラー時のサーバ情報を表示する時に表示されるアドレスになります。

DocumentRoot "/usr/local/www/apache22/data"

<Directory "/usr/local/www/apache22/data">
(省略)
</Directory>

DocumentRoot でHTMLや画像ファイル等が保存されるている場所を指定します。 Directory でアクセス権限などを指定します。

    DirectoryIndex index.html

http://Webサーバ名/ のようにファイル名を指定しなかった場合に、 表示するべきファイルを指定します。 CGIやPHPを使う場合で省略したい場合は index.cgi や index.php を DirectoryIndex の後ろに追加します。

    ScriptAlias /cgi-bin/ "/usr/local/www/apache22/cgi-bin/"

<Directory "/usr/local/www/apache22/cgi-bin">
(省略)
</Directory>

ScriptAlias でCGIとして実行するファイルが保存されるている場所と、 そのファイルをアクセスする仮想パスを指定します。 Directory でアクセス権限などを指定します。

# Local access to the Apache HTTP Server Manual
#Include etc/apache22/extra/httpd-manual.conf

最後の方に apache の各種機能が追加で読み込みできるようになっています。 上記はマニュアルをWebサーバに配置する設定です。 先頭のコメントを外して、reloadすると /manual/ でアクセスできるようになります。 アクセス例: http://athena.mydns.jp/manual/

#Include etc/apache22/extra/httpd-manual.conf
↓変更
Include etc/apache22/extra/httpd-manual.conf

インストール直後では、 DocumentRoot が /usr/local/www/apache22/data になっているので、 「It works!」と表示されるHTMLファイルは、 /usr/local/www/apache22/data/index.html になります。 この場所に自分の好きなページを作って設置すれば、 自由にウェブサイトが作成できます。

初期状態では data ディレクトリは root が所有者になっていますので、 webページを作成するユーザに chown コマンドを使って変更しておきます。 ここでは -R オプションにより、 data ディレクトリに含まれるファイルもすべて staff というユーザに変更する例です。 変更したら WinSCP などで好きなファイルが自由に設置できます。

# chown -R staff /usr/local/www/apache22/data
           ↑staff の部分を自分のユーザ名にします 

同様にCGIを設置するには、 /usr/local/www/apache22/cgi-bin を変更します。

# chown -R staff /usr/local/www/apache22/cgi-bin
           ↑staff の部分を自分のユーザ名にします 

ここに設置したCGIは http://Webサーバ名/cgi-bin/ の中にあるように利用できます。