- 追加された行はこの色です。
- 削除された行はこの色です。
#author("2020-04-12T03:37:01+00:00","default:wikiadmin","wikiadmin")
-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 /jenkins ajp://サーバーのIP:8009/コンテキスト名/
# 302の時に必要。
ProxyPassReverse /jenkins 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>
*トラブルシューティング [#cece2dc1]
**403が出る時 [#ybea6334]
拡張子制限などの時
[Sun Apr 12 12:35:34.194759 2020] [access_compat:error] [pid 14267] [client 162.158.118.47:41326] AH01797: client denied by server configuration: /var/www/vhosts/blog/wp-config.php
#counter