彩音のBSD日記
2009年01月17日の日記
2009年01月17日(Apache をインストールしよう!

そろそろ webサーバ として機能させたいので
Apacheをインストールします。
先日セッティングした ports からのインストールを試みてみましょう。

apache-2.2 のインストール

apache-2.2.11 をインストールします。


# cd /usr/ports/www/apache22
# make

エラー
makeinfoが古いようです。
texinfo をインストールします。


# /usr/ports/print/texinfo
# make
# make install
# rehash

/usr/bin/makeinfo から /usr/local/bin/makeinfo へシンボリックリンクを張ります。


ln -s /usr/local/bin/makeinfo /usr/bin/makeinfo

改めて apache-2.2.11 をインストールに挑戦します。


# cd /usr/ports/www/apache22
# make
# make install
# rehash

うまく行ったようです。
細かい設定はともかく使ってみたいので簡単に設定を済まします。

httpd.conf の設定

FreeBSD-5.5 で ports から apache-2.2.11 を入れたとき、httpd.conf は /usr/local/etc/apache22/httpd.conf にあります。
とりあえず、サーバー管理者とルートの確認、ドキュメントディレクトリの設定だけします。


# cd /usr/local/etc/apache2/
# cp httpd.conf httpd.conf.bak
# vi httpd.conf

初期設定ではこうなっていました。


ServerRoot "/usr/local"
Listen 80
User www
Group www
ServerAdmin you@example.com
DocumentRoot "/usr/local/www/apache22/data"
<Directory />
AllowOverride None
Order deny,allow
Deny from all
</Directory>
<Directory "/usr/local/www/apache22/data">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>

サーバールートは /usr/local
ポートは 80番で
ユーザー、グループとも www で動作
サーバー管理者は you@example.com
ドキュメントルートは /usr/local/www/apache22/data
ルートディレクトリのアクセスは全て無効にしておき
/usr/local/www/apache22/data ディレクトリ設定で
ディレクトリのファイル一覧表示を ON
.htaccess は無効
アクセス制限は許可してから拒否で全てからアクセスを許可に。

とりあえず動くか確認するだけなので、サーバー管理者のメールアドレスのみ変更して保存。

ここで、httpd.conf の構文チェック


# httpd -t
Syntax OK

デーモンですので、rc.conf に設定を追加します。


apache22_enable="YES"
apache22_http_accept_enable="YES"

起動確認

FreeBSD で Apache を制御する場合、 /usr/local/etc/rc.d/apache22 を使います。
起動
/usr/local/etc/rc.d/apache22 start
停止
/usr/local/etc/rc.d/apache22 stop
再起動
/usr/local/etc/rc.d/apache22 restart
ステータス表示
/usr/local/etc/rc.d/apache22 status
rc.d の項目を表示
/usr/local/etc/rc.d/apache22 rcvar

起動してみましょう。


# /usr/local/etc/rc.d/apache22 start
Performing sanity check on apache22 configuration:
Syntax OK
Starting apache22.

ここで、ブラウザからアクセスしてみます。
お〜!ちゃんと通っています。

ステータスと rc.d の項目を確認


#/usr/local/etc/rc.d/apache22 status
apache22 is running as pid 68450.
# /usr/local/etc/rc.d/apache22 rcvar
# apache22
$apache22_enable=YES

よさそうですね。