ラベル Apache の投稿を表示しています。 すべての投稿を表示
ラベル Apache の投稿を表示しています。 すべての投稿を表示

2012年11月24日土曜日

Apache設定-2

Port 80

 ポート番号
 WWWサーバー(http)は通常80番を使用するので特に変更する必要はありません。ASSLを用いる場合は、HTTPSとして割り当てられている443番、社内などの限られた範囲で使用する場合には 8080番を用いるのが一般的です。もし。80番以外を使用する場合は、他のサービスで使用されている番号以外、特にウェルノウンポート以外の番号を用いるようにしてください。

ServerAdmin koro@mydomain.com
 エラーメッセージの送付先(サーバーの管理者)
 インストール時に記入したメールアドレスが表示されています。これは、致命的なエラーが発生した際にWebマスターとして登録されているE-Mailに送るようになっています。その送り先を指定しているのがServerAdminのディレクティブです。送り先を変更したい場合は各自で変更してください。

ServerName xx.cc.jp
 サーバー名
 インストール時に記入したホスト名、もしくはIPアドレス(127.0.0.1など)が表示されています。LAN内での動作確認を行った後は、本格的な公開前に必ず独自のドメイン名、あるいはDynamic DNSサービスで取得したサブドメイン名を入力しておくようにしてください。

DocumentRoot "C:/Program Files/Apache Group/Apache/htdocs"

 ドキュメントルート(公開ディレクトリ)
 Webコンテンツのルート(最上位)ディレクトリを指定します。デフォルトでは「C:/Program Files/Apache Group/Apache/htdocs」となっていますが、好きな場所に指定しても構いません。個人的には、デフォルトだと階層が奥深いこともあり、管理面で面倒くさい事も多いので違うドライブを指定しています(例:G:/Public_Html ) 。なお、ここで指定したディレクトリのみが公開の対象となり、これより上位のディレクトリへはアクセスできないようになります。


Options FollowSymLinks
AllowOverride None

 ルートディレクトリのアクセス権
 ルートディレクトリのアクセス権を設定します。ここでは、シンボリックリンクの使用を許可し、「.htaccess」を用いた固有のアクセス権は認めない指定になっていますが特に変更する必要はありません。なお、CGIを使用する際には「Options ExecCGI」のように「ExecCGI」を付け加えます。
■all Multiviews以外の全てのオプションを指定します。
■Indexes インデックスの一覧表示を許可します。
■Includes SSIの使用を許可します。
なお、「IncludesNoExec」とすることでExecコマンドとCGIのincludeは含まなくなります。



#
# This may also be "None", "All", or any combination of "Indexes",
# "Includes", "FollowSymLinks", "ExecCGI", or "MultiViews".
#
# Note that "MultiViews" must be named *explicitly* --- "Options All"
# doesn't give it to you.
#
Options Indexes FollowSymLinks MultiViews
#
# This controls which options the .htaccess files in directories can
# override. Can also be "All", or any combination of "Options", "FileInfo",
# "AuthConfig", and "Limit"
#
AllowOverride None
#
# Controls who can get stuff from this server.
#
Order allow,deny
Allow from all

 ドキュメントディレクトリのアクセス権
 Options Indexes FollowSymLinks MultiViews
 ・・・の範囲は、ドキュメントディレクトリへのアクセス権を設定しています。デフォルトでは、インデックスの一覧表示とシンボリックリンクを許可しています。ウィンドウズにはシンボリックリンクの機能がないので、コメントアウトしても構いません。
AllowOverride None
アクセス権を指定していません。
Order allow,deny
4行目の「Order allow,deny」では、アクセス「allow(許可)」と「deny(拒否)」の評価の順番を指定しています。この指定では、それ以下に「Allow」と「Deny」の両方が指定されていた場合、「Allow」の指定を先に処理し、「Deny」の指定を後から処理しています。指定に矛盾が生じた場合には後から処理したものが有効となります。
Alow from all
5行目の「Allow from All」では、アクセスの制限を指定しています。「Allow from All」だと、「アクセス制限を設けない」=「全てのアクセスを許可する」という設定になっています。仮に制限を設けたい場合は、IPアドレス、またはホスト名(FQDN)のいずれかで指定することになります。以下の例を参考にしてください。
◎アクセス制限の設定例
Allow from 192.168.0.150 ←「192.168.0.150」のIPアドレスだけ受け入れる。
Deny from 192.168.0.150 ←「192.168.0.150」のIPアドレスだけ拒否する。
Allow from 192.168.0 ←「192.168.0」を含む全てのホストを受け入れる。
Allow from jj.mydomain.com ←「jj.mydomain.com」のホストだけ受け入れる(小分類)。
Allow from mydomain.com ←「mydomain.com」のホストだけ受け入れる(大分類)。
■ExecCGI CGIの使用を許可します。
 
UserDir "C:/Program Files/Apache Group/Apache/users"

 ユーザーのホームディレクトリ
 ユーザー個別のディレクトリの作成を行うモジュールの「mod_userdir.c」の指定を行います。「IfModule」は「モジュールが組み込まれている場合は」という判断を行い、もし組み込まれている場合にはその指定をおこなうようになっています。デフォルトでは「C:/Program Files/Apache Group/Apache/users」となっています。


DirectoryIndex index.html

 ディレクトリインデックス(索引)表示
 ディレクトリインデックス表示の作成を行うモジュールが組み込まれているかどうかを判断し、もし組み込まれていた場合には、その指定を行います。ディレクトリインデックスとは、Webページを最初に表示するファイルのことで、通常は「index.html」となっています。
例:)

DirectoryIndex index.html index.htm welcom.html welcom.htm default.html default.htm


AccessFileName .htaccess

 個別ディレクトリのアクセス制御ファイル名
 公開するディレクトリ中で特定のディレクトリだけを公開したり、アクセスできないようにしたりすることができます。ここで指定したファイルに記述されている内容をアクセス権として設定します。アクセス制御ファイルとして、一般的には「.htaccess」というファイル名が使われます。



Order allow,deny
Deny from all
Satisfy All

 .htaccessドキュメントへのアクセス権

 上記で説明した「.htaccess」ファイルはアクセス制限を行うディレクトリの中へ格納します。しかし、アパッチのバージョンによってはWebブラウザなどで正確にパスを記述すると、その中身を閲覧することが可能となってしまいます。そこで、このディレクティブでは「.ht」で始まるファイル名には基本的にアクセスできないように指定しています。
Deny from all
「.htaccess」のファイルが格納されたディレクトリはアクセスを拒否するという設定です。
Satisfy All
ファイルへのアクセス条件を設定するためのディレクティブです。指定値は「Any」と「All」があります。「Any」にすると、アクセス時に要求されるユーザー名とパスワードの組み合わせだけが正しいか、またはアクセス許可されているホストからのアクセスであるかのどちらかの条件を満たせば、アクセスを許可します。「All」にした場合は、その両方を満たさない限りアクセスを許可しません。厳格にアクセス制限かける場合には「All」のままにしておいてください。

2012年11月23日金曜日

Apache設定ファイル-1

◆Global Environment
ServerType standalone
 サーバーの起動方法。他に「inetd」が設定可能だが、「standalone」になります。

ServerRoot "C:/Program Files/Apache Group/Apache"

 サーバーのルートディレクトリ
 Apacheインストール時に設定した内容が反映されています。重要なコンテンツを含んだセキュアなサイトを公開するような方は、ここでルートディレクトリを変更することができますが、通常はこのままで構いません。
 また、「httpd.conf」のパスの指定の際には「¥(エン)」ではなく「/(スラッシュ)」を使用

PidFile logs/httpd.pid

 プロセス番号記録ファイル
 Pid(Process IDentification number:プロセス番号)を記録するファイルの指定を行うディレクティブです。Windowsの方は特に変える必要なし。

ScoreBoardFile logs/apache_runtime_status

 内部情報ファイル
 Apacheの内部情報を記録するためのファイルを指定します。Apacheが動作する上で必要となるファイルなので、このディレクティブは変更しない。

Timeout 300
 タイムアウトまでの時間
 クライアント接続要求を受け取ってから、コンテンツを提供するまでの連続してパケットを送信する時間の最大値を指定します。単位は秒単位です。
 ここで設定した時間を過ぎてもパケットが送信されない場合、ブラウザはエラーメッセージを表示するようになります。クライアントの回線の速度にもよりますが、1ページあたりの送出データがよほど重くない限りは、300秒あれば十分といえるでしょう。それを超える値も設定できますが、サーバーに余分な負荷がかかるので適度な値に設定するようにしてください。

 KeepAlive On
 キープアライブ
 クライアントからの要求があり、いったんコンテンツを提供した後もコネクションを閉じずに次の要求に対してすぐに応答できるようにする機能です。通常はアクセスがあった場合、リンク部分をたどって他のページを見にいこうとするので、このディレクティブが「On」になっているとパフォーマンスが向上します。

MaxKeepAliveRequests 100
 最大キープアライブ値
 各々の接続に対するキープアライブの最大数を指定するディレクティブです。この値を「0」にすると無制限になりますが、サーバーへの負荷も考えるとデフォルトの100のままで良いでしょう。実際に、運用していって問題があるようなら値を変更してパフォーマンスとのバランスを取るようにしてください。

KeepAliveTimeout 15

 キープアライブタイムアウトまでの時間
 ひとつの要求が完了してから、コネクションを切断しないで次の要求を受け入れるまでの時間を指定するディレクティブです。単位は秒単位です。この値が短すぎてもサーバーへの負荷が増大し、反対に長すぎるとレスポンスが悪くなるので適度な値を指定するようにしてください。

#MaxRequestsPerChild 0
 子プロセスの処理可能数
 Apacheはクライアントから要求があるたびに子プロセスを作り、リクエストに応じます。このディレクティブでは子プロセスが終了するまでに処理可能な要求の数を指定します。この機能はUNIX系OSでのみ有効で、ウィンドウズでは無効とされるのでハッシュマーク(#)をつけてコメントアウトしても構いません。

ThreadsPerChild 50

 リクエストを処理する子スレッドの最大数
 Apacheが提供するWebページが同時に処理できるヒット数を指定するディレクティブです。これはウィンドウズ系Apache固有のものでUNIX系OS用のApacheにはついていません。デフォルトで問題ありません。

ClearModuleList

 組み込まれたモジュールリストのクリア
 Section2以降で述べる「AddModule」ディレクティブによって組み込まれた実行可能なモジュールのリストをクリアする指定です。Apacheの起動時は「httpd.conf」の行頭から順に処理をしていくので、ここでモジュールをクリアして、その後で、モジュールの組み込みを行うという段取りをとります。このままにしておいてください。

・・・
AddModule mod_so.c

AddModule mod_setenvif.c
 モジュールの組み込み
 Apacheは基本的な機能の他にモジュールを組み込むことによって、機能を拡張することができます。これらのディレクティブでは、引数として指定されたモジュールの組み込みを行います。