|
|
Webサーバーの構築
|
WebサーバーについてApacheの構成と設定の準備全般的な動作環境の設定コンテナディレクティブの形式コンテナディレクティブの設定ドキュメントルートの設定等ユーザーディレクトリの設定バーチャルホストの設定CGIの実行許可の設定ユーザー認証機能の設定httpdのコントロールhttpdの動作チェックポートフォワーディングの設定 |
Apacheの構築に必要なファイルこの コンテンツ に従って普通に WBEL や CentOS を インストール すると、 Apache とその設定に必要なファイル類は既に 構築中のLinuxサーバー にインストールされているはずです。 以下に、WBELおよびCentOSにインストールされているApacheで、操作や設定が必要なファイルを示します。 それ以外の ディストリビューション をお使いの場合や、標準添付以外のパッケージをインストールした場合には、ファイル名やディレクトリの パス が以下とは異なる場合がありますので注意してください。
Apacheの必要ファイル一覧 Apacheの本体プログラムは"/usr/sbin/httpd"ですが、これを直接呼び出すことはまずありません。 実際にはこの"/usr/sbin/httpd"を用いて、起動や終了を容易にコントロールできるように記述された スクリプト である "/etc/rc.d/init.d/httpd" を用います。 また"/etc/rc.d/init.d/"の シンボリックリンク が"/etc/init.d/"になっていますので、スクリプトは "/etc/init.d/httpd" でも呼び出すことができます。 例えば、 "/etc/init.d/httpd start" →httpdの起動 "/etc/init.d/httpd stop" →httpdの停止 という使い方になります。 |
||||||||
|
|
"/etc/rc.d/init.d/"
には
パス
が通っていません
Apacheの設定ファイルの中心は "/etc/httpd/conf/httpd.conf" です。 Apacheはほとんどの動作についてこの"/etc/httpd/conf/httpd.conf"の内容を参照します。 またApacheの補助プログラムの多くは、モジュールとして最初からApache組み込まれる形になっていて、そのモジュールの設定ファイルのいくつかは、"/etc/httpd/conf.d/"以下にまとめて収められています。 またこのディレクトリに"/etc/httpd/conf/httpd.conf"の書式に基づいて部分的に記述を行った テキスト ファイルを、 "*.conf" というファイル名で保存すると、その内容は"/etc/httpd/conf/httpd.conf"とみなされて動作します。 "/etc/httpd/conf/httpd.conf"の記述が煩雑になってきたときは、設定のひとまとまりを独立させて "/etc/httpd/conf.d/*.conf" として保存するようにすると整理がしやすくなります。
|
||||||||
"/etc/httpd/conf/httpd.conf"の編集
まず、
サブネット
内の適当な
クライアント機
から
SSHクライアント
で
構築中のLinuxサーバー
に
ログイン
します
それから
su
コマンド
で
アカウント
を
"root"
に変更し、
cp
コマンドでバックアップを作成した後、
nano
エディタで
"/etc/httpd/conf/httpd.conf"
を開きます
↓
nanoで"/etc/httpd/conf/httpd.conf"を開く "/etc/httpd/conf/httpd.conf" は、 httpd が動作中でも自由に書き換えることができます。 ただし、 WBEL や CentOS の サーバー アプリケーション は通常、設定ファイルを保存しただけでは設定は反映されません。もちろんhttpdもその例外ではありません。 サーバーアプリケーションの設定ファイルは、通常サーバーアプリケーションの起動時に参照されて読み込まれますから、設定ファイルの保存後にサーバーアプリケーションの再起動を行うか、設定ファイルの再読み込みのコマンドを実行しなければ、設定ファイルの修正は有効になりませんので注意してください。
httpdの再起動、設定ファイルの再読み込みについては、
|
|||||||||
httpd設定の準備httpd の設定ファイル "/etc/httpd/conf/httpd.conf" は、 デフォルト でも1,000行に及ぶ巨大な設定ファイルです。
httpd_conf_wbel3_org.txt
←WBEL3のデフォルトのhttpd.conf
httpd_conf_cent3_org.txt
←CentOS3のデフォルトのhttpd.conf
httpd_conf_wbel4_org.txt
←WBEL4のデフォルトのhttpd.conf
httpd_conf_cent4_org.txt
←CentOS4のデフォルトのhttpd.conf
httpd_conf_cent5_org.txt
←CentOS5のデフォルトのhttpd.conf
もっとも、その大部分は "#" で始まる解説のためのコメント文で占められていますから、実際の設定部分はその一部に過ぎません。 |
|||||||||
|
|
とはいえ、 sshd や vsFTPd になどと比べると非常に多くの設定項目がありますし、設定内容そのものも、"YES"や"NO"で選択するタイプよりも具体的なパラメータを入力するパターンが多いのが特徴です。 従って、自分ではきちんと設定したつもりでも必ず「思い違い」や「見落とし」が必ずあります。 比較的設定項目の少ない vfFTPd や sshd などは設定の間違いを見つけやすいので、一通りの設定をしてから デーモン を起動させても大丈夫です。 しかしhttpdのように設定項目の多い サーバー アプリケーション では、一度にたくさんのキーワードに設定を行うと、不具合があったときに後から原因のキーワードを見つけるのは大変な作業になります。 httpdの設定のコツは、「すべてを完璧に設定してから動作チェック」ではなく、 「実際に動作させてみながら試行錯誤で設定してゆく」 のが、望ましい設定手順といえるでしょう。 そのためには、設定をチェックするためのhtmlファイルを、 FTP で クライアント機 から サーバー機 に送るための環境を作っておく必要があります。 ドキュメントルートのユーザーパーミッションの変更httpd では、 サーバー 上の コンテンツ 収容ディレクトリ (ドキュメントルート) として、 デフォルト では "/var/www/html/" が指定されています。
一般的には、 クライアント機 上で、ホームページ作成用の適当な アプリケーション を使って作成したものを、 FTPクライアント で サーバー に送信します。
ただ、デフォルトの"/var/www/html/"は、所有者、所有グループとも
"root"
で、
パーミッション
は
"755"
に設定されていますから
そこで、これを可能にするために、この"/var/www/html/"と、 CGI の スクリプト を格納する "/var/www/cgi-bin/" の二つのディレクトリの所有者と所有グループを、 chown コマンドで、あなた専用の一般ユーザーアカウントに変更してしまいましょう。 SSHクライアント から 構築中のLinuxサーバー に ログイン して、以下のように操作してください。 これで、"/var/www/html/"と"/var/www/cgi-bin/"の二つのディレクトリは、ユーザーアカウント"tanaka"で書き換えが可能になりました。 "tanaka"にFTP接続で上位ディレクトリ参照許可を与えるもしも、 ユーザーアカウント "tanaka" が FTP 接続で、 ホームディレクトリ より上位のディレクトリを参照できないように設定されているときは、"/var/www/html/"と"/var/www/cgi-bin/"に FTPクライアント から直接ファイルを送信することができません。 そこで、この制限を解除してしまいましょう。
vsFTPd
の「ローカルユーザーからの接続の設定」の「上位ディレクトリの参照許可の設定」
これで"tanaka"からFTPで 構築中のLinuxサーバー に接続して、直接"/var/www/html/"と"/var/www/cgi-bin/"にファイルを送信できるようになります。 設定が終わったら、以下のようにFTPクライアントから接続してみてください。 接続が完了すると、サーバー側の"/var/www/html/"と"/var/www/cgi-bin/"の所有者が数字(この場合は500)で表示されていることがお解かりと思います( ○ の部分です)。 この "500" という数字は、 構築中のLinuxサーバー 上のユーザーアカウント"tanaka"を示すIDです。
サーバー側ディレクトリを"/var/www/"に指定して接続
↓接続
これで、"tanaka"はFTP接続で"/var/www/html/"と"/var/www/cgi-bin/"にファイル送信が可能になっているはずですので、適当なファイルで送受信を試してみてください。
|
||||||||
httpd設定の裏ワザhttpd の設定は普通、 1. nanoエディタ でhttpdの設定を修正する。 2."httpd -t"などの コマンド で、httpdの設定をチェックする。 3.httpdを再起動する。 4. Webブラウザ でhttpdの動作を確認する。 という作業の繰り返しになります。 |
|||||||||
|
|
もちろんそれ例外にも、 FTP で サーバー に htmlファイル を送信したり、コマンド操作でサーバー上のディレクトリやファイルを操作したり、という操作も途中に入ることになります。 これらの操作は、すべて一台の クライアント機 から行うことができます。つまり、 SSHクライアント 、Webブラウザ、 FTPクライアント を同時に起動し、それぞれの画面を切り替えながら操作するわけです。 ただ、上の 1.2.3. はいずれもSSHクライアントから行う操作ですがこれを一つの プロンプト から行うのはちょっと面倒です。 なぜなら、変更されたhttpdの設定内容を反映させるには必ずhttpdの再起動が必要ですから、その再起動のコマンドを実行するには一度nanoエディタを終了しなければならないからです。 つまりこの方法では、httpdを再起動して動作確認を行う度に、一度閉じた1,000行にも及ぶ"/etc/httpd/conf/httpd.conf"を開き直し、設定中だった行に移動する、という作業が必要になってしまいます。 こういった面倒を無くすには、複数のSSHクライアントで 構築中のLinuxサーバー に ログイン するという方法があります。 つまり、一つ目のSSH接続をnanoエディタ専用に、二つ目のSSH接続を"http -t"や"/etc/init.d/httpd restart"の実行用に、という具合に複数起動してしまうわけです。
複数のSSHクライアントを起動して役割分担させる
nanoエディタ専用のSSHクライアントでは"/etc/httpd/conf/httpd.conf"を開きっぱなしにしておき、必要なところまで編集したら
Ctrl
+
o
で保存作業だけ行うようにします
一方コマンド実行用のSSHクライアントでは、設定ファイルの保存後に、"http -t"
このような使い方をすることで、一台のクライアント機からとても効率よくhttpdの設定を行うことができるようになります。
|
||||||||
"/etc/httpd/conf/httpd.conf"の構成httpd の中心となる設定ファイル "/etc/httpd/conf/httpd.conf" は、 1.全体的な環境の設定 2.サーバーの主設定 3.バーチャルホストの設定 の三つのセクションから成り立っています。 ただ、初心者のうちはこのままのセクション分けでは説明が難しいので、この コンテンツ では設定の目的ごとに細かく分類して説明していきます。 また、 デフォルト の "/etc/httpd/conf/httpd.conf" に記述されているキーワードの設定を説明するときは、その行番号で"/etc/httpd/conf/httpd.conf"の中の位置を示します。
従って、
nanoエディタ
で編集を行うときは、
もちろん、設定ファイルの修正を行うと行番号は少しずつずれてきますので、行番号でキーワードを探すときは「ほぼ何行目」というイメージで解釈してください。
|
|
|
Webサーバーについて
<<Previous
|
Next>>
全般的な動作環境の設定
|
| このサイトは既に更新を終了していますが、今のところ店じまいの予定はありません。 リンクフリー ですので、趣味や勉強のためでしたら、引用、転用、コピー、朗読、その他OKです。このサイトへのリンクについては こちら をご覧ください。 |
| ”Linux”は、Linus Torvalds 氏の各国における登録商標です。”Red Hat”及びRed Hatのロゴおよび Red Hat をベースとしたすべての商標とロゴは、各国におけるRed Hat, Inc. 社の商標または登録商標です。その他のプログラム名、システム名、製品名などは各メーカー、ベンダの各国における登録商標又は商標です。 |