今年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 に変更する必要がある。
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/
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の設定完了!!!