-Apacheのhttpd.confを中心とした設定関連ページ

#contents

*設定ファイル [#k6b92b69]

**各ファイル [#te3cd18b]

|httpd.conf|設定の中心となるファイル。小さいサイトであればこのファイルだけに完結させた方が楽|
|magic|拡張子以外によるMIMEタイプの設定をするファイル|



*Apacheモジュール [#p01c6594]

**mod_rewrite [#h6182b04]

サーバー移転などのURLリダイレクトや動的ページをHTMLに見せるなどの用途で使われる。

-まずは簡単なサンプル。from/ディレクトリ以下に来たアクセスをto/ディレクトリの同じファイルにリダイレクトする。R=301は移転先のURLをアドレスバーに表示させるためのもの。移転先を隠したい場合は除去する。

 RewriteEngine on
 RewriteRule ^from/(.+)$ to/$1 [R=301,L]


-多少複雑なもの

 RewriteEngine on
 RewriteCond %{REQUEST_FILENAME} !-f
 RewriteCond %{REQUEST_FILENAME} !-d
 RewriteRule book([0-9a-zA-Z_\-]+).html$ http://sample.com /test/index.php?bookid=$1 [L]

***参考サイト [#d1c4dca7]

http://blog.dawgsdk.org/weblog/archives/411011

*Tomcatとの連携 [#zf5fb12c]

-TomcatとAJPプロトコルで連携(Apache2.2から)

 #By TF
 LoadModule proxy_module modules/mod_proxy.so
 LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
 <Location /任意の名前/>
   ProxyPass ajp://サーバーのIP:8009/コンテキスト名/
 </Location>


*認証 [#b74d01d9]

**.htaccessを使う場合のパフォーマンス上の留意点 [#a92e2aa8]

AllowOverride AuthConfigとすると毎回.htaccessファイルを探しにいくので利用しない場合はNoneにしておく

**BASIC認証 [#cd35f758]

-.htaccessを利用しないで<Directory>に記述するやり方

 <Directory "制限したいディレクトリ">
       AuthUserFile conf/.htpasswd
       AuthName "hogehoge"
       AuthType Basic
       require valid-user
 </Directory>


-各ディレクトリに.htaccessによる認証を許す設定

 <Direcotry>
    AllowOverride AuthConfig
 </Directory>

-.htaccess(相対パス指定も可能)

 AuthUserFile conf/.htpasswd
 AuthGroupFile /dev/null
 AuthName "Please enter your ID and password"
 AuthType Basic
 require valid-user

-.htpasswdの作成

/usr/local/apache2/bin/htpasswd  -c .htpasswd USER


**Digest認証 [#kfe233ce]

http://www.atmarkit.co.jp/flinux/rensai/linuxtips/699apachedigest.html

このページのとおりにやったら一部情報が古くてはまった。

 Invalid command 'AuthDigestFile', perhaps misspelled or defined by a module not included in the server configuration

AuthDigestFileというのはBASIC認証と同じAuthUserFileに統一されたようだ。

***httpd.confへの設定 [#u79aad3b]

 <Directory "/var/www/html/">
    AuthType Digest
    AuthName "Secret Zone"
    AuthDigestDomain /personal/
    AuthUserFile /etc/httpd/conf/.htdigest
    Require user secret
 </Directory>


AuthNameは単なるダイアログ表示だけの存在ではなく、次のユーザ作成の時に一致させる必要があるので注意。

***パスワードファイルの作成 [#m9a4480b]

-secretユーザでSecretZoneに対して作成

 htdigest -c /etc/httpd/conf/.htdigest 'Secret Zone' secret

-既存のファイルに追加する場合は-cをはずすこと

**各設定の優先順位 [#yefa1baf]

-Directory(.htaccess),File,Locationの順で後ろによって上書きされる。

http://hegel.aichi-u.ac.jp/manual/sections.html

**特定のネットワークからは認証させない [#fa011e63]

公式サイトより引用

-例えば、同じネットワーク上にいる人にはウェブサイトのある部分について 無制限のアクセスを許したいけれど、外のネットワークの人には パスワードを提供させるようにするためには、次のような設定をすることが できます:

 Require valid-user
 Allow from 192.168.1
 Satisfy Any 

 <Directory "/vaw/www/html/staffonly">
     Order allow,deny
     Allow from all
     Deny from 192.168.1.0/24
 
     AuthType Basic
     AuthName "INPUT YOUR ID AND PASSWORD"
     AuthUserFile "conf/.htpasswd"
     Require valid-user
     Satisfy any
 </Directory>



#counter

トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS