Migaro. 技術Tips

                       

ミガロ. 製品の技術情報
IBMiの活用に役立つ情報を掲載!


Webサーバー(IBM HTTP Server、IHS)複数のインスタンス作成方法

IBM HTTP Server は単一インストール環境(1つの実行形式ファイル)でも、複数のWebサーバーインスタンスを実行できます。例えば、開発Webサーバーインスタンス、運用Webサーバーインスタンスのようにポート番号違いで複数のサービスを登録/実行することが可能です。Tipsでは、Windows環境のIBM HTTP Server(IHS)で複数のWebサーバーインスタンスを構築する方法を紹介します。

前提

インストール環境について

IBM HTTP Server(IHS)が既にインストールされていることを前提としています。

  • Windows64bit環境
  • デフォルトのパス「C:\Program Files (x86)\IBM\HTTPServer\」にインストール済
  • ポート番号 80

新規インスタンス作成について

作成する新規インスタンスは、既存のWebサーバーの実行形式ファイルを利用して作成します。
Webサーバーの構成ファイルを複製して、ログ出力先等、パスの情報を変更することで、新規インスタンスを定義します。
Tipsでは、開発用のWebサーバーインスタンス(ポート番号:10000)を作成する手順で説明します。

新規インスタンス作成手順

新規インスタンス用 フォルダの作成

フォルダの追加

新規インスタンス用のフォルダを作成します。
Tipsでは、「C:\Program Files (x86)\IBM\HTTPServer\」に新規Webサーバーインスタンスに必要なフォルダを追加します。

  • ログ用フォルダ「C:\Program Files (x86)\IBM\HTTPServer\logs_dev」
  • Webディレクトリ用フォルダ「C:\Program Files (x86)\IBM\HTTPServer\htdocs_dev」
  • 設定ファイル用フォルダ「C:\Program Files (x86)\IBM\HTTPServer\conf_dev」

設定ファイル(httpd.conf等)のコピー

既存のWebサーバー設定ファイルをコピーします。

  • 「C:\Program Files (x86)\IBM\HTTPServer\conf\httpd.conf」
  • 「C:\Program Files (x86)\IBM\HTTPServer\conf\magic」
  • 「C:\Program Files (x86)\IBM\HTTPServer\conf\magic.default」
  • 「C:\Program Files (x86)\IBM\HTTPServer\conf\mime.types」
  • 「C:\Program Files (x86)\IBM\HTTPServer\conf\mime.types.default」

を「C:\Program Files (x86)\IBM\HTTPServer\conf_dev\」にコピーします。

コピーした設定ファイル(httpd.conf)のリネーム

「C:\Program Files (x86)\IBM\HTTPServer\conf_dev\」にコピーした「httpd.conf」を「httpd_dev.conf」にリネームします。

「httpd.conf」→ 「httpd_dev.conf」

IBM HTTP Server 設定ファイルの設定変更

次に、コピーした「httpd_dev.conf」をテキストエディタ等で開き編集します。
変更の必要がある項目は以下です。

PidFile設定

pidファイルは起動時にApacheのプロセスIDを保存するファイルです。
既存のpidファイルと別にする必要があるため変更します。

【変更前】PidFile logs/httpd.pid
【変更後】PidFile logs_dev/httpd_dev.pid

待ち受けポート設定

待ち受けポート番号を変更します。既存の設定は80番ポートで待ち受けしています。
新規Webインスタンスは10000番ポートで待ち受けをします。

【変更前】Listen 0.0.0.0:80
【変更後】Listen 0.0.0.0:10000

サーバー名設定

サーバー名設定を変更します。IPアドレスが記載されているため待ち受けポートと同じ10000に変更してください。

【変更前】ServerName [サーバーホスト名]:80
【変更後】ServerName [サーバーホスト名]:10000

DocumentRoot設定

Webサーバーのドキュメントルートを設定します。

【変更前】DocumentRoot "C:/Program Files (x86)/IBM/HTTPServer/htdocs/"
【変更後】DocumentRoot "C:/Program Files (x86)/IBM/HTTPServer/htdocs_dev/"

ドキュメントルート変更に合わせて、<Directory>ディレクティブを変更してください。

【変更前】<Directory "C:/Program Files (x86)/IBM/HTTPServer/htdocs">
【変更後】<Directory "C:/Program Files (x86)/IBM/HTTPServer/htdocs_dev">

Mime設定

個別のMimeType設定を行うために、mime.typesファイルへのパスを変更します。

【変更前】TypesConfig conf/mime.types
【変更後】TypesConfig conf_dev/mime.types

拡張モジュールの定義も変更します。

【変更前】
<IfModule mod_mime_magic.c>
    MIMEMagicFile conf/magic
</IfModule>
【変更後】
<IfModule mod_mime_magic.c>
    MIMEMagicFile conf_dev/magic
</IfModule>

ログ出力先設定

エラーログの出力先を変更します。

【変更前】ErrorLog logs/error.log
【変更後】ErrorLog logs_dev/error.log

アクセスログの出力先を変更します。

【変更前】CustomLog logs/access.log common
【変更後】CustomLog logs_dev/access.log common

デフォルトの設定では変更する箇所は以上になります。
ログの出力をカスタマイズしている場合や、その他ログ出力を定義している場合には、パスを変更してください。

Windowsサービス設定

サービスへの登録方法

サービス登録のコマンド

「httpd_dev.conf」ファイルの編集完了後、「httpd_dev.conf」ファイルを元にサービス登録します。
Windowsのサービスに登録するには、httpdコマンドを使用します。
コマンドプロンプトを管理者権限で起動後、cdコマンドでカレントディレクトリを「”Apacheのインストールパス”\bin」に変更してください。

パスに半角スペースを含む場合には、cdコマンドのパスをダブルコーテーションで括る必要があることに注意ください。

cd "C:\Program Files (x86)\IBM\HTTPServer\bin"

カレントディレクトリ変更後、httpdコマンドを実行します。
以下のコマンドでは、「C:/Program Files (x86)/IBM/HTTPServer/conf_dev/httpd_dev.conf」の設定ファイルを元に、「IBM HTTP Server V8.5_DEV」という名前でサービスに登録できます。

httpd -n "IBM HTTP Server V8.5_DEV" -k install -f "C:/Program Files (x86)/IBM/HTTPServer/conf_dev/httpd_dev.conf"

httpd_dev.conf設定ファイルに問題がなければ、サービスからWebサーバーが起動できます。

設定ファイルの確認方法

Webサーバーインスタンスが起動できない場合、編集した設定ファイルに誤りがある可能性が考えられます。設定ファイルの構文をチェックするにはhttpdコマンドの 「-t」 オプションを使用します。

httpd -t -f "C:/Program Files (x86)/IBM/HTTPServer/conf_dev/httpd_dev.conf"
httpd -t オプションによる構成ファイルの確認

設定ファイルに問題がない場合は、「Syntax OK」が表示されます。
問題がある場合には、原因と行目を表示してくれます。
Webサーバーが起動できない場合には「httpd -t」で設定ファイルの確認をしてください。

サービスからの削除方法

登録したサービスを削除したい場合があると思います。
削除は、登録と同じくカレントディレクトリを「Apacheのインストールパス\bin」へ変更後、httpdコマンドの 「-n」 オプションを使用します。

cd "C:\Program Files (x86)\IBM\HTTPServer\bin"

「IBM HTTP Server V8.5_DEV」という名前のサービスを削除するには以下のコマンドになります。

httpd -n "IBM HTTP Server V8.5_DEV" -k uninstall

おわりに

Tipsでは、単一インストール環境(1つの実行形式ファイル)から、複数のWebサーバーインスタンスの作成方法をご紹介しました。次回Tipsでは、以前のTipsで作成したWebSphere Application Serverのプロファイルと、本Tips記事で作成した開発用の新規Webサーバーインスタンスを「WebSphere Customization Toolbox」に含まれる、「Web サーバー・プラグイン構成ツール」で連携する手順をご紹介します。