あしたは晴れるかな。ii

駅前SEのお勉強ブログです。備忘録を兼ねて徒然事をアップしていきます。

Apache を入れよう。

さてとりあえず方向性としては web/AP サーバにしてみようかなということで、ApacheTomcat をインストールします。

まずは Apache 。といっても入れるだけならすぐなので、各設定の意味でもひも解いていければなと思います。努力目標。

とりあえず、

[root@centos ~]# yum -y install httpd

だ。

 

 Package httpd-2.2.15-26.el6.centos.x86_64 already installed and latest version
Nothing to do
すでに入ってるよと言われた。

なのでここからはひたすら設定で、最後に起動します。

[root@centos ~]# /etc/httpd/conf/httpd.conf

をいじります。

http://linux.kororo.jp/cont/server/httpd_conf.php

この辺りを参考にさせていただきます。もろパクリします。すみません。

 

ServerRoot は、Apache をインストールした場所のパスが指定されており、このディレクトリ以下に conf や logs などのサブディレクトリが格納されます。以降で出現するディレクティブの多くは、このServerRoot からの相対パスで記述されている事が多いため、通常は、デフォルトのままにして置いてください。(引用)

デフォルトとのことなので、
ServerRoot "/etc/httpd/"

 

Timeout は、クライアントからの接続要求を受け取ってからタイムアウトになるまでの時間を秒単位で指定します。(引用)

300秒がデフォルトらしいが、長いので60秒にしてみる。

Timeout 60

 

KeepAlive は、クライアントからの接続要求を受け取った際に、すぐにはHTTPセッションを閉じずに、ある一定の時間までは継続してセッションを保っておく機能で す。これは、クライアントからの接続要求があった場合に、クライアントは通常、リンクを辿って他のページを見にいこうとするため、ある一定期間はセッショ ンを保っておこうというものです。当然、有効にしておく事でパフォーマンスの向上に繋がります。セッションを保っておく時間を指定するディレクティブが、KeepAliveTimeout で、MaxKeepAliveRequests は、KeepAlive がOn の時に、接続要求を受け付ける最大許容値を指定します。(引用)

デフォルトでは off なのね。on にします。


KeepAlive On
KeepAliveTimeout 15
MaxKeepAliveRequests 100

 

Listen 設定は 80 と 8080 をあけておく。

Listen 80

Listen 8080

 

サーバを実行するためのユーザーとグループを指定します。ここで指定するユーザーとグループに、nobodyを設定する方も多いと思いますが、特定の新しいユーザとグループを作成して、設定する事が推奨されています。その理由として、nobody ユーザがシステムで 他の役割を担っている可能性もありますので、なんでもかんでも nobody に設定してしまうと今度は逆にnobody ユーザーが乗っ取られたときの危険性も高くなります。なので、できる限り、専用のユーザーで実行した方が好ましいといえます。(引用)

apache さんを登録しておきます。

User apache
Group apache

 

 ドキュメントルートを指定します。ここで指定したパスにHTMLドキュメント等を置いておきます。基本的には、ここで指定したパスより上位の階層へはアクセスする事ができません。(引用)

index.html が指す場所ですよね。デフォルト設定です。

DocumentRoot "/var/www/html"

 

 2度目に出てくる<Directory>では、ドキュメントルートを指定します。これは、上の行で出てきたDocumentRoot と同じディレクトリを指定しておきます。(引用)

<Directory "/var/www/html">
     Options FollowSymLinks
     AllowOverride All
     Order allow,deny
     Allow from all
</Directory>

 

 Multiviews を有効にしておくことで、曖昧なURLを指定した場合でも、クライアントに対して最適な値を検索して返す事ができるようになります。具体的に説明すると、 仮にホームディレクトリ内にtest.php がある場合に、http://linux.kororo.jp/test とブラウザに入力すると、そのようなファイルがないため通常は「ページが表示されません」というエラーが返されますが、Multiviewsが有効になっ ていると、自動的にtest.* で始まる全てのファイルを検索し、結果としてtest.php をクライアントに返します。ひとつ注意点としては、Options All を指定したとしても、Multiviews は有効にはなりません。必ず、明示的に記述しておく必要があります。(引用)

元々書いてないので、完全新規で追記します。

Options Multiviews

 

ユーザーにホームページスペースを提供する場合などに指定するのが、UserDir ディレクティブです。(引用)

使わないので disable

UserDir disable

 

DirectoryIndex は、スラッシュ「/」で終わるURLを指定した際に、デフォルトで表示するファイルを指定するもので、一般的には、index.html や index.php などを指定しておきます。例えば、http://linux.kororo.jp/ をブラウザで入力した場合、ドキュメントルート最上層に index.html が用意されていればそのファイルが表示されます。もしも、DirectoryIndex で指定したファイルが存在しない場合は、サーバーは、404ステータスコードを返し、ページが見つからない旨をクライアントに伝えます。これは、トップ ページ限らず、例えば、http://linux.kororo.jp/photo/ などを指定した場合にも、index.html が用意されていればページが表示されるし、用意されていなければ、404ステータスコード、もしくは403ステータスコード(Forbidden)を返す ようになります。(引用)

デフォルト設定で。

DirectoryIndex index.html index.html.var

 

ServerTokens は、HTTPレスポンスヘッダーの値を返し、その中に含まれるサーバーOS に関する情報、コンパイルされたモジュールなどの情報などを返します。これらの情報を相手に提供するのは決して好ましいとはいえないので、コメントアウト して無効にするか、最低限の情報しか表示させないようにします。ServerTokens には、いくつかのレベルを設定する事ができ、デフォルトではFull に設定されています。最も少ない情報を提供するためには、Prod を指定します。(引用)

Prod を指定します。

ServerTokens Full
Apache/2.0.48 (Unix) mod_ssl/2.0.48 OpenSSL/0.9.7c DAV/2 PHP/4.3.4 Server at ns Port 80

ServerTokens OS
Apache/2.0.48 (Unix) Server at ns Port 80

ServerTokens Min[imal]
Apache/2.0.48 Server at ns Port 80

ServerTokens Minor
Apache/2.0 Server at ns Port 80

ServerTokens Major
Apache/2 Server at ns Port 80

ServerTokens Prod[uctOnly]
Apache Server at ns Port 80

 

 ServerSignature は、エラーメッセージなどをクライアントに返す際のフッターラインを表示させるかどうかを指定するディレクティブです。これらの情報を隠蔽するには、値をOff にしておきます。(引用)

ServerSignature Off

 

 cgi-bin ディレクトリ内にgif やjpg などが格納されたディレクトリがあり、そこから画像などを読み込む場合、Apacheはそれらの画像ファイルをスクリプトとしてみなしてしまうため、サー バーエラーが発生します。これを回避するためには、<Direcotry>コンテナ内に、以下のようにAddHandler指示子を追加して あげる必要があります。(引用)
利用するかどうか分からないが、とりあえず追記しておく。

 

ScriptAlias /cgi-bin/ "/home/kororo/public_html/cgi-bin"

<Directory "/home/kororo/public_html/cgi-bin">
     AllowOverride None
     Options None
     Order allow,deny
     Allow from all
     AddHandler text/html .html
     AddHandler text/css .css
     AddHandler image/gif .gif
     AddHandler image/jpg .jpg

</Directory>

 

 

LanguagePriority は、使用する言語の優先順位を指定します。ここでは、日本を表す ja を先頭に持ってきています。(引用)

LanguagePriority ja en ca cs da de el eo es et fr he hr it ko ltz nl nn no pl pt pt-BR ru sv zh-CN zh-TW

 

AddDefaultCharset は、明示的に指定のないCharset が見つからない場合に、デフォルトで返すCharset を指定します。デフォルトでは、ISO-8859-1(Latin-1)になっているため、日本語環境では文字化けが発生します。このディレクティブは必 ず、無効にしておくか、あるいは明示的にデフォルトのCharset を指定しておく必要があります。明示的に指定する場合、サイトのコンテンツに合わせて、none、shift_jisEUC-JPのどれかをしておけばいいでしょう。(引用)

無効にしてみた。

# AddDefaultCharset ISO-8859-1

 

CentOSなどでApacheをインストールするとデフォルトで入っている "welcome.conf" ファイル。
これは、デフォルト状態でアクセスしたときにウェルカム画面を表示するための設定ファイルです。(引用)

無効にします。

[root@centos ~]# mv /etc/httpd/conf.d/welcome.conf /etc/httpd/conf.d/welcome.conf.org

 

長かった。。Apache を起動します。

Apache 起動

[root@centos ~]# /etc/rc.d/init.d/httpd start
[root@centos ~]# chkconfig httpd on
[root@centos ~]# chkconfig --list httpd
httpd           0:off   1:off   2:on    3:on    4:on    5:on    6:off

 

■確認

ブラウザで、http://localhost にアクセス出きることを確認する。

見えた!終わり!