HTTPサーバーを STRTCPSVR *HTTP
によって開始させることがわかっても、これだけでは System i の
コンテンツをWebで公開することができません。どの部分を公開できるのかや、どのように公開するかは
「HTTP構成」
によって決まります。
HTTP構成は
コマンド: WRKHTTPCFG
+ [実行キー]
によって次のように表示されます。HTTP構成は 元来、IBMオリジナルHTTPサーバーが使用しますが、
EnterpriseServer が提供するHTTPサーバーである「Alaska」も、このHTTP構成によって構成されます。
WRKHTTPCFG
を使用するには、*IOSYCFG
権限が必要となります自分が使用しているユーザーに *IOSYSCFG 権限が無い場合は QSECOFR を使用してください。
また、先に解説したように WRKHTTPCFG
で実際の入力/修正を行う場合には CCSID = 5035 が必要です。
よって、その場合の WRKHTTPCFG の使用は
CHGJOB CCSID(5035) WRKHTTPCFG CHGJOB CCSID(5026) CHGJOB CCSID(65535)
の順に行わなくてはなりません。もちろん PCOMM も 「 939 日本語英数小文字拡張 」 で使用します。
WRKHTTPCFG の内容
WRKHTTPCFG
によって表示される内容は下記のように長いものですが恐れる必要はありません。
この内容は物理ファイル QUSRSYS/QATMHHPC
、メンバー CONFIG の内容が表示されているだけです。
また、各行の先頭に文字 「 # 」 であるのは、それが コメント行 であることを意味しています。
そうして良く眺めてみるとほとんどはコメント行であることがわかります。
( WRKHTTPCFG の記述はOS/400リリースによって多少、異なります。)
WRKHTTPCFG
の内容のほとんどがコメント行であることがわかったところでコメント行をはずした有効な
行だけを下記に紹介します。その中でも理解しておかなければならないことは、そう多くはありません。
この中で AddIcon
や AddType
は省略値としてはじめから記述されていますので特に理解を求める
必要はありません。すると、これらを除いた次の行だけが理解の対象となります。
こうして見るとかなり対象が絞られてきましたので見やすくなりました。
HostName 218.44.135.18
System i のIPアドレスを指定します。Alaskaを使用する場合はこの指定は必須です。
Port 80
通常、HTTPサーバーは PORT番号=80 なのでこの指定が必要です。
Alska は開始時点でPORTの指定ができますので、この指定は無視されます。
Enable GET Enable HEAD Enable POST
ブラウザが入力値を投入する命令として GET, POST, HEAD
などが使用されますが、
それらを使用可能にするためには Enable の指定が必須です。
通常 HEAD
を使用することは滅多にありませんが GET
、POST
だけは Enable にしておいてください。
Map /cgi-bin/* /cgi-bin/*.pgm Exec /cgi-bin/ /QSYS.LIB/CGIBIN.LIB/*
Map
と Exec
の対は CGI の記述を定義します。
Map
の /cgi-bin/*
とは /cgi-bin/..... とURLで入力された値は/cgi-bin/*.pgm と
解釈することを意味します。例えば /cgi-bin/CGI001 は /cgi-bin/CGI001.pgm と内部では
変換されます。さらに
Exec /cgi-bin/* /QSYS.LIB/CGIBIN.LIB/*
と定義されていますので、これは/QSYS.LIB/CGIBIN.LIB/CGI001.PGM と解釈されます。つまり、
/cgi-bin/CGI001 /QSYS.LIB/CGIBIN.LIB/CGI001.PGM
と内部では解釈されます。
このような変換を行うのは URLに表示されるCGI のありかなどをブラウザを眺めている使用者から
隠蔽するためです。悪意のある第3者からの保護と考えてよいでしょう。
Pass /AS400-NET.USR/* Pass /QATMHSTOUT/* Pass /cgi-bin/*
Pass はブラウザからのアクセスを許可するIFS のディレクトリーを記述します。
Pass が定義されていないと、いくら静的なHTMLを System i のIFSに保管しておいても外部からは
見ることはできません。Pass /AS400-NET.USR/*
とは、ディレクトリー /AS400-NET.USR以下の
ディレクトリーへのアクセスをすべて許可することを意味します。
EnterpriseServerを使用するにはこの3つのPass記述が必須です。
DefaultFsCCSID 5026 DefaultNetCCSID 943
省略値のCCSIDが 5026 であることを指定します。
DnsLookup Off
HTTPサーバーが DNSサーバーを探しに行かないように設定することによって、HTTPサーバーの動作を
早くすることができます。