Apacheをインストールする際は、どのようなWebサイトにしたいかを考えておくとよい。このサイトの場合、
・PHP(mod_phpとCLI版)
・mbstring関数
・GD関数(JPEG、GIF、PNGの処理)
・PHPのMySQLサポート
が必要なので、/etc/make.confのUSEに
mysql nls php jpeg gif png gd
という記述を加えてある。もしかしたら不要な指定があるかもしれないが、取りあえずうまくいっているのでよしとする。
/etc/make.confの設定を確認したら、
# emerge apache php mod_php
を実行する(「apache」とするだけでApache 2.0.xがインストールされる)。
» 続きを読む
Gentoo Linuxは/var/www以下をドキュメントルートにしているが、人間が作成するデータは/homeにまとめたいので修正する。こうすれば、バックアップの際に/homeだけを考えればよくなる。
なお、これは好みの問題なのでやらなくてもよい。
/homeに作るドキュメントルートは、昔のRed Hat Linux風に(慣れてるから)。
# mkdir /home/httpd
# mkdir /home/httpd/html
さらに、一応cgi-binとiconsを移動する。
# mv /var/www/localhost/cgi-bin/ /home/httpd/
# mv /var/www/localhost/icons/ /home/httpd/
それ以外のディレクトリや/var/www/localhstの中身はいらないので、まとめて削除。
# cd /var
# rm -rf ./www
このままだと、ドキュメントルートにはrootでしか書き込みできない。パーミッションを緩めてもよいのだが、ここはWeb管理用のグループで管理してみる。
» 続きを読む
Gentoo Linuxの場合、Apache 2.0の設定ファイルはapache2.confとcommonapache2.confの2つに分かれている(普通はhttpd.conf)。まず、/etc/apache2/conf/apache2.confを編集する。
後でまたいろいろいじるが、現段階では2個所だけ。まずはServerName。
#ServerName localhost
のコメントアウトを解除して、「localhost」をサーバ名(ホスト名.ドメイン名)に修正する。このサイトの場合、
ServerName nekhet.ddo.jp
になる。
» 続きを読む
/etc/apache2/conf/commonapache2.confの設定編。
まずは、セキュリティ対策としてServerTokensディレクティブを変更する。ServerTokensディレクティブは、クライアントに返信するサーバ応答ヘッダに含める情報を制御する。デフォルトでは
ServerTokens Full
となっており、Apacheのバージョン、OS、PHPのバージョンなど、サーバの詳しい情報をクライアントに送り返す。例えば、
Server: Apache/2.0.41 (Unix) PHP/4.2.2 MyMod/1.2
こんな感じ。
これでは、クラッカーに対して、クラッキングのための情報を与えているようなものである。
» 続きを読む
Webサイト全体の動作にかかわるApacheの設定。これも/etc/apache2/conf/commonapache2.confで行う。
まずは、Charset(文字コードと考えればよい)の設定。デフォルトは、
AddDefaultCharset ISO-8859-1
になっているため、WebページをISO-8859-1(Latin 1)つまり西欧文で表示しようとする。ウチのサイトはUTF-8で統一しているので、
AddDefaultCharset UTF-8
としている。
#AddDefaultCharset ISO-8859-1
とコメントアウトするか、
AddDefaultCharset Off
としてもよい。ただ、ウチのサイトではAddDefaultCharsetを無効化するとタグでcharsetを指定してもなぜか文字化けすることがあったので、UTF-8を明示することにした。
» 続きを読む
「指定したページが見つからない」(404エラー)など、Webサーバが表示するエラーページをカスタマイズしてオリジナルページにする。これも/etc/apache2/conf/commonapache2.confで行う。
すべての17種類すべてのエラーページを用意するのは大変なので、よく使う(?)4種類のページだけオリジナルにした。commonapache2.confのデフォルト設定は、
# ErrorDocument 401 /error/HTTP_UNAUTHORIZED.html.var
# ErrorDocument 403 /error/HTTP_FORBIDDEN.html.var
# ErrorDocument 404 /error/HTTP_NOT_FOUND.html.var
# ErrorDocument 500 /error/HTTP_INTERNAL_SERVER_ERROR.html.var
になっている。
» 続きを読む
mod_perlと不要なディレクトリを無効化する。
まずは、mod_aliasの設定。
<IfModule mod_alias.c>
から
</IfModule>
の範囲にある不要なエイリアスの削除とディレクトリ修正。
Alias /icons/ /var/www/localhost/icons/
Alias /doc /usr/share/doc
ScriptAlias /cgi-bin/ /var/www/localhost/cgi-bin/
ScriptAlias /protected-cgi-bin/ /var/www/localhost/protected-cgi-bin/$2
のうち、ドキュメントと/protected-cgi-bin/は不要なので、
Alias /icons/ /home/httpd/icons/
# Alias /doc /usr/share/doc
ScriptAlias /cgi-bin/ /home/httpd/cgi-bin/
# ScriptAlias /protected-cgi-bin/ /var/www/localhost/protected-cgi-bin/$2
のようにコメントアウトする。ついでに、ディレクトリを修正。
» 続きを読む
最期に、使用するディレクトリのパスとOptionsを設定する。
まずはドキュメントルート。
<Directory /var/www/localhost/htdocs>
Options -Indexes FollowSymLinks MultiViews
</Directory>
を
<Directory /home/httpd/html>
Options -Indexes Includes FollowSymLinks
</Directory>
に修正。
» 続きを読む
ログ(基本的にはApacheのアクセスログ)の肥大化を防ぐため、logrotateでログをローテーションさせる。
まずは、emergeでインストール。
# emerge logrotate
logrotateの設定は、/etc/logrotate.confで行う。このファイルにすべての設定を記述してもよいのだが、通常は/etc/logrotate.dディレクトリに個別(サービスごとが一般的)に設定ファイルを用意し、/etc/logrotate.confに/etc/logrotate.dをインクルードさせる。/etc/logrotate.confに共通設定、/etc/logrotate.d/以下のファイルで個別設定という形になる。
ちなみに、ローテーションの実行ログは、/var/lib/logrotate.statusに記録される。
» 続きを読む
logrotateをインストールしたら、Apacheのアクセスログとエラーログをローテーションさせる設定を行う。
Apache用の設定は、/etc/logrotate.d/apacheというファイルで行う。基本的には/etc/logrotate.confの内容が適用されるので、/etc/logrotate.d/apacheには/etc/logrotate.confと異なる部分だけ記述すればよい。
» 続きを読む

Reichsarchiv ~世界帝王事典~
京極夏彦作品人名辞典