Apacheの設定 |
---|
ホームページを公開するには、WWWのサーバ用ソフトウェアが必要です。その中でもApacheは世界一のシェアを誇っています。
このページでは、Apacheを使用したWebサーバーの設定について掲載します。
今回はTomcatとの連携をさせるためLinuxのパッケージを使用せず、Apacheのコンパイルとインストール作業の手順から記載します。
コンパイルを行うので gcc, make などのパッケージが必要になります。 | ||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||
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”と言うファイルに、動作上に必要な設定がほとんど記述されています。
インストールした時点で最適に設定されているのでそのままでも動作しますが、その中でも特に内容を確認したほうが良い行を以下にあげます。
DocumentRootを変更した場合、ディレクトリィのアクセス制御が無いので追加する必要があります。以下の様に記述してアクセス制御をしてください。 <Directory "HTMLデータを置くディレクトリィ名"> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny Allow from all </Directory> Options 制御オプションと呼ばれるパラメータです。上の例の場合はCGIなど動作しない設定になっています。以下に説明を掲載します。
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ページに戻る |