いまさら聞けない!?Webサーバの初期設定
2008年4月 2日
Webサーバのセットアップ
では実際に、Webサーバをセットアップしてみよう。『SuitePRO V2』には人気のWebサーバ『Apache HTTP Server Version2.0』がインストール済みだ。追加で必要な作業は、Apacheの設定ファイル「/etc/httpd/conf/httpd.conf」を編集することと、自動起動を設定することだけだ。ここでは、必要不可欠な項目(ディレクティブ)および初期段階から最低限変更した方が良い項目について解説する。
さっそく、viコマンドなどで設定ファイルを編集しよう。ここでは例としてexample.comを使っているが、自分が使用するドメイン名へ適時読み替えて設定をしてもらいたい。作業を始める前に、設定ファイルのバックアップをコピーコマンドで取っておこう。なお、作業はすべてroot権限で行うのも忘れてはならない。
- rootで、設定ファイルを、拡張子originalとしてバックアップ(コピー)。
[root@ns ~]# cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.original
- rootで、viを使って設定ファイル(http.conf)を開く
[root@ns ~]# vi /etc/httpd/conf/httpd.conf
以下、設定ファイルの項目を、上から順にかいつまんで取り上げていく。
はじめに押さえておきたいのは、「KeepAlive」という項目だ。これは、1つのリクエストに対して、複数の通信が発生する場合に影響するものだ。単純なHTML文書ファイルであれば、1つのリクエストに対するレスポンスは1つなので、リクエスト単位で通信を終えてしまっても良いが、画像ファイルを含むHTML文書ファイルのように、表示を完成するにはHTML文書ファイルの他に画像ファイルなどの取得が必要になる場合が多い。KeepAliveをOnにしておけば、こういった場合に効率よい通信を提供することができる。
KeepAlive On
SuitePRO V2では、同時に実行出来るプロセス数は100以上だが、最大値は明らかにされていない。オンラインマニュアルによると、Webサーバを安定動作させるためには、ServerLimitと MaxClientsの値を128程度に指定する必要がある。バックグラウンドでデータベースなどを動作させる場合は常駐するプロセスが増えるので、その分を考慮した値を指定しよう。
<IfModule prefork.c> StartServers 8 MinSpareServers 5 MaxSpareServers 20 ServerLimit 128 MaxClients 128 MaxRequestsPerChild 4000 </IfModule>
サーバ管理者のメールアドレスはServerAdminディレクティブで指定する。
ServerAdmin root@example.com
サーバ名はServerNameディレクティブで「ホスト名:ポート番号」の形で指定する。
ServerName www.example.com:80
なお、行頭に「#」がついている行はコメント行である。ServerAdminディレクティブ、ServerNameディレクティブについて、コメントアウトされているものの行頭にある「#」を削除した上で値を設定しても良いし、新規に各ディレクティブを追加しても良い。
サーバが返すドキュメントファイルに使用する文字コードは、「AddDefaultCharset」ディレクティブで指定できる。新規にWebサイトを公開する場合は、可能なら文字コードをUTF-8に統一し、このディレクティブを有効にしておくと良い。文字コードを指定した場合、既存のHTML文書ファイルが他の文字コードを使っている場合は、UTF-8に変換してからアップロードするのが望ましいが、そういった手間を省いてそのまま公開したい場合には、次のように、このディレクティブをコメントアウトして無効にしておくのが一番簡単だ。
#AddDefaultCharset UTF-8
「DocumentRoot」ディレクティブを見ると、既に"/var/www/html"が指定されている。これがWebサイトのルートとなるので、ここに index.htmlという名前のHTML文書ファイルを置いておけば、Webサイトのトップページとなる。他の場所に変えたいのなら、ここに絶対パスを書けば変更できる。
以上で設定は完了だ。たったこれだけで、Webサーバを動作させることができる。実際に起動する前に、serviceコマンドで設定ファイルに文法的な間違いがないか確認しよう。Webサーバの起動には次のコマンドを使う。設定ファイルに間違いがなく無事に起動すれば、以下のように「Syntax OK」と表示される。
[root@ns ~]# service httpd configtest Syntax OK
設定ファイルに問題がなければWebサーバを起動する。serviceコマンドでhttpdを起動してApache HTTP Serverを動かし、httpdのプロセスが動作していることを確認しよう。
[root@ns ~]# service httpd start Starting httpd: [ OK ] [root@ns ~]# ps ax | grep httpd | grep -v grep 6209 ? Ss 0:00 /usr/sbin/httpd 6217 ? S 0:00 /usr/sbin/httpd 6218 ? S 0:00 /usr/sbin/httpd 6219 ? S 0:00 /usr/sbin/httpd 6220 ? S 0:00 /usr/sbin/httpd 6221 ? S 0:00 /usr/sbin/httpd 6222 ? S 0:00 /usr/sbin/httpd 6223 ? S 0:00 /usr/sbin/httpd 6224 ? S 0:00 /usr/sbin/httpd
実際にHTMLドキュメントを取得できるかを確認してみよう。まずは、次のようにechoコマンドで「/var/www/html/index.html」ファイルを作成する。このファイルをwgetコマンドでWebサーバ経由で取得し、取得したファイルが「/var/www/html/index.html」と差異がないことをdiffコマンドで確認してみよう。ちなみに、Apache HTTP Serverは、apacheユーザの権限で実行されるので、「/var/www/html/index.html」ファイルの所有者をapacheユーザへ変更するために、chownコマンドを実行している。
[root@ns ~]# echo "top" > /var/www/html/index.html [root@ns ~]# chown apache:apache /var/www/html/index.html [root@ns ~]# exit [maskin@ns ~]$ cd [maskin@ns ~]$ wget http://localhost/ --09:40:10-- http://localhost/ => `index.html' Resolving localhost... 127.0.0.1 Connecting to localhost|127.0.0.1|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 4 [text/html] 100%[====================================>] 4 --.--K/s 09:40:10 (651.04 KB/s) - `index.html' saved [4/4] [maskin@ns ~]$ diff index.html /var/www/html/index.html
こうしてサーバ上での確認作業ができたら、次はクライアントとなるパソコンのWebブラウザからアクセスできるか動作確認してみよう。ちゃんと表示できるはずだ。
フィードを登録する |
---|
Web2.0時代の情報発信を考える
過去の記事
- デザインや機能だけでは勝負できない時代を勝ち抜く2008年4月25日
- MTOSに触れてみよう2008年4月25日
- SuitePRO V2にMTOSをインストールする2008年4月23日
- SuitePRO V2にMTOSをインストールする準備をしよう2008年4月23日
- MTOSで構築する情報発信型Webサイト2008年4月23日