Centos7 Apache2.4 httpd.conf 設定ファイルの詳細な解釈

上記は、httpd.conf内の様々な変数の設定とApache2.4.4サーバ設定ファイルの基本構造の詳細な翻訳と説明です。最も注目すべき点は、ここでは、異なるディレクトリ配下に分散されたサブディレクトリに対するアクセス制御権限を定義します。また、Apacheのバージョンによっては互換性に注意する必要があります。

Apache2.4.41設定ファイルのデフォルトの場所は/usr/local/apache2/conf/です。.conf
まず、httpd.conf 内のさまざまな変数の構成を詳しく解釈してみましょう。
/usr/local/apache2/conf/httpd.conf、具体的なファイルの内容は次のとおりです。

# #これはApache HTTP Serverのメイン設定ファイルで、サーバーの設定に必要な実行可能ディレクティブが含まれています。#Apache HTTP Server 2.4のドキュメントはhttp://httpd.apache.org/docs/2.4/zh-cnで入手できます。#注:ディレクティブのインデックスページをご覧ください。標準のApacheディストリビューションで利用可能なすべてのディレクティブが以下のリンクにリストされています。ディレクティブは一貫した形式で説明されており、用語集も用意されています。#http://httpd.apache.org/docs/2.4/zh-cn/mod/directives.html #警告:設定コマンドを理解していない場合は、このファイルではなく、上記のリンクを先に読んでください。#ServerRoot設定ログファイル名:サーバーのログファイルパスを設定する場合は、「/」(Win32の場合は「drive:/」)で始めると、サーバーはそのパスを使用します。 #パスに「/」が付いていない場合、ServerRootの値はデフォルト値(「logs/access_log」)になります。#ServerRootを「/usr/local/apache2」に設定すると、サーバー上のログの場所は「/usr/local/apache2/logs/access_log」になります。# #ServerRoot:Apache HTTPサーバーが配置されている場所です。サーバー設定、エラーメッセージ、ログファイルはすべてルートディレクトリに保存されます。#ディレクトリパスの末尾に「/」を追加しないでください。ServerRootをローカルディスク以外のディスクに配置するように指定する場合は、Mutexディレクティブ(ファイルベースのミューテックスロックを使用している場合)に必ず「/」を追加してください。#複数のhttpdデーモンで同じServerRootを共有する場合は、以下の場所にあるPidFileを少なくとも変更する必要があります。 ServerRoot "/usr/local/apache2" Apache HTTP サーバーがインストールされている場所。/usr/local/apache2 ディレクトリにインストールされます。 #Mutex: 単一のミューテックスのミューテックスメカニズムとミューテックスファイルディレクトリを設定したり、グローバルデフォルトを変更したりできます。 #ミューテックスがファイルベースで、デフォルトのミューテックスファイルディレクトリがローカルディスク上にないか、その他の理由で適していない場合は、コメントを解除してディレクトリを変更します。 #Mutex のデフォルト値: log #Listen: Apache をデフォルトポートではなく特定の IP アドレス/ポートにバインドできます。詳細については、手順を参照してください。 # 次のように特定の IP アドレスとポートに変更します。 #PApache がサーバー上のすべての IP アドレスをバインドしないようにします。 #例:Listen 12.34.56.78:8080 これは、12.34.56.78のポート8080からのみhttpサーバーにアクセスできることを意味します。Listen 8088 #ポートを個別に設定することで、サーバー上のすべてのバインドされたIPを使用できるようになります。ポートを8088に設定してください。#サーバーには別のHTTPサーバーがインストールされているため、ポート80との競合を避け、通常のインストールではポート80を変更する必要はありません。#動的共有オブジェクト(DSO)のサポート #DSOとして構築されたモジュールの機能を使用するには、対応する「LoadModule」行をこの場所に配置する必要があり、そこに含まれる命令は実際にはモジュールが使用される前から利用可能です。#静的にコンパイルされたモジュール(httpd -lでリストされるモジュール)は、ここでロードする必要はありません。 # の例: #LoadModule foo_module modules/mod_foo.so LoadModule authn_file_module modules/mod_authn_file.so #LoadModule authn_dbm_module modules/mod_authn_dbm.so #LoadModule authn_anon_module modules/mod_authn_anon.so #LoadModule authn_dbd_module modules/mod_authn_dbd.so #LoadModule authn_socache_module modules/mod_authn_socache.so LoadModule authn_core_module modules/mod_authn_core.so LoadModule authz_host_module modules/mod_authz_host.so LoadModule authz_groupfile_module modules/mod_authz_groupfile.so LoadModule authz_user_module modules/mod_authz_user.so #LoadModule authz_dbm_module modules/mod_authz_dbm.so #LoadModule authz_owner_module modules/mod_authz_owner.so #LoadModule authz_dbd_module modules/mod_authz_dbd.so LoadModule authz_core_module modules/mod_authz_core.so #LoadModule authnz_ldap_module modules/mod_authnz_ldap.so LoadModule access_compat_module modules/mod_access_compat.so LoadModule auth_basic_module modules/mod_auth_basic.so #LoadModule auth_form_module modules/mod_auth_form.so #LoadModule auth_digest_module modules/mod_auth_digest.so #LoadModule allowedmethods_module modules/mod_allowmethods.so #LoadModule file_cache_module modules/mod_file_cache.so #LoadModule cache_module modules/mod_cache.so #LoadModule キャッシュ_ディスク_モジュール モジュール/mod_cache_disk.so #LoadModule キャッシュ_socache_module モジュール/mod_cache_socache.so #LoadModule socache_shmcb_module モジュール/mod_socache_shmcb.so #LoadModule socache_dbm_module modules/mod_socache_dbm.so #LoadModule socache_memcache_module modules/mod_socache_memcache.so #LoadModule socache_redis_module modules/mod_socache_redis.so #LoadModule watchdog_module modules/mod_watchdog.so #LoadModule macro_module modules/mod_macro.so #LoadModule dbd_module modules/mod_dbd.so #LoadModule dumpio_module modules/mod_dumpio.so #LoadModule buffer_module modules/mod_buffer.so #LoadModule ratelimit_module modules/mod_ratelimit.so LoadModule reqtimeout_module modules/mod_reqtimeout.so #LoadModule ext_filter_module modules/mod_ext_filter.so #LoadModule request_module modules/mod_request.so #LoadModule include_module modules/mod_include.so LoadModule filter_module modules/mod_filter.so #LoadModule substitute_module modules/mod_substitute.so #LoadModule sed_module modules/mod_sed.so #LoadModule deflate_module modules/mod_deflate.so LoadModule mime_module modules/mod_mime.so #LoadModule ldap_module modules/mod_ldap.so LoadModule log_config_module modules/mod_log_config.so #LoadModule log_debug_module modules/mod_log_debug.so #LoadModule logio_module modules/mod_logio.so LoadModule env_module modules/mod_env.so #LoadModule 有効期限モジュール modules/mod_expires.so LoadModule headers_module modules/mod_headers.so #LoadModule unique_id_module modules/mod_unique_id.so LoadModule setenvif_module modules/mod_setenvif.so LoadModule version_module modules/mod_version.so #LoadModule remoteip_module modules/mod_remoteip.so #LoadModule proxy_module modules/mod_proxy.so #LoadModule proxy_connect_module modules/mod_proxy_connect.so #LoadModule proxy_ftp_module modules/mod_proxy_ftp.so #LoadModule proxy_http_module modules/mod_proxy_http.so #LoadModule proxy_fcgi_moduleモジュール/mod_proxy_fcgi.so #LoadModule proxy_scgi_module モジュール/mod_proxy_scgi.so #LoadModule proxy_uwsgi_module モジュール/mod_proxy_uwsgi.so #LoadModule proxy_fdpass_module モジュール/mod_proxy_fdpass.so #LoadModule proxy_wstunnel_module モジュール/mod_proxy_wstunnel.so #LoadModule proxy_ajp_module モジュール/mod_proxy_ajp.so #LoadModule proxy_balancer_module モジュール/mod_proxy_balancer.so #LoadModule proxy_express_module モジュール/mod_proxy_express.so #LoadModule proxy_hcheck_module モジュール/mod_proxy_hcheck.so #LoadModule session_module modules/mod_session.so #LoadModule session_cookie_module modules/mod_session_cookie.so #LoadModule session_crypto_module modules/mod_session_crypto.so #LoadModule session_dbd_module modules/mod_session_dbd.so #LoadModule slotmem_shm_module modules/mod_slotmem_shm.so #LoadModule ssl_module modules/mod_ssl.so #LoadModule lbmethod_byrequests_module modules/mod_lbmethod_byrequests.so #LoadModule lbmethod_bytraffic_module modules/mod_lbmethod_bytraffic.so #LoadModule lbmethod_bybusyness_module modules/mod_lbmethod_bybusyness.so #LoadModule lbmethod_heartbeat_module modules/mod_lbmethod_heartbeat.so LoadModule unixd_module modules/mod_unixd.so #LoadModule dav_module modules/mod_dav.so LoadModule status_module modules/mod_status.so LoadModule autoindex_module modules/mod_autoindex.so #LoadModule info_module modules/mod_info.so #LoadModule cgid_module modules/mod_cgid.so #LoadModule dav_fs_module modules/mod_dav_fs.so #LoadModule vhost_alias_module modules/mod_vhost_alias.so #LoadModule negotiation_module modules/mod_negotiation.so LoadModule dir_module modules/mod_dir.so #LoadModule actions_module modules/mod_actions.so #LoadModule speling_module modules/mod_speling.so #LoadModule userdir_module modules/mod_userdir.so LoadModule alias_module modules/mod_alias.so #LoadModule rewrite_module modules/mod_rewrite.so #httpd を別のユーザーまたはグループとして実行する場合は、最初に httpd を root として実行してから切り替える必要があります。

ユーザー/グループ: httpd が実行されるユーザー/グループの名前。

通常、httpd サービスを実行するために、別のユーザー グループとユーザーが作成されます。

ユーザー www: httpd サービスを実行するユーザーの名前。 グループ www: ユーザーが所属するユーザー グループの名前。 'メイン' サーバー構成 'メイン' サーバーで使用する値を設定します。このサーバーは、サーバーによって処理されないリクエストに応答します。 'ディレクティブを変更します。コンテナー内で後で内容を変更できます。コンテナー内のディレクティブはデフォルト値になります。 これらすべてのディレクティブがコンテナー内に出現する場合があります。その場合、これらのデフォルト設定は、定義された仮想ホストによって上書きされます。 ServerAdmin: サーバーの問題を電子メールで送信するアドレスです。このアドレスは、エラー ドキュメントなど、サーバーによって生成される一部のページに表示されます。たとえば、 admin@your-domain.com ServerAdmin xxx@gmail.com のようになります。この名前とポートは通常は自動的に決定されますが、起動時に問題が発生しないように明示的に指定することをお勧めします。 #サーバーに登録済みの DNS 名がない場合は、ここで IP アドレスを入力してください。 #注: ホスト名は任意に指定できません。マシンの有効な DNS 名である必要があります。IP アドレスまたはドメイン名を使用できます。ローカルでテストする場合は、127.0.0.1 または localhost を使用できます。 #ServerName www.example.com:80 #サーバーのファイル システム全体へのアクセスを拒否します。後続の他のブロックで、Web コンテンツ ディレクトリへのアクセスを明示的に許可する必要があります。 #Directory ステートメントは、ディレクトリのアクセス制限を定義するために使用されます。 #AllowOverride None は、このディレクトリの下のアクセス制御ファイルが、ここで行われた構成の変更を許可されないことを意味します。AllowOverride none Require all denied #注: 今後は、特定の機能を有効にすることを明示的に許可する必要があります。したがって、何かが正しく動作しない場合は、以下の機能が明示的に有効になっていることを確認してください。 #DocumentRoot: ウェブドキュメントが保存されるディレクトリ。デフォルトではすべてのウェブリクエストはこのディレクトリから送信されますが、シンボリックリンクやエイリアスを使用して他の場所を指定することもできます。DocumentRoot "/usr/local/apache2/htdocs" #Options ディレクティブに指定できる値は、「None」、「All」、または次の任意の組み合わせです: #Indexes、Includes FollowSymLinks、SymLinksifOwnerMatch、ExecCGI、MultiViews #「MultiViews」は明示的に名前を付ける必要があり、「Options All」は使用できません。

Optionsディレクティブは複雑かつ重要です。詳細については、http://httpd.apache.org/docs/2.4/mod/core.html#optionsをご覧ください。

オプション Indexes FollowSymLinks #AllowOverride は、.htaccess ファイルに設定できるディレクティブを制御します。「All」、「None」、または以下のキーワードの組み合わせを指定できます。 #AllowOverride FileInfo AuthConfig Limit AllowOverride None # このサーバーからコンテンツを取得できるユーザーを制御します。Require all grant #DirectoryIndex: ディレクトリが要求された際に Apache が表示するファイルを設定します。 # アクセスのデフォルトドキュメントを設定します。index.html index.php DirectoryIndex index.html # 以下の行は、Web クライアントが .htaccess ファイルと .htpasswd ファイルを表示できないようにします。 すべて拒否された #ErrorLog: エラー ログ ファイルの場所が必要です。コンテナ内でErrorLogディレクティブが指定されていない場合、この仮想ホストに関連するエラーメッセージは「.」で指定されたディレクトリに記録されます。ログの保存場所が指定されていない場合、デフォルトは「logs/error_log」です。ErrorLog「logs/error_log」 #LogLevel: error_logに記録されるメッセージの数を制御します。 #使用可能な値は、debug、info、notice、warn、error、crit、alert、emergです。LogLevel warn #以下のディレクティブは、CustomLogディレクティブで使用するフォーマットニックネームを定義します(下記参照)。LogFormat「%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined LogFormat「%h %l %u %t \"%r\" %>s %b" common #%Iおよび%Oを使用するには、mod_logio.cを有効にする必要があります。LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio #アクセスログファイルの場所と形式(共通ログファイル形式)。#コンテナ内にアクセスログファイルが定義されていない場合は、ここに記録されます。#一方、アクセスごとにログファイルを定義した場合、トランザクションはこのファイルではなく、それらのログファイルに記録されます。CustomLog "logs/access_log" common #アクセス権、エージェント、リファラー情報を含むログファイル(統合ログファイル形式)を使用する場合は、以下のディレクティブを使用できます。#CustomLog "logs/access_log" combined #Redirects: 以前はサーバーの名前空間に存在していたが、現在は存在しなくなったドキュメントについてクライアントに通知できます。クライアントは新しい場所にあるドキュメントに対して新しいリクエストを発行します。#例: #Redirect permanent /foo http://www.example.com/bar #Aliases: Webパスをファイルシステムパスにマッピングし、DocumentRoot以下に存在しないコンテンツにアクセスするために使用します。#例: #Alias /webpath /full/filesystem/path #/webpath/ の末尾に / がある場合、サーバーはURLに / を含めることを要求します。ファイルシステムパスへのアクセスを許可するためのセクションも用意する必要があるかもしれません。#ScriptAliases:サーバースクリプトを格納するディレクトリを制御します。ScriptAliases は基本的に Aliases と同じですが、ターゲットディレクトリ内のドキュメントはクライアントに送信されるドキュメントではなく、アプリケーションとして扱われ、要求時にサーバーによって実行されるという点が異なります。ScriptAlias ディレクティブと Aliases には、末尾の "/" に関する同じルールが適用されます。Apache 2.4 で仮想ディレクトリを設定する方法について説明します。ScriptAlias /cgi-bin/ "/usr/local/apache2/cgi-bin/" ScriptSock: スレッド化されたサーバーでは、mod_cgid の CGI デーモンとの通信に使用される UNIX ソケットへのパスを指定します。Scriptsock cgisock "/usr/local/apache2/cgi-bin" は、ScriptAliased の CGI ディレクトリが存在する場所(設定されている場合)に変更する必要があります。 AllowOverride なし オプション なし すべて許可が必要 #HTTP_PROXY 環境を、このサーバーまたは 'httpoxy' 欠陥が残るプロキシ バックエンド サーバーの CGI に渡さないでください。#IProxy は 'Proxy' 要求ヘッダーを定義せず、RequestHeader が設定されていません。Proxy early は IANA によってリストされていません。#TypesConfig は、ファイル拡張子から MIME タイプへのマッピングのリストを含むファイルを指します。TypesConfig conf/mime.types #AddType を使用すると、特定のファイル タイプに対して TypesConfig で指定された MIME 構成ファイルを追加または上書きできます。#AddType application/x-gzip .tgz #AddEncoding を使用すると、一部のブラウザーで情報をオンザフライで解凍できます。注: すべてのブラウザーがこの機能をサポートしているわけではありません。 #AddEncoding x-compress .Z #AddEncoding x-gzip .gz .tgz #上記の AddEncoding ディレクティブがコメント アウトされている場合は、メディア タイプを示すために次の拡張子を定義する必要があります: AddType application/x-compress .Z AddType application/x-gzip .gz .tgz #AddHandler を使用すると、特定のファイル拡張子を「ハンドラー」にマップできます: #ファイル タイプに関連しないアクション。これらはサーバーに組み込むか、Actionディレクティブ(下記参照)で追加することができます。ScriptAliasedディレクトリの外でCGIスクリプトを使用するには: #(また、「Options」ディレクティブに「ExecCGI」を追加する必要があります。) #AddHandler cgi-script .cgi #タイプマッピング(ネゴシエートされたリソース)の場合: #AddHandler type-map var

フィルターを使用すると、コンテンツをクライアントに送信する前に処理できます。

#.shtml ファイルを Server Side Include (SSI) 用に解析します。#(「options」ディレクティブに「includes」も追加する必要があります。) #AddType text/html .shtml #AddOutputFilter INCLUDES .shtml #mod_mime_magic モジュールを使用すると、サーバーはファイルの内容に含まれるさまざまなヒントを使用してファイルの種類を判断できます。MIMEMagicFile ディレクティブは、ヒント定義の場所をモジュールに指示します。#MIMEMagicFile conf/magic #カスタマイズ可能なエラー応答には、次の 3 つの種類があります。#1) プレーンテキスト 2) ローカルリダイレクト 3) 外部リダイレクト #例: #ErrorDocument 500 "サーバーがブーイングしました。" #ErrorDocument 404 /missing.html #ErrorDocument 404 "/cgi-bin/missing_handler.pl" #ErrorDocument 402 http://www.example.com/subscription_info.html #MaxRanges: リソース全体、またはリクエスト内の範囲の最大数を表す特殊値「default」、「none」、「unlimited」のいずれかを返します。デフォルトでは200の範囲が受け入れられます。 #MaxRanges 無制限 #EnableMMAP および EnableSendfile: この機能をサポートするシステムでは、メモリマッピングまたは sendfile システムコールを使用してファイルを配信できます。 # この機能によりサーバーのパフォーマンスが向上することがよくありますが、ネットワークマウントされたファイルシステムサービスでは無効にする必要があります。また、システム上でこれらの機能のサポートが壊れている場合は無効にする必要があります。 #デフォルト: EnableMMAP オン、EnableSendfile オフ #EnableMMAP オフ #EnableSendfile オン #補足構成 #conf/extra/ ディレクトリ内の構成ファイルは、追加機能を追加したり、サーバーのデフォルト構成を変更したりするために組み込むことができます。また、その内容をここにコピーし、必要に応じて変更することもできます。 #サーバープール管理(MPM固有)#include conf/extra/httpd-mpm.conf #多言語エラーメッセージ#include conf/extra/httpd-multilang-errordoc.conf #ファンシーディレクトリリスト#include conf/extra/httpd-autoindex.conf #言語設定#include conf/extra/httpd-languages.conf #ユーザーホームディレクトリ#include conf/extra/httpd-userdir.conf #リクエストと設定に関するリアルタイム情報#include conf/extra/httpd-info.conf #仮想ホスト#include conf/extra/httpd-vhosts.conf #Apache HTTP Serverマニュアルへのローカルアクセス#include conf/extra/httpd-manual.conf #分散オーサリングおよびバージョン管理(WebDAV)#conf/extra/httpd-dav.conf #さまざまなデフォルト設定#conf/extra/httpd-default.conf #mod_proxy_html が HTML4/XHTML を理解するように設定1 conf/extra/proxy-html.conf をインクルードします セキュアな(SSL/TLS)接続を含める #include conf/extra/httpd-ssl.conf 含める 注記: /dev/random に相当するものがなく、静的にコンパイルされた mod_ssl があるプラットフォームで SSL なしで起動をサポートするには、以下が必要です。 SSLRandomSeed 起動組み込み SSLRandomSeed 接続組み込み

容器の下の説明書の詳細な説明:
オプション設定 オプションを使用して、このディレクトリの下にあるいくつかのアクセス機能設定を制御できます。
すべてのディレクトリ機能が有効になっています。これがデフォルトの状態です。
なし すべてのディレクトリ機能が無効になります。
FollowSymLinks はシンボリックリンクの使用を許可し、ブラウザがドキュメントルートディレクトリ (DocumentRoot) 外のドキュメントにアクセスできるようにします。
SymLinksIfOwnerMatch シンボリックリンクのリンク先とシンボリックリンク自体が同じユーザーの所有である場合にのみアクセスを許可します。この設定によりセキュリティが向上します。
ExecCGIは、このディレクトリでCGIプログラムを実行できるようにします。
インデックスを使用すると、ブラウザはこのディレクトリ内のすべてのファイルのインデックスを生成できるため、このディレクトリにindex.html(またはその他のインデックスファイル)がない場合でも、このディレクトリ内のファイルのリストをブラウザに送信できます。

各ディレクトリのアクセス制御ファイルにおけるAllowOverride設定の影響
すべてデフォルト値。アクセス制御ファイルでシステム構成を上書きできます。
なし サーバーはアクセス制御ファイルの設定を無視します
オプションは、アクセス制御ファイルでオプションパラメータを使用してディレクトリオプションを定義できるようにします。
FileInfoでは、AddTypeなどのパラメータを使用してアクセス制御ファイルを設定できます。
AuthConfigを使用すると、アクセス制御ファイルで各ユーザーのAuthName、AuthTypeなどの認証メカニズムを使用できるようになります。これにより、ディレクトリ所有者はパスワードとユーザー名でディレクトリを保護できます。
Limit を使用すると、ディレクトリにアクセスするクライアントの IP アドレスと名前を制限できます。

上記は、httpd.conf内の様々な変数の設定と、Apache2.4.4サーバー設定ファイルの基本構造の詳細な翻訳と説明です。最も注目すべき点は、異なるディレクトリに分散されたサブディレクトリに対するアクセス制御権限を定義している点です。いくつかのバージョンの互換性。

1/5 - (2票)

手紙への返信

メールアドレスが変更されることはありません。 支払い欄に必須の項目は必須です