今年2月にリリースされたDebian GNU/Linux 5.0(lenny)を新サーバにインストールした。
サーバ構築のインストールと設定手順は、私のサイトの「Debian GNU/Linux 4.0(etch)によるサーバ構築」の手順に従った。これは、etch版とlenny版でインストール作業での違いを検証するためでもあった。
etch版とlenny版の違いは、Debianの公式サイトの「Debian--ニュース--debian GNU/Linux 5.0がリリース」を参照して下さい。

サーバのインストールと設定の範囲では、etch版の「このサイトの設定手順」で設定できることが分かりました。下記の事項については、etch版を一部読み替えする必要があります。
    1. ローカルの言語設定が、rootの言語設定に反映される。
    2. Apacheのコンフィグファイルの構成が一部変更されている。

Debianをインストールする時に、「choose language」画面で、ロケールの選択で「ja_JP.UTF-8」を選択した時に、etch版とlenny版で下表の設定になる。

区分 etch版 lenny版
ロケール(一般ユーザ) LANG=ja_JP.UTF-8 LANG=ja_JP.UTF-8
ROOT (rootユーザ) LANG=c (シングル英語) LANG=ja_JP.UTF-8

lenny版では、Root環境でもロケールの言語設定環境が踏襲されるので、日本語訳されたman ページをRoot環境でも表示できる。
反面、サーバに直結したモニター(コンソール画面)では、文字化けすることになる。Debianのコンソール画面は、デフォルトではシングルバイト文字しかサポートしていないので、マルチバイトのUTF-8は、正しく表示できない。
サーバを操作するのは、TeraTermなどのエミュレータを介して操作する場合は、マルチバイト対応なので文字化けは生じない。
コンソール画面を使用する場合は、環境変数を LANG=c に変更する必要がある。

TOPへ

Apache2設定の本質は変わっていませんが、設定ファイルの構成が一部変更されている。
debian:~# ls -l /etc/apache2/ ディレクトリ下の設定ファイル

etch版 lenny版 違い
apache2.conf apache2.conf 主要なapache2設定ファイル
lenny版は設定ファイルの構成のみ設定している
conf.d/charset conf.d/charset etch版:UTF-8をデフォルト設定
lenny版:UTF-8コメントアウトで無効に設定
conf.d/security etch版のapache2.confに記述のセキュリティ部分を別ファイルに
envvars envvars etch版:設定なし
lenny版:Apacheのユーザ・グループ・PID_FILEを設定
httpd.conf httpd.conf いずれも空ファイル
mods-available/ mods-available/ Apache2のインストール済みのモジュールが置かれるディレクトリ
mods-enable/ mods-enable/ 現在有効なApache2のモジュールを置くディレクトリ
通常は、mod-available/ディレクトリにリンクを貼ることで有効にする
ports.conf ports.conf etch版:Listen 80
lenny版:NameVirtualHost *:80 と Liston 80 と
           IfModule mod_ssl.cの Listen 443 を設定
sites-available/ sites-available/ 利用可能なWebサイトの固有設定を置くディレクトリ
lenny版は、サンプルサイトとして、defaultとdefault_sslがある
sites-enable/ sites-enable/ 現在有効なWebサイトの固有設定を置くディレクトリ
通常は、site-available/ディレクトリにリンクを貼ることで有効にする

lenny版のapache2.confファイルは、設定ファイルの構成の記述に限定している。個々の設定は、includeされる個別設定ファイルで設定する方式に変更されている。
etch版のapache2.confは、通常ユーザが設定変更する頻度の高いモジュールの設定も記述されており、apache2.confファイルから設定できた。
慣れると、lenny版の設定ファイル構成の方式が分かり易いのかもしれない。


apache2.conf(lenny版)

apache2.confに記述されている主要な設定内容を下記に記述する。includeされる設定ファイルは、後ろに記述されているファイルの設定事項が優先される。

debian:~# cat -n /etc/apache2/apache2.conf
    (数字は行ナンバー)
    下記3行は、ファイルenvarsで設定されている
         66 PidFile ${APACHE_PID_FILE}
        127 User ${APACHE_RUN_USER}
        128 Group ${APACHE_RUN_GROUP}
    includeされている外部ファイル
        185 Include /etc/apache2/mods-enabled/*.load
        186 Include /etc/apache2/mods-enabled/*.conf
        189 Include /etc/apache2/httpd.conf
        192 Include /etc/apache2/ports.conf
        278 Include /etc/apache2/conf.d/
        281 Include /etc/apache2/sites-enabled/

TOPへ

Apache2の設定は、人によって異なるので、参考になるかどうかわからないが、私流の設定を以下に記述する。セキュリティ重視で、自分が現在使用しない機能は有効にしないことを念頭においている。


apache2.conf(lenny版)

1.Apache2のパッケージをインストールする。

debian:~# aptitude install apache2

2.apache2.confファイルは、デフォルトを使用する。(変更なし)
このファイルは、Apache2の設定ファイルの構成のみを記述しているので、通常変更する必要はない。

3.conf.d/charsetは、UTF-8の記述がコメントアウトされているので、デフォルトで使用する。(結果的にDefaultcharsetは設定されていない)
WebページのMETAタグに指定されたcharsetを使用させるので、Defaultchasetは設定しない。

4.conf.d/securityファイルは、下記部分を変更する。

debian:/etc/apache2# vi conf.d/security
    <Directory />        ←コメントを外し有効にする
        AllowOverride None;        ←コメントを外し有効にする
        Order Deny,Allow;        ←コメントを外し有効にする
        Deny from all;        ←コメントを外し有効にする
    </Directory>        ←コメントを外し有効にする

    ServerTokens Prod        ←FullをProdに変更する (HTTP ヘッダー等の表示が「Apache」になる)
    ServerSignature Off        ←OnをOffに変更する

<Directry />〜</Directory>のコメントを外したことにより、デフォルトでWebサイトの表示ができなくなる。
私の流儀は、個々のサイトの記述は、sites-enable(sites-available)に置く設定ファイルに全て記述するやり方である。複数のサイトを運営する場合、この方法が分かり易いと思っている。

5.envvarsファイルは、デフォルトを使用する。(変更なし)
このファイルで、apacheのユーザ、グループが、www-dataに設定されている。また、PID_FILEは/var/run/apache2.pidを指定している。
あえて変更する必要が無いので、デフォルトで使用する。

6.ports.confファイルは、下記の部分を変更する

debian:/etc/apache2# vi ports.conf
        # NameVirtualHost *:80;        ←コメントアウトし、無効ににする
        # Listen 80;        ←コメントアウトし、無効ににする

私の流儀は、個々のサイトの記述は、sites-enable(sites-available)に置く設定ファイルに全て記述するやり方である。

7.mods-available/negotiation.confファイルの設定

debian:/etc/apache2# vi mods-available/negotiation.conf
        LanguagePriority ja en        ←(9行目) ja en に変更する

8.mods-available/mime.confファイルの設定

debian:/etc/apache2# vi mods-available/mime.conf
        AddHandler cgi-script .cgi        ←(163行目)コメントを外し、有効にする
        # AddType text/html .shtml        ←(188行目)コメントアウトし、無効にする
        # AddOutputFilter INCLUDES .shtml        ←(189行目)コメントアウトし、無効にする

使用しない機能はコメントアウトし、無効にする。

9.mods-available/alias.confファイルの設定

debian:/etc/apache2# vi mods-available/alias.conf
    # Alias /icons/ "/usr/share/apache2/icons/"        ←コメントアウトし、無効にする
    # <Directory "/usr/share/apache2/icons/">        ←コメントアウトし、無効にする
    #   0ptions Indexes MultiViews;        ←コメントアウトし、無効にする
    #   AllowOverride None;        ←コメントアウトし、無効にする
    #   Oder allow,deny;        ←コメントアウトし、無効にする
    #   Allow from all;        ←コメントアウトし、無効にする
    #</Directory>        ←コメントアウトし、無効にする


使用しない機能はコメントアウトし、無効にする。

10.モジュールmime.magicを利用できるように、有効にする。
mime_magicは、ファイルの内容を基にMIMEタイプを決定するモジュールです。

debian:/etc/apache2# a2enmod
---省略---
Which module(s) do you want to enable (wildcards ok)?
mime_magic   ←mime_magic を入力
Enabling module mime_magic.
Run '/etc/init.d/apache2 restart' to activate new configuration!

  (参考)モジュールまたはサイトを有効、無効にするコマンド

区分 モジュール サイト
有効にする(リンクを貼る) a2enmod a2ensite
無効にする(リンクを解除) a2dismod a2dissite


11.テスト用サイトをsites-available/ディレクトリにwww-testファイル名で設定する。
テスト用サイトの設定内容をこのファイルに全て書くようにする。その方が分かり易いと私は思っている。

debian:/etc/apache2# vi sites-available/www-test

 Listen 80
 NameVirtualHost *:80
 <VirtualHost *:80>
    DocumentRoot /var/www/
    <Directory />
       Options None
       AllowOverride None
       Order deny,allow
       Deny from all
    </Directory>

    <Directory "/var/www/">
       Options SymLinksIfOwnerMatch
       AllowOverride None
       Order allow,deny
       allow from all
    </Directory>

    ErrorLog /var/log/apache2/www-test-error.log
    LogLevel warn
    CustomLog /var/log/apache2/www-test-access.log combined
  </VirtualHost>

11.site-available/ディレクトリのwww-testファイルを有効にする。

debian:/etc/apache2# a2ensite

 Your choices are: default default-ssl www-test
 Which site(s) do you want to enable (wildcards ok)?
 www-test   ←www-test と入力
 Enabling site www-test.
 Run '/etc/init.d/apache2 reload' to activate new configuration!

12.sites-enableのdefaultファイルのリンクを解除し、無効にする

debian:/etc/apache2# a2dissite

 Your choices are: default www-test
 Which site(s) do you want to disable (wildcards ok)?
 default   ←default と入力
 Site default disabled.
 Run '/etc/init.d/apache2 reload' to activate new configuration!

<確認>
debian:/etc/apache2# ls -l sites-enabled/
 lrwxrwxrwx 1 root root 27 2009-06-29 10:16 www-test -> ../sites-available/www-test

13.Apache2を有効にする。

debian:~# /etc/init.d/apache2 start

14.ブラウザのURLに、http://サーバのIP/ を入力して表示させる

It works!  が表示される。

Apache2の設定完了!!!