フレッツADSL導入日誌

Webサーバー

導入編
FreeBSDルーター編
ローカルDNSサーバー
フレッツADSLで固定IP
ドメイン取得とDNS運用
メールサーバー
>>> Webサーバー

30 Aug 2011 若干追記。
29 Aug 2011 新規作成。

※ほとんど覚え書き。

Webサーバー

 WebサーバーとしてApache HTTP Serverを入れてみる。 といっても、基本は

$ ./configure
$ make
# make install

だけ。ただ、後々のことを考えると、

$ ./configure -enable-so

くらいはしておいた方がいい、かもしれない。

 放っておくと/usr/local/apache2以下にインストールされる。 設定ファイルが/usr/local/apache2/confに、ログが/usr/local/apache2/logsになる。 個人的に、設定ファイルは/usr/local/etc/apache2に、ログは/var/log/apache2実体ができて欲しい。 設定ファイルが/usr/local/etc以下にまとまっていると設定ファイルをバックアップするのが楽なのと、/varはパーティションを分けてあるから(ログ書いてる途中にシステムがトンでも、//usrは助かる可能性が高い)。

 なので、設定ファイルとログの実体を/usr/local/etc/apache2/var/log/apache2に移して、/usr/local/apache2からシンボリックリンクを張るようにしている。 ./configure --sysconfdir=/usr/local/etc/apache2とかやってもいいんだけどね、調べるのが面倒くさい・・・。

後からモジュールを追加する

 実は./configureすると、config.niceというファイルができる。 中を見るとシェルスクリプトになっていて、configureした際のコマンドラインが書いてあって、後ろに$@が書いてある。 だから、./config.nice --hogeとすると、最初にconfigureしたオプションに--hogeが追加されてconfigureされる。 で、config.niceにも--hogeが追加されるので、さらにオプションを追加していくこともできる。

 最初に./configure --enable-soとしてあれば、例えばmod_headersを後から組み込みたければ、

$ ./config.nice --enable-headers
$ make
# make install

でよい。

 これはマイナーバージョンアップのときにも使える。 新しいバージョンのソースツリーを展開したら、古いソースツリーにあるconfig.niceを新しいソースツリーにコピーして使えばよい。

new$ cp ../old/config.nice .
new$ ./config.nice
new$ make
new# make install

 オプションを削除したい場合はconfig.niceを編集すればよい。

設定

[ユーザーディレクトリ]

 http://www.example.jp/~user/でアクセスするアレ。 ~込みのURLでいいならばUserDirディレクティブを使えばよいが、~が気に入らない場合はAliasディレクティブを使ったほうがよい。 その方がURLも自由になるし、複数のディレクトリをひとりのユーザーに割り当てることもできる。 Webサイトを運用しないユーザーの分はAliasを書かなければいい。

 なお、UserDirディレクティブのデフォルトは、2.0系では~userというURLを~user/public_htmlにマップするようになっていたが、2.2系になってdisabledとして扱われるようになった。 なので、2.2系で~userの形のURLを使いたい場合は明示的にUserDirを書く必要がある。

[隠したいファイル]

 .htaccessがその筆頭。 多分サンプルにAccessFileNameディレクティブが書いてあると思う。 それに加え、cvsでサイトをアップデートする場合はCVSディレクトリも隠したいので、

<Directory ~ "/CVS/">
    Order allow,deny
    Deny from all
    AllowOverride None
</Directory>

などとしておく。

ファイルのアップロード

 UserDirやAliasで指定したディレクトリに公開するファイルを置く。 ひとつひとつ手作業でFTPやscpしてもいいが、 sambaでフォルダごとコピーしてもいいし、FTPで変更のあったファイルだけを更新するようなクライアントも公開されている。 このあたりはプロバイダのレンタルWebスペースとほとんど同じ。

 HTMLファイルのバージョン管理を行っている場合、エクスポートやチェックアウトを使う、という手もある。 チェックアウトした場合、手元でHTMLファイルを変更したら、それをチェックインしてサーバー側でアップデートすればサイトの更新が終わる。 さらに改行コードの変換まで勝手にやってくれるというおまけ付き。 この場合、CVSならCVSディレクトリを、Subversionなら.subversionディレクトリを<Directory>で見えないようにしておくといい。 バージョン管理システムというと最近はSubversionが主流だが、Subversionは作業ディレクトリにリポジトリのコピーを置こうとするので、この用途にはCVSの方が向いている。


Copyright (C) 2011 You SUZUKI

$Id: httpd.htm,v 1.8 2011/09/23 13:37:15 you Exp $