WhiteBOX設定編/(2)Apache

Last-modified: 2008-06-30 (月) 15:32:55 (5799d)

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 ファイルの作成
    1. パスワード認証を行うディレクトリに、次のような内容のファイルを作成します。その配下のサブディレクトリもすべて認証対象となります。
      AuthName        Kurari-net_BBS    .. パスワード入力画面の表示名
      AuthType        Basic         .. 認証タイプ
      AuthUserFile    /var/www/.htpasswd  .. パスワードファイル名(フルパスで指定)
      AuthGroupFile   /dev/null         (グループ認証の場合に使用する)
      
      <Limit GET POST>
      require valid-user taro hanako      .. ユーザIDを指定、スペースで区切る
      </Limit>
    2. ファイル名の頭の「.」は隠しファイルの印です。このファイルを作成後、パーミッションは 644 にします。
      # chmod 644 .htaccess
  • .htpasswd ファイルの作成手順は以下のとおりです。
    1. パスワードファイルを置くディレクトリ(.htaccess で指定したパス)に移動
      # cd /var/www/
    2. 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:(再度、パスワードを入力)
    3. 先ほどと同じように、パーミッションを 644 にします。
  • パスワードファイルは、以下のようなものです。テキストですが、パスワードは暗号化保存されます。
    taro:er3M/DnIuyr7Y
    hanako:YJI2ioSJbNraw
  • パスワードファイル(.htpasswd)自体はどこに置いてもかまいません。同じユーザ認証なら、複数のディレクトリでも共通に使いまわしが可能です。さらに、.htaccess もディレクトリ毎に作成しなくても、1個作っておいてシンボリックリンクを作成すれば、設定は簡単に済みます。
    # ln -s /var/www/cgi-bin/.htaccess .htaccess 
  • 以上の設定が完了しますと、アクセス時に認証画面がポップします。
    auth

 (2005/2/22記、 2006/12/17 アクセス制限に関して一部追記)


トップ   差分 バックアップ リロード   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS   リンク元