Apacheの設定

 ホームページを公開するには、WWWのサーバ用ソフトウェアが必要です。その中でもApacheは世界一のシェアを誇っています。 このページでは、Apacheを使用したWebサーバーの設定について掲載します。 今回はTomcatとの連携をさせるためLinuxのパッケージを使用せず、Apacheのコンパイルとインストール作業の手順から記載します。 コンパイルを行うので gcc, make などのパッケージが必要になります。

≪ 項目 ≫
1.コンパイルとインストール
2.httpd.confの設定
3.その他の設定
4.起動と停止
5.エラーの覚書


 1.コンパイルとインストール
 ◆ ダウンロード

 まずはApacheをダウンロードしてきます。Apache Web サイトは下記のとおりです。

 http://www.apache.org/

ダウンロードのページから最新版を入手してきます。当サイトではApache1.3を使用していますので、その最新版の Apache_1.3.31.tar.gz をダウンロードしました。

 ◆ 解凍

 ダウンロードしてきたApacheを解凍します。まずはWebサーバーにアップロードしてから、”/usr/local/src”にコピーします。コンパイル作業は全て”/usr/local/src”の中で行います。
 以下のコマンドを実行して解凍してください。

 # tar zxvf apache_1.3.31.tar.gz

 アーカイブの解凍ができたら”/usr/local/src/apache_1.3.31”というディレクトリィができているの確認してください。

 ◆ コンパイル

 アーカイブの解凍が終わったら、コンパイル作業を行います。コンパイルとインストール作業は”/usr/local/src/apache_1.3.31”のディレクトリィの中で行います。
 まず最初に”./configure”というスクリプトを実行してコンパイル環境を整えます。(”./configure --help”でヘルプが見れます。)

この時、Apacheにモジュールを組み込みますが、コンパイル時に組み込むやり方と、必要な時に動的に追加削除ができるDSO対応のやり方とありますが、Perl や Tomcat との連携のために後者のやり方を掲載します。
以下のコマンド実行してコンパイル環境を整えます。

 # ./configure --enable-rule=SHARED_CORE --enable-module=so --enable-shared=max

何もエラーが出力されなかったら、コンパイルとインストールを実行します。

 # make
 # make install

ここまででエラーが無ければ”/usr/local/apache”というディレクトリィが作成されています。Apacheが起動するか確認してください。
 Apacheの起動の仕方は以下コマンドです。

 /usr/local/apache/bin/apachectl start

 起動したら、早速クライアントのブラウザを起動して、サーバーへアクセスしてみます。アドレスの箇所に”http://(サーバーのIPアドレス)”を入力してApacheの画面が出力されればOKです。

 ◆ 補足

configureコマンドで以下のようなエラーが出た場合

Creating Configuration.apaci in src
Configuration.tmpl is more recent than Configuration.apaci;

これは”Configuration.tmpl”と”Configuration.apaci”の日付を比較した時のエラーなので、BIOSの時間がずれている可能性があります。

 2.httpd.confの設定
 Apacheは”/usr/local/apache/conf”の直下にある”httpd.conf”と言うファイルに、動作上に必要な設定がほとんど記述されています。 インストールした時点で最適に設定されているのでそのままでも動作しますが、その中でも特に内容を確認したほうが良い行を以下にあげます。


項目書式説明
ServerRoot ServerRoot << ディレクトリィ名 >> Apacheの設定ファイルの置き場所を指定します。上記のやり方でインストールした場合は、デフォルトでは”/usr/local/apache/”となっています。インストール先を変更してなければ特に変更する必要は無いでしょう。
ServerAdmin ServerAdmin << 管理者用のメールアドレス >> Apacheのエラーページが表示された時に、連絡用メールとして表示されます。
(HTTPエラーの403や404などの標準のエラーページなどで表示されます。)
DocumentRoot DocumentRoot << HTMLデータを起きたいディレクトリィ >> HTMLデータを置きたいディレクトリィを指定します。(末尾に”/”は付けないでください。)
DirectoryIndex DirectoryIndex << HTMLファイル >> このWEBサーバーにファイル名無しでサーバー名のみでアクセスされた時、デフォルトで表示するHTMLファイルを指定します。
User User << ユーザー名(Linuxのユーザー) >> Apacheが処理を行うユーザーを指定します。
Timeout Timeout << 秒 >> 待機時間を秒で指定します。
MaxClients MaxClients << クライアント数 >> Apacheに接続する最大クライアント数を指定します。


 DocumentRootを変更した場合、ディレクトリィのアクセス制御が無いので追加する必要があります。以下の様に記述してアクセス制御をしてください。

<Directory "HTMLデータを置くディレクトリィ名">
  Options Indexes FollowSymLinks MultiViews
  AllowOverride None
  Order allow,deny
  Allow from all
</Directory>

 Options 制御オプションと呼ばれるパラメータです。上の例の場合はCGIなど動作しない設定になっています。以下に説明を掲載します。

option説明
None制御オプションを全て無効にします。
All制御オプションを全て有効にします。
ExecCGICGIプログラムを許可する。
IncludesSSIを許可する。
IncludesNOEXECSSIを許可するが、#exec, #cmd, #includesによるプログラム実行は禁止にする。
Indexesディレクトリィインデックスの作成を許可する。
MultiViewsContent negotiated MultiViewsを許可する。
FollowSymLinksシンボリックリンクがある場合に、それを辿る事を許可する。
SymLinksOwnerMatchシンボリックリンクがある場合に、それを辿る事を許可する。ただしリンク先が同じ所有者の場合のみ

 AllowOverride はアクセスコントロールファイル(標準では ./htaccess )の設定の変更が可能になりますが、動的に変更可能であるとセキュリティ上好ましくないので None ままにしておきます。
 Orderは評価順の指定、Allowはアクセス許可リストの指定です。特に上記の例と同じで問題無いでしょう。

 設定が完了したのであれば、Apache を起動させて動作確認してください。


 3.その他の設定
 ”httpd.conf”のその他の設定について掲載します。

 ◆ 特定のディレクトリィ内にあるデータをアクセスする

 通常、HTMLデータは”httpd.confの設定”で説明した DocumentRoot で指定しますが、その場所以外でアクセスを許可したい場合は Alias を使用します。
 以下がその例です。DocumentRoot は /home/html/ であるとします。

 Alias /lab-kage/ "/home/lab-kage"

 書式は Alias 別名 ”Linux上でのパス” となります。
 こうする事によって、URLに”http://<< サーバーのアドレス >>/lab-kage”とアクセスすると、実際には”/home/lab-kage”にあるデータをアクセスする事と同じになります。

 ◆ 転送

 ある特定のHTMLにアクセスがあった場合、他のHTMLへ転送をさせた場合は”Redirect”を使用します。
 以下がその例です。

 Redirect /lab-kage.html http://xxxxxx.xx.jp

 書式は Alias << HTMLのパス  >> << 転送先のURL >>

 これで”http://<< サーバーのアドレス >>/lab-kage.html にアクセスすると、
”http://xxxxxx.xx.jp”へと転送されます。

 4.起動と停止
Apacheの起動と終了の仕方は以下の通りです。

 /usr/local/apache/bin/apachectl start  起動
 /usr/local/apache/bin/apachectl stop  停止

 また、設定した”httpd.conf”が正しいか調べるには以下の様にします。

 /usr/local/apache/bin/apachectl configtest

 5.エラーの覚書
configureコマンドで以下のようなエラーが出る

  Creating Configuration.apaci in src
  Configuration.tmpl is more recent than Configuration.apaci

これは”Configuration.tmpl”と”Configuration.apaci”の日付を比較した時のエラーなので、BIOSの時間がずれている可能性があります。


◆”httpd.conf”を設定してApacheを起動したが、403のエラーが出る

 ・アップロードしたファイルの権限を確認しましてください。権限が”755”ならエラーが起きないと思います。
 ・”DocumentRoot”を変更して、HTMLファイルの置き場所を変更した場合です。 ”httpd.conf”の”User”の初期設定は”nobody”です。 なので”nobody”ユーザーがアクセスできるディレクトリィを指定するか、 または”User”を”DocumentRoot”で指定したディレクトリィにアクセスできるユーザーに変更する必要があります。
 ホームディレクトリィ(各ユーザーの専用ディレクトリィ)の直下にHTMLファイルの置き場を作ってしまうと、 ”nobody”ではアクセスできないので、403のエラーが返ってきてしまいます。



(今回、Lab-Kageでは関係なかったので記載しませんが、kernel2.6の場合だと”selinux”が原因で403のエラーが返ってきてしまうそうです。 ”selinux”の止め方については、各自で調べてください。)


先頭に戻る Web設定のページに戻る TOPページに戻る