戻る

Apache / Apache-SSL

[更新履歴]
04/02/16 … (今更だけど)インストール時のサーバ証明書作成について
03/06/10 … SSI の有効化について、LoadModule 関連を追記。

ホントは mod_ssl 使いたかったけど、よくわからんかったので(笑)、ApacheとApache-SSLを併用。あぁ、メモリの無駄遣いなんだろーな。。。
ってか、ここに書いてある程度の Apache のドキュメントくらいなら、Webからいくらでも情報収集できるよな。

ついでに、Debian の Apache は、デフォルトで SuEXEC が有効になるが、適用されるのは mod_userdir が使われる UserDir ディレクティブでマッピングしたディレクトリのみ。DocumentRoot 以下でCGIを使うときは、User と Group で指定されたユーザ(デフォルトで www-data)権限で実行される(ようですな)。

あとは PHP と mod_dav を入れたいところだが、、、PHP 使わねぇだろーな(笑)。WebDAV は。。。まだ動かん(T-T)

ちなみに、パフォーマンス周りはイジってない。アクセスないのでw

インストール

例によって apt-get
# apt-get install apache
# apt-get install apache-ssl
[04/02/16 追記]
apache-ssl インストール時は、証明書の作成を同時に行うため、いくつか設定(つか、入力項目)がある。といっても、個人用のサーバなら適当(いわゆるオレオレ証明書)でいいんだけど(嘘っぽい)
Country Name (2 letter code) [GB]:JP
State or Province Name (full name) [Some-State]:Kanagawa
Locality Name (eg, city) []:Yokohama
Organization Name (eg, company; recommended) []:home
Organizational Unit Name (eg, section) []:Administrator
server name (eg. ssl.domain.tld; required!!!) []:ddns.example.org
Email Address []:webmaster@ddns.example.org

設定

とりあえず、いろいろ変更するまえに例によってバックアップ。
# cd /etc/apache
# cp httpd.conf httpd.conf.default
# cd /etc/apache-ssl
# cp httpd.conf httpd.conf.default
修正が終わったときは、その時の日付か何かで修正後の設定ファイルも例によってバックアップ。
# cp httpd.conf httpd.conf.`date +%Y%m%d`

管理者のメールアドレスがwebmaster@[ホスト名].[ドメイン]になってるのをホスト名が不必要(DDNSのため)なので修正。
ServerAdmin webmaster@hostname.ddns.example.org
↓
ServerAdmin webmaster@ddns.example.org

デフォルトだと Apache と Apache-SSL のルートドキュメントが同じなので変更する。
[Apache]
DocumentRoot /var/www
 ↓
DocumentRoot /var/www/public

[Apache-SSL]
DocumentRoot /var/www
 ↓
DocumentRoot /var/www/ssl
同時にマッピングの設定も修正。
[Apache]
<Directory /var/www/>
↓
<Directory /var/www/public/>

[Apache-SSL]
<Directory /var/www/>
↓
<Directory /var/www/ssl/>
ついでに、Optionsで必要な設定も追加・削除しておく(インデックスファイルがないときのファイルリスト非表示 → Indexesを削除 / CGIの実行可能設定 → ExecCGIを追加)。
まぁ、ファイルリストは場合によっては便利だが。
Options Indexes Includes FollowSymLinks MultiViews
↓
Options Includes FollowSymLinks MultiViews ExecCGI
上とあわせて、CGIを使用するなら以下の設定を追加(コメント解除)。
#AddHandler cgi-script .cgi .sh .pl
↓
AddHandler cgi-script .cgi .sh .pl
ついでにSSIも使うなら(.shtmlで)、以下を変更。
#AddType text/html .shtml
#AddHandler server-parsed .shtml
↓
AddType text/html .shtml
AddHandler server-parsed .shtml
06/10 追記
SSI の有効は、上記だけでは足りんかった。…半年も気づかなかったゼ(^_^;
ってわけで、上記 AddHandler に加え、以下の部分(デフォで 212行目付近)も変更
# LoadModule includes_module /usr/lib/apache/1.3/mod_include.so
↓
LoadModule includes_module /usr/lib/apache/1.3/mod_include.so
モジュールをロードしてないんじゃ動くはずねぇし!

デフォルトだとブラウザ側のCharcter-setがISO-8859-1になって文字コードを指定しないと文字化けしてしまうのでDefaultCharsetをoffにする。
AddDefaultCharset on
↓
AddDefaultCharset off

Nimda, Code Red のアクセスログがウザいので、別ファイルに保存する設定。
現在、Listen するポートを変更してるのでアタックは全くなし
SetEnvIf Request_URI "default\.ida" worm
SetEnvIf Request_URI "cmd\.exe" worm
SetEnvIf Request_URI "root\.exe" worm
SetEnvIf Request_URI "Admin\.dll" worm

CustomLog /var/log/apache/access.log common env=!worm
CustomLog /var/log/apache/detail.log combined env=!worm
CustomLog /var/log/apache/worm.log combined env=worm
参考 [ZDNet デベロッパー]

修正が済んだら、Apacheのリブート。
# cd /etc/init.d
# ./apache restart
エラーが出なければオッケィ