#author("2021-10-13T03:30:39+09:00","default:ham","ham")
#amazon(4774142239)

#contents
#adsense(728x90)
#br


* リンク [#p2013852]

- The Apache HTTP Server Project
-- http://httpd.apache.org/
- ディレクティブ クイックリファレンス - Apache HTTP サーバ
-- http://httpd.apache.org/docs/2.2/ja/mod/quickreference.html
- JAPAN APACHE USERS GROUP
-- http://www.apache.jp/



* インストール [#fe867dd0]

Apache 2.0.54 + OpenSSL 0.9.8の場合
 % patch -p1 < ../httpd-2.0.54-openssl-0.9.8.patch

 % ./configure                          \
         --prefix=/usr/local/apache2    \
         --sysconfdir=/etc/httpd        \
         --enable-ssl                   \
         --enable-dav                   \
         --enable-so                    \
         --disable-userdir              \
         --with-ssl=/usr/local/openssl
 % make
 # make install

|オプション|説明|h
|--prefix=<dir>|インストールパス|
|--sysconfdir=<dir>|設定ファイルパス|
|--enable-ssl|SSL対応|
|--enable-dav|WebDAV対応|
|--enable-so|DSO(Dynamic Shared Object)対応|
|--disable-userdir|UserDir非対応|
|--with-ssl=<dir>|OpenSSLインストールパス|

* 設定 [#f42d08fc]

** 共通設定 [#ic8f3efb]
*** Listen ['''ip-addr''':]'''port''' [#c168a6fc]
- Listenするポートを設定する
- 2.0からは必須

- 複数のポートを利用する
#pre(soft){{
Listen 80
Listen 8080
}}

- 特定のI/Fに限定する
#pre(soft){{
Listen 192.168.0.1:80
}}
*** User, Group [#fd9e5737]
- 子プロセスのユーザー、グループを設定する
#pre(soft){{
User www
Group
}}
*** ServerName HOST:PORT [#rda6d475]
- ホスト名の設定
- リダイレクトする場合に利用される
#pre(soft){{
ServerName www.yamikuro.com
}}
*** UseCanonicalName On|Off|Dns [#b1e91e91]

*** DocumentRoot PATH [#g119337b]

*** HostnameLookups On|Off [#e3086ad5]

*** TimeOut [#k6e20d30]

- 各リクエストのタイムアウト時間
#pre(soft){{
TimeOut '''time'''
}}
-- '''time'''
--- デフォルト 300 秒


*** KeepAliveTimeout [#he0593f0]

- HTTP 1.1 の持続的接続のタイムアウト時間
#pre(soft){{
KeepAliveTimeout '''time'''
}}
-- '''time'''
--- デフォルト 15 秒
--- 長すぎると無駄にリソースを消費する

*** MaxKeepAliveRequests [#t60eb68b]

- HTTP 1.1 の持続的接続で 1 セッションで受け付けるリクエスト数
#pre(soft){{
MaxKeepAliveRequests '''num'''
}}
-- '''num'''
--- デフォルト 100
--- 多すぎると他のリクエストが割り込む余地がなくなる
** 対象の指定 [#m97795e3]

*** <Directory '''path'''> [#d7882739]

- ディレクトリに対する設定を行う
#pre(soft){{
<Directory '''path'''>
        設定
</Directory>
}}
- ディレクトリの指定には、ワイルドカード/正規表現が利用可能
#pre(soft){{
<Directory /var/www/*>
<Directory ~ "^/var/www/.*">
}}
*** <Files '''path/file'''> [#p9276b24]

- ファイルに対する設定を行う
#pre(soft){{
<Files '''path/file'''>
        設定
</Files>
}}
- ファイルの指定には、ワイルドカード/正規表現が利用可能
*** <Location '''path'''> [#tabb1395]

- URL のリソースに対する設定を行う
- &#x68;ttp://www.yamikuro.com/foobar なら下記のようになる
#pre(soft){{
<Location '''path'''>
        設定
</Location>
}}
- リソースの指定には、ワイルドカード/正規表現が利用可能
** 設定 [#ob46c83a]

*** Options [#bf65f969]

- Directoryの配下に記述

|値|説明|h
|All|MultiViews以外を全て許可する(デフォルト)|
|ExecCGI|CGIスクリプトの実行を許可する|
|FollowSymLinks|シンボリックリンクを辿れる様にする|
|Includes|SSIを許可する|
|Indexes|DirectoryIndexで指定したファイルがない場合に、ファイルインデックスを出力する|
*** AllowOverride [#tafc9147]

|値|説明|h
|All|.htaccessを許可する(デフォルト)|
|AuthConfig|認証に関する設定のみ許可する|
|None|.htaccessを許可しない|

*** Order [#s5273364]

|値|説明|h
|Deny,Allow|Deny→Allowの順に評価する(デフォルトで許可)|
|Allow,Deny|Allow→Denyの順に評価する(デフォルトで拒否)|

特定のアクセスを拒否する
#pre(soft){{
<Directory '''path'''>
        Order Deny,Allow
        Allow from 192.168.0.101
</Directory>
}}

特定のアクセスを許可する
#pre(soft){{
<Directory '''path'''>
        Order Allow,Deny
        Allow from 192.168.0.0/24
</Directory>
}}
** VirtualHostの設定 [#o53019c3]


*** NameVirtualHost [#o8a4a8c3]

*** <VirtualHost > [#u729287f]



** SSLの設定 [#k343f0e4]

*** 秘密鍵(RSA PRIVATE KEY)を作成 [#a7bb6ec5]

- server.key を作る
#pre(soft){{
# cd /etc/httpd/ssl.key
# openssl genrsa -des3 -out server.key 1024
Generating RSA private key, 1024 bit long modulus
..............++++++
.......................++++++
e is 65537 (0x10001)
Enter pass phrase for server.key: '''passwd'''&ref(images/enter.png,around,nolink);
Verifying - Enter pass phrase for server.key: '''passwd'''&ref(images/enter.png,around,nolink);
}}
*** 秘密鍵の暗号化を解除 [#b84b2e00]

#pre(soft){{
# openssl rsa -in server.key -out server.key
Enter pass phrase for server.key: '''passwd'''&ref(images/enter.png,around,nolink);
writing RSA key
}}

*** CSR(CERTIFICATE REQUEST)を作成 [#i621b30c]

- server.csr を作る
#pre(soft){{
# openssl req -new -days 365 -key server.key -out server.csr
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:JP
State or Province Name (full name) [Some-State]:Tokyo
Locality Name (eg, city) []:Suginami
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Number Nine Dream
Organizational Unit Name (eg, section) []:
Common Name (eg, YOUR name) []:www.6996.jp
Email Address []:number9<atmark>dream.plala.or.jp

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
}}
*** 自己証明書(CERTIFICATE)を作成 [#ca3d2784]

#pre(soft){{
# openssl x509 -req  -days 365 -in server.csr -out ../ssl.crt/server.crt \
-signkey server.key&ref(images/enter.png,around,nolink);
Signature ok
subject=/C=JP/ST=Tokyo/L=Suginami/O=Number Nine Dream/CN=www.6996.jp/emailAddres
s=number9<atmark>dream.plala.or.jp
Getting Private key
}}

** ログ [#u9b82847]

*** LogFormat [#x11864c7]

- ログ フォーマットの定義
#pre(soft){{
LogFormat '''format''' ['''name''']
}}

|フォーマット|意味|説明|h
|%h|host|リモート ホスト|
|%l|||
|%v|virtualhost|リクエストを受けた ServerName|
|%u|user|ユーザ名|
|%t|time|リクエストを受けた時刻|
|%T|time|リクエストを返すのにかかった処理時間 (sec)|
|%D||リクエストを返すのにかかった処理時間 (micro sec)|
|%r|request|リクエストの最初の行|
|%s|status|レスポンス コード (リダイレクトされた場合は、リダイレクト前)|
|%>s|status|レスポンス コード (リダイレクトされた場合は、リダイレクト後)|
|%b|byte|レスポンスのサイズ (byte)|
|%{'''header'''}i||ヘッダーの内容 (Referer、User-Agent など)|

*** TransferLog [#w77dffaf]

- ログ ファイル名の指定
#pre(soft){{
TransferLog '''file'''
}}
-- 書式は直接指定でない
-- 直前の名前を指定されていない LogFormat に従う

*** CustomLog [#xa20850e]

- ログ ファイル名の指定
#pre(soft){{
CustomLog '''file name'''
}}
-- LogFormat の名前で書式を指定する

- ログ ファイル名の指定
#pre(soft){{
CustomLog '''file format'''
}}
-- 書式を直接指定する

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS