このサイトは、2011年6月まで http://wiredvision.jp/ で公開されていたWIRED VISIONのコンテンツをアーカイブとして公開しているサイトです。

Web2.0時代の情報発信を考える

時代が要求する情報発信型Webサイト 仮想専用サーバ「SuitePRO V2」が情報発信を加速する

いまさら聞けない!?Webサーバの初期設定

2008年4月 2日

  • 前のページ
  • 2/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ブラウザからアクセスできるか動作確認してみよう。ちゃんと表示できるはずだ。

図2 Webブラウザによる動作確認

  • 前のページ
  • 2/2
フィードを登録する

前の記事

次の記事

Web2.0時代の情報発信を考える

増田(maskin)真樹

IT/NETリサーチャーを経て、ライターとして独立。多数の媒体で執筆活動後、米国シリコンバレーでガレージ起業に参画。帰国後、関心空間、nileport、ソニーblog、@cosmeなど多数のサービスに関与。