apache2インストール/設定
以前も一度書いていますが、仮想環境構築を通して、随分と理解が深まった気がするので、
まとめておこうとおもいます。
○ apache2 のインストール
インストールは単純に
# aptitude install apache2-mpm-prefork
とするだけで、インストールできちゃいます。
インストール終了後、 webブラウザから"http://${マシンのIPアドレス/" としてアクセスすると、
It works!
ってな、ページが表示されるはずです。
...噂に聞いた「あなたの予想に反して...」ってページは出ませんでした。
くどいからやめたんでしょうかね?
○ apache2 超入門
インストールが終了したら、apache2の設定を行います。
最低限、押さえておく必要がある項目は次の三点です。
- /etc/apache2/apache2.conf
- /etc/apache2/site-available/
- /etc/apache2/mods-available/
"apache2.conf" には、apacheの基本設定を書き込みます。
cgiの許可とか、タイムアウトの時刻なんかをここに設定していきます。
apacheの設定を変更したときには、次のようにapacheのリスタートを行います
# /etc/init.d/apache2 restart
まぁ、この辺はおなじみな感じです。
"site-available" には、サイトの設定ファイルがおかれています。
デフォルトでは、"/etc/apache2/site-available/default"が使われています。
サイトの設定は、次のようにすることで有効にできます。
# a2ensite ${サイトの設定ファイル}
逆に無効にしたい場合には、次のようにします
# a2dissite ${サイトの設定ファイル}
サイトを有効にすると、"/etc/apache2/site-enabled"にファイルがコピーされます。
つまり、"/etc/apache2/site-availavle"には設定ファイルを置き、現在有効になっている
設定に関しては、"/etc/apache2/site-enabled"におかれるってことになります。
"/etc/apache2/mods-available/"には、モジュールの設定ファイルが置かれています。
モジュールってのは、サイトにくっつけて使う設定ファイルみたいなもので、ユーザディレクトリ
の動作の設定なんかが該当します。
これも、サイトの設定と同じように、
# a2enmod ${モジュールファイル}
として、モジュールを有効にし、
# a2dismod ${モジュールファイル}
として、モジュールを無効にします。
モジュールファイルの置き場が、"/etc/apache2/mods-available"となり、有効なモジュールが
"etc/apache2/mods-enabled"になります。
○ apache2 の初期設定
そいでは、早速apacheの設定を行っていきます。
まずは、apache2.conf をいじって、cgiが利用できるようにしておきます。
"/etc/apache2/apache2.conf" を開いて、次の行を編集します
# AddHandler cgi-script .cgi コメントになっている行を...
↓
AddHandler cgi-script .cgi コメントの解除
これで、*.cgiってファイルがcgiとして動くようになります。
*.pl を動かしたければ、「AddHandler cgi-script .cgi .pl」と設定すれば良いです。
ついでに、言語設定もなおしておきます
LanguagePriority en da nl et fr de el it ja ko no pl pt pt-br ltz ca es sv tw
↓
LanguagePriority ja en da nl et fr de el it ko no pl pt pt-br ltz ca es sv tw
...まぁ、日本人ですから
編集が終わったら、
# /etc/init.d/apache2 restart
として、apacheの再起動を行います。
念のため、apacheが正しく再起動したか確認しておきましょう
○ サイトの編集
詳しいことはわかりませんが、昔は"httpd.conf"にサイトの設定を書いていたようです。
(このため、apacheの設定に関してぐぐると、httpd.confに...ってことが書かれている方が多いです)
apache2では、site-availableで管理することによって、複数のサイトを管理できるようになっている
ようです。
そんなわけで、俺サイト設定を書いていくことにします。
# cd /etc/apache2/site-available
# cp default my-site
こんな感じで、デフォルト設定をコピーしてきます。
そして、my-siteを編集します。
(以下、書き換えの内容)
Options Indexes FollowSymLinks MultiViews
↓
Options ExecCGI -FollowSymLinks MultiViews
参考サイト
http://www.itmedia.co.jp/help/tips/linux/l0499.html
MultiViewsについて。
ユーザエージェントに埋め込まれているメタ情報から、適切なページを選び出す仕組み
たとえば、サイトが日本語と英語に対応していた場合、Accept-Languageヘッダ値に「en」が
優先されていれば英語版のファイル、「ja」が優先されていれば日本語版のファイルが送り出される。
AllowOverride None
↓
AllowOverride All
AllとAuthConfigの違い(Allすべての.htaccess機能を有効。AuthConfig、認証に関する機能のみ有効。)
RedirectMatch ^/$ /apache2-default/
↓
# RedirectMatch ^/$ /apache2-default/
リダイレクトマッチをしないようにしておく
ServerSignature On
↓
ServerSignature Off
apacheからよけいな情報を出さない(バージョンがわかると、セキュリティに甘い)
編集が終わったら、現在有効になっているサイト設定を無効にして、今回書いた設定を有効にします
# a2dissite default
# a2ensite my-site
○ userdir モジュールの設定
最後に、ユーザディレクトリの設定をしておきます。
ユーザディレクトリを設定することで、"http://${ホストのIP}/~${ユーザ名}"として
ユーザごとのページが作成できるようになります。
/etc/mods-available/userdir.con がユーザディレクトリモジュールになるので、
emacsなんかで開いて、以下の設定を追加しときます
Options ExecCGI
この設定を追加しておくことで、ユーザごとにcgiの設置が行えるようになります。
書き加えたら、ユーザディレクトリを有効にしておきます。
# a2enmod userdir.conf
ユーザディレクトリモジュールはデフォルトでは無効になっていると思いました。
もし、有効になっていたら
# a2dismod userdir.conf
# a2enmod userdir.conf
とするだけです。
最後に、apacheを再起動して、動作確認してみれば基本設定は終了です。
# /etc/init.d/apache2 restart
これで、ユーザディレクトリが使えるようになったり、cgiが使えるようになりました。
○ 参考サイト
http://golgotha.xrea.jp/archives/2005/12/debian_sarge_ap.html