Apache2の設定

#contentsx



apacheの設定ファイルは/etc/httpd/conf/httpd.confです。
基本的な設定をこの設定ファイルで行います。
また、httpd.conf以外の設定ファイルも読み込むことが可能で、/etc/httpd/conf.d/ディレクトリ配下にファイルを配置します
読み込まれるファイルは、拡張子がconfのものになります。
httpd.confですべての設定を行ってもかまいませんが、機能ごとに設定ファイルを切り出す事で管理しやすくなります。

管理者のメールアドレス設定

#geshi

サーバーの名前とポート番号

#geshi

ドキュメントルートの場所

#geshi

<Directory>ディレクティブの変更

デフォルト設定の場合ドキュメントルートは"/var/www/html"になっていると思うので<Directory "/var/www/html">の下にあるオプション設定を変更する。

#geshi

Indexesの記述があるとフォルダ、ファイルの一覧が表示されてしまう事があるので上のようにIndexesを削除する。-Indexesでも可

ファイル名を指定せずアクセスした時の自動的に読み込むファイルの種類

#geshi

ログに書き込み時にホスト名に変換するかどうかの設定

アクセスの多いサイトでは遅くなるので注意

#geshi

アクセスログへの書き込み設定

ワームやウイルス等のアクセスはログに残しません。また、内部ネットワークからや、画像ファイルなどへのアクセスもログに残さないようにします

#geshi

Apacheのセキュリティ対応

  • バージョン隠蔽 #geshi
  • HTTPトレース機能の無効化 Apache 2.0.55以降のバージョン #geshi

ページ文字化け対策

  • ja を先頭にもってくる #geshi
  • ここも文字化けの対策
    下記行をコメントアウト
    
    #geshi

エラー画面を変更する場合はここを修正

#geshi

plファイルも実行させる設定

#geshi

ユーザーごとにアクセス先を変更させる時の設定

例:プロバイダのように"http://hoge.ne.jp/~user_name"などでアクセスできるようにします
confファイル内の<IfModule mod_userdir.c>部分で

  • まずデフォルト値としてアクセス先を変更させない #geshi
  • 個別に変更させるユーザーを"enabled"に続けて記入
    この設定を行うことでユーザーhogeのみドキュメントの参照位置が変更となる
    #geshi(Apache){{
    UserDir enabled hoge1 hoge2
    
    }}
  • ユーザーごとにアクセス先を変更する時のディレクトリ
    下記設定例なら"/home/user_name/public_html"にhtmlファイルを作成すればよい
    #geshi(Apache){{
    UserDir public_html
    
    }} また"UserDir /web/html"等ディレクトリで指定した場合はディレクトリ"/web/html/"配下にユーザー名と同一のディレクトリを作成し(例ならhoge) その中にhtmlファイルを置けばよい
    403エラーが発生する場合、apacheを実行しているユーザーが、各ユーザーのホームディレクトリにアクセス権限が無い
    各ユーザーのホームディレクトリにアクセスできる権限の設定を行う事。 #geshi

バーチャルホスト設定

ネームベースのバーチャルホストの設定

#geshi

2つのドメインとも同じページの内容でよければ、DocumentRootを同一とすればよい

ユーザ認証設定

Basic認証

一般的に利用されている認証方法ですが、パスワード情報が暗号化されていませんので注意が必要です。
アクセス制限を掛けるディレクトリの<Directory> ~ </Directory>の間に下記を記述する
今回は/var/www/html/memberディレクトリを認証対象とします

#geshi

AuthUserFileでユーザー名とパスワードを記述したファイルを指定する
AuthNameはメッセージボックスに表示するメッセージです
Authtypeで認証方式をBasic認証に指定します
require valid-userはAuthUserFileで指定したパスワードファイルに登録されているユーザーを全て許可します

パスワードファイルの作成の方法は下記コマンドで行います。
パスワードファイルは外部からアクセスできるディレクトリには保存しないこと!

#geshi

2人目以降の作成時は -c オプションを省いてコマンド入力する

#geshi


Digest認証

Basic認証と違い、パスワードが暗号化されます。
最近のブラウザ(IE6、Firefox、opera等)は対応しています。
アクセス制限を掛けるディレクトリの<Directory> ~ </Directory>の間に下記を記述する
今回は/var/www/html/memberディレクトリを認証対象とします

#geshi

AuthUserFileでユーザー名とパスワードを記述したファイルを指定する
AuthNameはレルムと言います。パスワードファイルを作成する時にこれと同じものを指定します
Authtypeで認証方式をDigest認証を指定します。
AuthDigestDomainで認証を必要とするディレクトリを指定します
require valid-userはAuthUserFileで指定したパスワードファイルに登録されているユーザーを全て許可します

パスワードファイルの作成の方法はコマンドで パスワードファイルは外部からアクセスできるディレクトリには保存しないこと!

#geshi

-cオプションは、新規にファイルを作成する時のみ指定します

  • InternetExplorerのバグ対策
    InternetExplorer5,6にはDigest認証のバグがあります Digest認証を利用するディレクトリ内にcgiなどのプログラムがあり、http://hoge.com/xxx.cgi?xxx=xxxのようなURLでアクセスする必要がある場合、 HTTP 400 - 正しくない要求が表示され、ページを正常に表示できません。
    FirefoxやInternetExplorer7では正常に表示できます
    この場合はApache側で対応するには、http.confや.htaccess内に下記の設定を追加するとよいそうです
    BrowserMatch "MSIE" AuthDigestEnableQueryStringHack=On
    
    参考URL→68user's pageさん
最終更新:2010年09月20日 22:41