このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン 最新のリビジョン 両方とも次のリビジョン | ||
apache:2.4:httpd.conf [2019/10/09 22:27] y2sunlight [Main server configuretion] |
apache:2.4:httpd.conf [2020/11/20 09:35] y2sunlight [概要] |
||
---|---|---|---|
行 1: | 行 1: | ||
- | > **本編は投稿中です。しばらくお待ち下さい。** | ||
- | |||
- | ---- | ||
- | |||
====== Apache2.4 httpd.confの編集 ====== | ====== Apache2.4 httpd.confの編集 ====== | ||
+ | Version 2.4.41 | ||
+ | |||
--- // | --- // | ||
行 9: | 行 7: | ||
関連記事 | 関連記事 | ||
- | | + | * [[apache: |
- | | + | * Apache2.4 httpd.confの編集 |
- | * apache2.4 httpd.confの編集 | + | |
- | * [[apache: | + | Appendix |
+ | * [[apache: | ||
+ | * [[apache: | ||
---- | ---- | ||
- | 以下では、httpd.conf について説明しますが、その内容は本編の目的である「テスト用のローカルWebサーバの構築」です。従って、設定内容自体は公開用のWebサーバには当てはまりませんが、Apacheの設定方法に関してはある程度の参考になると思います。 | + | ===== 概要 ===== |
+ | |||
+ | 以下では、httpd.conf について説明します。XAMPPのhttpd.conf は以下に配置されています。 | ||
+ | |||
+ | < | ||
+ | {XAMPP Install folder}\apache\conf\*httpd.conf | ||
+ | </ | ||
+ | |||
+ | 本章の内容は本編の目的である「テスト用のローカルWebサーバの構築」です。従って、設定内容自体は公開用のWebサーバには当てはまりませんが、Apacheの設定方法に関してはある程度の参考になると思います。 | ||
- | XAMPP7.2でインストールした直後の httpd.conf は全体(インクルードファイルも含めて)で 約 1, | + | XAMPP7.2でインストールした直後の httpd.conf はファイル全体で(インクルードファイルも含めて) 約 1, |
|(Section 1)Global Enviroment | Webサーバ全体の動作環境に関する設定 | | |(Section 1)Global Enviroment | Webサーバ全体の動作環境に関する設定 | | ||
行 26: | 行 34: | ||
このセクション分けは便宜的なもので、設定上の特別な意味は持ちません。上で使われている「メインサーバ」と言う用語は、バーチャルホスティングによって扱われる仮想サーバに対して本来のWebサーバの事を指す言葉として使われています。仮想サーバの設置は Supplemental configuretion で行われています。 | このセクション分けは便宜的なもので、設定上の特別な意味は持ちません。上で使われている「メインサーバ」と言う用語は、バーチャルホスティングによって扱われる仮想サーバに対して本来のWebサーバの事を指す言葉として使われています。仮想サーバの設置は Supplemental configuretion で行われています。 | ||
- | 以下では、本編の目的である「テスト用のローカルWebサーバの構築」を行うための設定内容を、httpd.conf で出現するディレクティブの順に挙げます。尚、ここでは、インストール後に変更したもの及び説明のために特に重要と思われる主要な設定内容のみを挙げています。 | + | 以下では、主要な設定内容のみを、httpd.conf で出現するディレクティブの順に挙げます。 |
+ | |||
+ | \\ | ||
===== Global Enviroment ===== | ===== Global Enviroment ===== | ||
行 71: | 行 81: | ||
LoadModule ディレクティブはモジュールを追加してサーバの機能を拡張します。初期にロードされているモジュールの一覧は前章の「[[apache: | LoadModule ディレクティブはモジュールを追加してサーバの機能を拡張します。初期にロードされているモジュールの一覧は前章の「[[apache: | ||
+ | |||
+ | \\ | ||
===== Main server configuretion ===== | ===== Main server configuretion ===== | ||
行 95: | 行 107: | ||
== デフォルトのアクセス制御 == | == デフォルトのアクセス制御 == | ||
- | < | + | < |
- | < | + | < |
AllowOverride none | AllowOverride none | ||
Require all denied | Require all denied | ||
行 115: | 行 127: | ||
</ | </ | ||
- | DocumentRootディレクティブには、ドキュメントルートを設定します。Apacheは指定されたURLパスがAlias またはScriptAlias ディレクティブにマッチしない場合には、ここで設定した物理パスに、リクエストされたURLパスを付加して物理パスを生成します。**DocumentRoot | + | DocumentRootディレクティブには、ドキュメントルートを設定します。Apacheは指定されたURLパスがAlias またはScriptAlias ディレクティブにマッチしない場合には、ここで設定した物理パスに、リクエストされたURLパスを付加して物理パスを生成します。__DocumentRoot |
== ドキュメントルートのアクセス制御 == | == ドキュメントルートのアクセス制御 == | ||
- | FIXME | ||
- | < | + | < |
< | < | ||
Options Indexes FollowSymLinks Includes ExecCGI | Options Indexes FollowSymLinks Includes ExecCGI | ||
行 128: | 行 139: | ||
</ | </ | ||
+ | ドキュメントルート下のアクセス制御を以下のように設定してます。 | ||
- | TODO: | + | | Options Indexes | ディレクトリ中のファイルリストをクライアントに返す | |
+ | | Options FollowSymLinks | ディレクトリ中のシンボリックリンクを有効 | | ||
+ | | Options Includes | SSI を有効にします | | ||
+ | | Options ExecCGI| CGI スクリプトの実行を許可 | | ||
+ | | AllowOverride none | アクセス制御ファイル(.htaccess)によるアクセス制御を全て許可 | | ||
+ | | Require all denied | すべてのアクセスを許可 | | ||
== インデックスファイル == | == インデックスファイル == | ||
- | <code> | + | < |
- | DirectoryIndex index.html index.html.var index.cgi index.php | + | |
- | </ | + | |
- | + | ||
- | TODO: | + | |
- | <code> | + | |
< | < | ||
DirectoryIndex index.php index.pl index.cgi index.asp index.shtml index.html index.htm \ | DirectoryIndex index.php index.pl index.cgi index.asp index.shtml index.html index.htm \ | ||
行 146: | 行 157: | ||
</ | </ | ||
- | DirectoryIndex | + | IfModule |
- | 尚、index.html.varは、Apacheがコンテントネゴシエーションを提供するための.varファイルです。コンテントネゴシエーションとは、ブラウザにより提供されたメディアタイプ、 言語、文字セットなどのネゴシエーション情報に基づいて、最適なリソースをWebサーバが選択ための機能です。 | + | DirectoryIndex ディレクティブでは、クライアントが「/」 で終わるURLパスを要求(ディレクトリインデックス要求)した 場合に探すファイル名を設定します。複数のファイル名をスペースで区切って指定する事ができます。複数指定されている場合は、前に記述したものが優先されます。ここで指定したファイルが見つからず、Option Indexes が設定されている場合、Apacheはディレクトリリストを生成します。XAMPPでインストールしたApacheには上のようにWebプログラムでよく見かける多くの拡張子が追加されています。 |
- | 特別なファイルの保護 | + | == 特別なファイルの保護 |
- | <code> | + | < |
- | AccessFileName | + | |
- | <Files ~ " | + | |
- | Order allow, | + | |
- | Deny from all | + | |
- | </ | + | |
- | </ | + | |
- | + | ||
- | + | ||
- | TODO: | + | |
- | <code> | + | |
<Files " | <Files " | ||
Require all denied | Require all denied | ||
行 167: | 行 168: | ||
</ | </ | ||
- | AccessFileNameディレクティブは、アクセス制御ファイルの名前を設定します。このファイル名は既定では.htaccessです。このようにApacheでは.htで始まるファイルを特別視するのが習慣のようです。このような特別なファイルを保護するためには、< | + | アクセス制御ファイルの名前は、既定では.htaccessです( AccessFileNameディレクティブによって変更できます )。このようにApacheでは |
- | この設定はインストール時のもので変更していません。 | + | |
== エラーログ == | == エラーログ == | ||
行 176: | 行 176: | ||
</ | </ | ||
- | ErrorLogでエラーログファイル名を、LogLevelでエラーログのレベル(重要度)を指定します。Perlなどのテストではエラーログファイルを見る機会も多いと思います。この設定はインストール時のもので変更していません。 | + | ErrorLogでエラーログファイル名を、LogLevelでエラーログのレベル(重要度)を指定します。 |
== アクセスログ == | == アクセスログ == | ||
< | < | ||
LogFormat "%h %l %u %t \" | LogFormat "%h %l %u %t \" | ||
+ | LogFormat "%h %l %u %t \" | ||
LogFormat "%h %l %u %t \" | LogFormat "%h %l %u %t \" | ||
- | LogFormat | + | CustomLog |
- | LogFormat " | + | |
- | + | ||
- | CustomLog | + | |
</ | </ | ||
- | CustomLog ディレクティブはクライアントのHTTPリクエストのログ収集を指定します。この設定はインストール時のもので変更していません。この設定で、実際に有効なのは以下の部分です。 | + | CustomLog ディレクティブはクライアントのHTTPリクエストのログ収集を指定します。上の設定では、CustomLog |
- | | LogFormat "%h %l %u %t \" | ||
- | | CustomLog logs/ | ||
- | |||
- | common以外の形式(combined/ | ||
- | |||
- | == CGIディレクトリ == | ||
< | < | ||
- | # ScriptAlias / | + | # ログ形式を指定し、形式に名前(combined)を付けます |
+ | LogFormat | ||
- | # < | + | # 指定のログ形式(combined)でログファイル(logs/ |
- | # | + | CustomLog |
- | # | + | |
- | # Order allow, | + | |
- | # Allow from all | + | |
- | # </ | + | |
</ | </ | ||
- | AddHandlerディレクティブはファイル名の拡張子を特定のハンドラにマッピングします。この設定は、拡張子(cgiとpl)をCGI スクリプトとして扱うために、ハンドラcgi-script | + | combined以外の形式(common/ |
- | ==== ハンドラ ==== | + | \\ |
- | ハンドラとは、ファイルにマッピングされた「実行される動作」を表します。ハンドラはモジュールに組み込んだり、Action ディレクティブとして追加したりすることができます。以下に標準で組み込まれている主なハンドラを挙げます。 | + | ===== Supplemental configuretion ===== |
- | ^ ハンドラ名 | + | このセクションでは、Include ディレクティブを使って、機能毎の設定ファイル(*.conf)を conf/extra ディレクトリー内からインクルードし、サーバーに機能を追加したり、デフォルト設定を変更したりしています。 |
- | | send-as-isHTTP | ヘッダのあるファイルをそのまま送ります | .asis | | + | |
- | | cgi-script | CGI スクリプト | .cgi | | + | 例えば、以下はバーチャルホスティングに関するインクルードの例です。 |
- | | imap-file | イメージマップのルールファイル | .map | | + | |
- | | type-map | コンテントネゴシエーションのタイプマップ | .var | | + | < |
+ | # Virtual hosts | ||
+ | Include conf/ | ||
+ | </ | ||
+ | XAMPP7.2でインストールしたApacheでは、conf/ | ||
+ | \\ |