Apacheの機能やその動き方を理解するためにはその構成ファイルの内容を理解することが大切です。 この記事にはFedora 13に含まれているApacheの構成ファイルの最初のセクションを抜き出し、説明をサマリーしました。 オリジナルファイル名はhttpd.confです。 また、Apacheに関するドキュメントは以下のサイトにありますのでご参照ください。。 参照URL http://httpd.apache.org/docs/2.2/ http://httpd.apache.org/docs/2.2/mod/directives.html> Fedora 13のhttpd.confファイルは以下のような構成になっています。 構成ディレクティブは以下の3種類の基本セクションにグループ分けされています。 セクション 1. Apache のサーバープロセス全体に対するオペレーションのコントロールを行います。 セクション 2. 仮想ホストが扱わない要求に対して応答する、メインまたはデフォルトのサーバー・パラメーターを定義するディレクティブです。これらのディレクティブは、すべての仮想ホストの設定に対してデフォルト値を提供します。 セクション 3. 仮想ホストに対する設定で、ウェブ要求を異なるIPアドレスやホスト名に送信することができ、同一のApacheサーバーのプロセスによって処理をすることができます。 構成とログファイル名:サーバーのコントロールファイル対して指定するファイル名が、/で始まる場合にはサーバーはその明示的なパスを使用します。 ファイル名が"/"で始まらない場合には、サーバールートがその前に付加されます。 例えば、"logs/foo.log"ファイルは、サーバールートが"/etc/httpd"に設定されている場合には"/etc/httpd/logs/foo.log"と解釈されます。 セクション1: グローバル環境 処理できるおおまかな同時要求の数、構成ファイルの場所などを指定します。 ServerTokens OS ServerRoot: サーバー構成ファイル、エラーファイル、ログファイルのトップディレクトリーを指定します。ディレクトリーパスの最後にスラッシュをつけないようにしてください。 ServerRoot "/etc/httpd" PidFile: プロセスが開始したときにプロセスID番号を記録するファイルを指定します。 PidFile run/httpd.pid Timeout: タイムアウトの送受信をするまでの秒数を指定します。 Timeout 120 KeepAlive: 持続的な接続を許すか否かを指定します。 # KeepAlive Off MaxKeepAliveRequests: 永続接続要求に対して許可をする最大の要求の数を指定します。 無制限のときは0を指定します。 パフォーマンスを良くするために、この値は大きい高い値を推奨します。 # MaxKeepAliveRequests 100 KeepAliveTimeout: 同一接続の同一クライアントから次の要求を待つ秒数を指定します。 KeepAliveTimeout 15 サーバープール規則 (MPM:マルチプロセッシングモジュール に固有) # prefork MPMの場合 # StartServers: 最初に開始するサーバープロセスの数 # MinSpareServers: 予備のサーバープロセスの最小の数 # MaxSpareServers: 予備のサーバープロセスの最大の数 # ServerLimit: サーバーのライフタイムに対するMaxClientsの最大数 # MaxClients: 開始可能なサーバープロセスの最大数 # MaxRequestsPerChild: 1サーバープロセスが処理する最大の要求数 <IfModule prefork.c> StartServers 8 MinSpareServers 5 MaxSpareServers 20 ServerLimit 256 MaxClients 256 MaxRequestsPerChild 4000 </IfModule> # worker MPMの場合 # StartServers: 最初に開始するサーバープロセスの数 # MaxClients: 同時クライアント接続の最大数 # MinSpareThreads: 予備にして置かれるワーカースレッドの最少数 # MaxSpareThreads: 予備にして置かれるワーカースレッドの最大数 # ThreadsPerChild: 各サーバープロセスにおけるワーカースレッドの固定値 # MaxRequestsPerChild: サーバープロセスがサービスする最大の数 <IfModule worker.c> StartServers 2 MaxClients 150 MinSpareThreads 25 MaxSpareThreads 75 ThreadsPerChild 25 MaxRequestsPerChild 0 </IfModule> # # Listen: デフォルトに追加してApacheが特定のIPアドレスやポートをバインド可能にします。 <VirtualHost>ディレクティブも参照してください。 # 以下に示すように、Apacheが特定のIPアドレスをリッスンするように変更します。 # #Listen 12.34.56.78:80 Listen 80 # # ダイナミック・シェアード・オブジェクト(DSO)サポート # # DSOとして造られたモジュールの機能を使用するには、その中に含まれるディレクティブが使用される前に、実際に利用できるように、ここに該当する`LoadModule'行を記述しなければなりません。 静的にコンパイルされたモジュール(`httpd -l'でリストされる物)はここにロードする必要はありません。 # # 例: # LoadModule foo_module modules/mod_foo.so # LoadModule auth_basic_module modules/mod_auth_basic.so LoadModule auth_digest_module modules/mod_auth_digest.so LoadModule authn_file_module modules/mod_authn_file.so LoadModule authn_alias_module modules/mod_authn_alias.so LoadModule authn_anon_module modules/mod_authn_anon.so LoadModule authn_dbm_module modules/mod_authn_dbm.so LoadModule authn_default_module modules/mod_authn_default.so LoadModule authz_host_module modules/mod_authz_host.so LoadModule authz_user_module modules/mod_authz_user.so LoadModule authz_owner_module modules/mod_authz_owner.so LoadModule authz_groupfile_module modules/mod_authz_groupfile.so LoadModule authz_dbm_module modules/mod_authz_dbm.so LoadModule authz_default_module modules/mod_authz_default.so LoadModule ldap_module modules/mod_ldap.so LoadModule authnz_ldap_module modules/mod_authnz_ldap.so LoadModule include_module modules/mod_include.so LoadModule log_config_module modules/mod_log_config.so LoadModule logio_module modules/mod_logio.so LoadModule env_module modules/mod_env.so LoadModule ext_filter_module modules/mod_ext_filter.so LoadModule mime_magic_module modules/mod_mime_magic.so LoadModule expires_module modules/mod_expires.so LoadModule deflate_module modules/mod_deflate.so LoadModule headers_module modules/mod_headers.so LoadModule usertrack_module modules/mod_usertrack.so LoadModule setenvif_module modules/mod_setenvif.so LoadModule mime_module modules/mod_mime.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 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 LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_balancer_module modules/mod_proxy_balancer.so LoadModule proxy_ftp_module modules/mod_proxy_ftp.so LoadModule proxy_http_module modules/mod_proxy_http.so LoadModule proxy_connect_module modules/mod_proxy_connect.so LoadModule cache_module modules/mod_cache.so LoadModule suexec_module modules/mod_suexec.so LoadModule disk_cache_module modules/mod_disk_cache.so LoadModule cgi_module modules/mod_cgi.so # # 以下のモジュールはデフォルトではロードされません: # #LoadModule cern_meta_module modules/mod_cern_meta.so #LoadModule asis_module modules/mod_asis.so # # 構成ディレクトリー"/etc/httpd/conf.d" から構成ファイルをロードします。 # Include conf.d/*.conf # # ”サーバーステイタス”ハンドラーが呼ばれたときに、Apacheがステイタスを生成します。 フルステイタスを生成する場合:(ExtendedStatus On) 基本情報のみを生成する場合:(ExtendedStatus Off) デフォルトはOff # #ExtendedStatus On # # httpdを異なるユーザーあるいはグループで実行したい場合には、最初にhttpdを rootで実行し、切り替えなければなりません。 # # User/Group: httpdを実行するユーザー/グループの名前(または番号) # . SCO (ODT 3) の場合、"User nouser" と"Group nogroup"を使用します。 # . On HPUX の場合、nobodyとしてはシェアードメモリーを使用できないかもしれません。 お勧めはwwwというユーザーを作成し、そのユーザーを使用します。 # 注 カーネルによっては(サインの無い)Groupが60000より大きい場合、setgid(Group)またはsemct(IPC_SET)を受け付けないばあいがあります。 Group #-1を使用しないようにしてください。 # User apache Group apache
(グローバル環境)ディレクティブ






