WhiteBOX設定編/(2)Apache のバックアップ(No.1)
- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- ソース を表示
- WhiteBOX設定編/(2)Apache へ行く。
- 1 (2008-06-30 (月) 15:32:55)
- 2 (2008-06-30 (月) 15:32:55)
Apacheの設定 †
- WhiteBOXでインストールされるWebサーバは、標準でApache ver.2 です。現在のパッケージ名は、「httpd-2.0.46-44.ent.WB1」とあります。
Apcheの起動設定 †
- ただし、デフォルトで起動はしていません。以下の設定が必要です。ブラウザでサーバにアクセスすると 「White Box Enterprise Linux Test Page」 が表示されます。
●Apacheの起動 # /etc/rc.d/init.d/httpd start ●Apacheの自動起動の設定 # chkconfig httpd on
Apche2の文字化け対策 †
- Apache2 の大きな問題として、日本語の文字化けがあります。クラリNETで使っている文字コードは、コンテンツも掲示板もすべてEUC-JPというUnix標準コードで統一しています。 ところが、Apache2以降、Unicode(UTF-8)をデフォルトに採用しました。大きなお世話ですが、ブラウザに対して「Unicodeだぞ!」と指示するため、ブラウザは言われたとおりに Unicodeとして扱います。当然のごとく、文字化けしてしまいます。
- これを解決するために、以下の変更を行います。
●設定ファイルを開き # vi /etc/httpd/conf/httpd.conf ●以下の項目のパラメータを変更 AddDefaultCharset UTF-8 ↓ AddDefaultCharset Off
- その他の一般的な設定としては、サーバ名等を合わせておきます。動作にはあまり関係ないですが。。
ServerAdmin kurari@xbb.jp ServerName kurarinet.com
- ホームページのコンテンツは、以下のディレクトリに作成します。
/var/www/html
CGIの動作設定 †
- Apaceh2はデフォルトで、CGI実行用のディレクトリが以下のように指定されています。
ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
/var/www/cgi-bin 配下にcgiスクリプトがおかれ、基本設定に問題がなければ、プログラムが実行されます。
アクセス制限 †
- 次項のCGIの設定とも関連しますが、掲示板の読み書きはメンバーだけに限定するため、パスワード認証によるアクセス制限を行います。
- まず、アクセス制限の対象となるディレクトリ cgi-bin/ について、httpd.conf の設定を変更します。
# vi /etc/httpd/conf/httpd.conf
【変更前】 # <Directory "/var/www/cgi-bin"> AllowOverride None Options None Order allow,deny Allow from all </Directory> #
↓
【変更後】 .htaccessファイルを有効にするための指定 # <Directory "/var/www/cgi-bin"> AllowOverride All :None → All に書換え Options ALL :None → All に書換え Order allow,deny Allow from all </Directory> #
- 続いて、対象となるディレクトリに、次の2つのファイルを作成します。
- .htaccess
- アクセス制限をするディレクトリにおく設定ファイル
- .htpasswd
- 認証ユーザのパスワードファイル(ファイル名は任意)
- .htaccess ファイルの作成
- パスワード認証を行うディレクトリに、次のような内容のファイルを作成します。その配下のサブディレクトリもすべて認証対象となります。
AuthName Kurari-net_BBS .. パスワード入力画面の表示名 AuthType Basic .. 認証タイプ AuthUserFile /var/www/.htpasswd .. パスワードファイル名(フルパスで指定) AuthGroupFile /dev/null (グループ認証の場合に使用する) <Limit GET POST> require valid-user taro hanako .. ユーザIDを指定、スペースで区切る </Limit>
- ファイル名の頭の「.」は隠しファイルの印です。このファイルを作成後、パーミッションは 644 にします。
# chmod 644 .htaccess
- パスワード認証を行うディレクトリに、次のような内容のファイルを作成します。その配下のサブディレクトリもすべて認証対象となります。
- .htpasswd ファイルの作成手順は以下のとおりです。
- パスワードファイルを置くディレクトリ(.htaccess で指定したパス)に移動
# cd /var/www/
- htpasswdコマンドを実行して、パスワードファイル(.htaccess で指定したファイル名)にユーザ名とパスワードを登録する。
# htpasswd [-c] .htpasswd taro Adding password for taro. New password: (パスワードを入力) Re-type new password:(再度、パスワードを入力)
オプションの -c は、最初に .htpasswd ファイルを作成する時だけつけます。2人目以降を登録するときは使いません。さもないと、上書きモードで前の登録が消されてしまいます。# htpasswd .htpasswd hanako Adding password for hanako. New password: (パスワードを入力) Re-type new password:(再度、パスワードを入力)
- 先ほどと同じように、パーミッションを 644 にします。
- パスワードファイルを置くディレクトリ(.htaccess で指定したパス)に移動
- パスワードファイルは、以下のようなものです。テキストですが、パスワードは暗号化保存されます。
taro:er3M/DnIuyr7Y hanako:YJI2ioSJbNraw
- パスワードファイル(.htpasswd)自体はどこに置いてもかまいません。同じユーザ認証なら、複数のディレクトリでも共通に使いまわしが可能です。さらに、.htaccess もディレクトリ毎に作成しなくても、1個作っておいてシンボリックリンクを作成すれば、設定は簡単に済みます。
# ln -s /var/www/cgi-bin/.htaccess .htaccess
(2005/2/22記、 2006/12/17 アクセス制限に関して一部追記)