Apache2のインストール


ホームページを開設するには、httpサーバを準備する必要があります。
筆者のサーバでは、Linux系httpサーバで最も使われているApacheをインストールします。

現在Apacheは1.3系と2.0系がリリースされています。
やはり、ヨッパは新しい物好きなのでApache2.0をインストールすることにしました。

PuTTYでログインし、下記のコマンドを実行します。

#apt-get update
#apt-get install apache2

とりあえず、これだけでhttpサーバ(apache2.2)は起動します。

ブラウザのアドレス入力欄に http://192.168.0.140/ を記述してhttpサーバが起動しているかどうかの確認を行います。

It works!と表示します。

外部からは、ルータのグローバルIPアドレスを指定することで、閲覧可能になっています。
<例>
http://219.122.218.99/
このアドレスは、筆者がこの文章を記述しているときにルータに割り当てられていたグローバルIPアドレスです。

このままだと、不便なのでドメイン名でアクセスできるようにします。
ダイナミックDNSの設定をご覧ください。

Apace2の設定ファイル


Apache2をインストールすると、次のファイルとディレクトリが作成されます。
/etc/apache2/apache2.conf apache2の全体設定用ファイル
/etc/apache2/ports.conf ポート番号
/etc/apache2/mods-available/ モジュールファイルが置かれるディレクトリ
/etc/apache2/mods-enabled/ 使用するモジュールへのリンクファイルが置かれるディレクトリ
/etc/apache2/sites-available/ サイト定義ファイルが置かれるディレクトリ
/etc/apache2/sites-enabled/ 使用するサイト定義ファイルへのリンクファイルが置かれるディレクトリ

Apache1系では、httpd.confだけで設定を行っていました。
それと比較すると大幅変更と言っていいでしょう。

apache2.confの最終行に次の記述があります。

Include /etc/apache2/sites-enabled/[^.#]*

これの意味するところは、/etc/apache2/sites-enabled/の下にあるファイルは全てInculudeすると言う意味です(但し、ファイル名に.と#を含むファイルを除く)。
インストール直後の状態では、/etc/apache2/sites-enabled/の下には/etc/apache2/sites-available/defaultファイルへのシンボリックファイルが置かれています。
つまり、サイト定義ファイルとして/etc/apache2/sites-available/defaultファイルが使われるようになっています。

このことから、サイトの定義を変更するには、defaultファイルを変更すれば良いことが分かります。
インストール時のdefaultファイルの内容を載せておきます。

defaultファイルの記述内容 解 説
<VirtualHost *:80> バーチャルホストの定義開始
ポート80へのアクセスは全てここの設定に従う
ServerAdmin webmaster@localhost エラーが発生したときに、ブラウザに表示されるメールアドレス
DocumentRoot /var/www/ ホームページのドキュメントルートを定義
<Directory /> システム全体の設定開始
 / はドキュメントルートではなく、システムのルートを指す
Options FollowSymLinks サーバがこのディレクトリ内のシンボリックリンクをたどることを許可
AllowOverride None .httpaccessファイルによる各種設定の変更を禁止する
</Directory> システム全体の設定終了
<Directory /var/www/> ドキュメントルートの設定開始
Options Indexes FollowSymLinks MultiViews index.htmlが存在しない場合、ファイル一覧を表示する
サーバがこのディレクトリ内のシンボリックリンクをたどることを許可
MultiViews機能が有効
AllowOverride None .httpaccessファイルによる各種設定の変更を禁止する
Order allow,deny allowをdenyの前に評価する
allow from all 全てのホストからのアクセスを許可する
</Directory> ドキュメントルートの設定終了
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ /cgi-bin/ は /usr/lib/cgi-bin/ のエイリアス
<Directory "/usr/lib/cgi-bin"> /usr/lib/cgi-bin の設定開始
AllowOverride None .httpaccessファイルによる各種設定の変更を禁止
Options ExecCGI -MultiViews +SymLinksIfOwnerMatch CGIを有効にする
MultiViewsを無効にする
セキュリティの強化
Order allow,deny allowをdenyの前に評価する
Allow from all 全てのホストからのアクセスを許可する
</Directory> /usr/lib/cgi-bin の設定終了
ErrorLog /var/log/apache2/error.log error.logファイルの指定
LogLevel warn Logレベルをwarnに設定
CustomLog /var/log/apache2/access.log combined カスタムログを指定
フォーマットは combined(apache2.confで定義) とする
Alias /doc/ "/usr/share/doc/" Alias /doc/ を /usr/share/doc/ の別名にする
<Directory "/usr/share/doc/"> /usr/share/apache2/icons の設定開始
Options Indexes MultiViews FollowSymLinks ndex.htmlが存在しない場合、ファイル一覧を表示する
MultiViews機能が有効
サーバがこのディレクトリ内のシンボリックリンクをたどることを許可
AllowOverride None .httpaccessファイルによる各種設定の変更を禁止
Order deny,allow denyをallowの前に評価する
Deny from all 全てのホストからのアクセスを禁止する
Allow from 127.0.0.0/255.0.0.0 ::1/128  127.0.0.0/255.0.0.0 ::1/128からのアクセスを許可する
</Directory> /usr/share/apache2/icons の設定終了
</VirtualHost> バーチャルホストの定義終了


更新日:2009/11/3