version 11.2 (Modified)
4D と 4D Serverは透過的また動的に、あなたのデータベースをWebに配信するWebサーバを含んでいます。
この節では4Dデータベースの公開やブラウザからの接続を行うのに必要なステップと、接続管理の処理について説明します。
4DデータベースをWebに公開する条件
4Dや4D Serverを使用して4Dデータベースを公開するためには、以下が必要です:
・"4D Web Application" ライセンス。詳細は4Dのインストールガイドを参照してください。
・Web接続はTCP/IPを使用してネットワーク経由で行われます。そのため:
- マシンにTCP/IPがインストールされていて、正しく設定されていなければなりません。詳細はコンピュータまたはOSのマニュアルを参照してください。
- ネットワーク接続にSSLを使用したい場合は、必要なコンポーネントが正しくインストールされているか確認します (SSLプロトコルの使用の節参照)。
・以上の点をすべてチェックした後に、4D内でWebサーバを開始します。この点についてはこの節の後で説明します。
公開認証 (リモートモードの4D)
デフォルトで、すべての4DクライアントマシンからデータベースをWebに公開できます。しかし個々の4DリモートマシンごとにWeb公開を行うかどうかを、4Dのパスワードシステムを使用してコントロールできます。
実際、4D Webライセンスは4D Serverによりプラグインライセンスとして扱われます。すなわちプラグインと同じ方法で、Webサーバライセンスを使用する権限を特定のユーザグループに制限しなければなりません。
これを行うには、4Dでツールボックスのグループページを表示します (これらのパラメタを変更する権限を持っていなければなりません)。
左のリストからグループを選択し、プラグインアクセス権エリアのWeb Serverの隣のアクセスオプションをチェックします:
上記の作業により、許可されたグループのユーザだけがWebサーバとして4Dマシンを公開できます。
Mac OS XでWebサーバを設定する
Mac OS Xでは、Webサーバ公開用に予約されたTCP/IPポートは特別なアクセス権を必要とします。つまりマシンの“root”ユーザだけがこれらのポートを使用してアプリケーションを起動できます。
これらのポートは0から1023です。デフォルトで4Dデータベースは標準モードで80番、SSLモードで443番を使用します。
“root”ユーザで接続せずに、デフォルトのTCPポートで4Dデータベースを公開しようとすると、警告ダイアログボックスが表示されます:
Mac OS XでWebサーバを起動するには、以下の4つの方法があります:
・4D Webサーバが使用するTCPポートを変更する
この場合1023より大きなポート番号、例えば標準モード用に8080、SSLモード用に8043を使用するなどします。
この設定はデータベースの環境設定 (Webサーバ設定 の節参照) またはSET DATABASE PARAMETER コマンドを使用して行います。この場合、データベースに接続するURLでポート番号を指定しなければなりません (例えば、http://www.mydatabase.com:8080/pages/mypage.html や https://www.mydatabase.com:8043/pages/payment.html)
・“root”ユーザとしてログインする
デフォルトで、Mac OS Xが動作するマシンでは“root”ユーザは無効になっています。ですのでまず“root”ユーザを有効にして、それからこのユーザ名でログインします。
“root”ユーザはApple者から提供されるNetInfo Managerユーティリティ (Applications:Utilitiesフォルダ) を使用して有効にできます。
ユーティリティを起動したら、ドメインメニューのセキュリティコマンド内、rootユーザを有効にするを選択します。最初に同じメニュー内にある認証... コマンドでマシンの管理者であることを認証させなければなりません (管理者のユーザ名とパスワードを入力)。
この操作に関する情報は、Mac OS Xのドキュメントを参照してください。
“root”ユーザが作成されたら、このセッションを閉じ (アップルメニュー) 、“root”ユーザ名を使用してログインします。その後ポート80や443を使用したWebサーバを開始します。
・ポート転送
この3番目のソリューションでは、Mac OS X 下で “root” ユーザにならずに、またURLにポート番号を指定したりせずに、4D Webデータベースを公開することを可能にします。これはポート転送を使用します。システムレベルでTCPポート80番で受信したリクエストを、(1023よりも上の) 4Dが使用するポート番号に転送します。この方法は保護された接続には使用できません (TCPポート443は転送できません)。
この処理を実行するには、“root”ユーザとして接続し、ターミナルアプリケーションでUnixコマンドを使用します。
Mac OS Xでポート転送を設定するには、以下の手順を行います (IPアドレスが192.168.93.45とします):
1. rootユーザでセッションを開きます (前段落を参照してください)。
2. ターミナル プログラムを開きます。
このプログラムは"アプリケーション:ユーティリティ" フォルダにあります。
3. “su” (“substitute user” 特別アカウント) に続けてrootユーザのパスワードを入力します。
4. 以下のコマンドを入力します:
ipfw add 400 fwd 192.168.93.45,8080 tcp from any to 192.168.93.45 80
もちろん、“192.168.93.45”をあなたのIPアドレスで置き換えてください。
数字400はこの処理の参照番号です。
5. ターミナル プログラムを終了します。
6. 標準ユーザとして4Dアプリケーションを開始します。
7. データベースの環境設定で、Web公開TCPポート番号を8080に設定します。
以上の操作で、Mac OSXはポート80で受け取ったリクエストをポート8080に転送する準備ができました。この転送はユーザからは見えません。
このモードを無効にするには:
1. ターミナルプログラムを開始して、以下のコマンドを入力します:
ipfw delete 400
ポート80で受信したリクエストは、もう8080番に転送されません。
・特別なアプリケーションでポート番号を開く
このソリューションは、Webポートの待ち受け開始を、そのための権限をもつHelperToolという特別なアプリケーションに委任します。このメカニズムは4D (すべてのモード)、4D Server そして4D Volume Desktop実行可能アプリケーションで機能します。
HelperToolアプリケーションは4Dソフトウェアに含まれています。これはシステムの特定の場所にインストールされなければなりませんが、マシン上ではじめて <1024 のポートを開く際に自動でインストールされます。ユーザはツールがインストールされようとしていることが通知され、管理者のユーザ名とパスワードの入力を求められます。この処理は一回だけ必要です。
アプリケーションは"com.4D.HelperTool"という名称で、"/Library/PrivilegedHelperTools/"フォルダに置かれます。一度これを行うと、4D Webサーバを開始したり停止したりできます。
Note: このメカニズムが動作するにはMac OS X 10.4.6以降が必要です。これより以前のバージョンのシステムをお使いの場合、他の公開ソリューションを使用します。
4D Webサーバの開始
4D Webサーバは3つの方法で起動できます:
・4Dの実行メニューまたは4D ServerのHTTPサーバページ (HTTPサーバ開始ボタン)を使用する。これらのコマンドを使用していつでもWebサーバを開始したり停止したりできます:
4D:
4D Server:
・データベースの起動時に自動で公開する。データベースを自動でWebに公開するには、アプリケーション環境設定の設定ページ、Webテーマを開きます:
Webサーバの公開エリアで、起動時にデータベースを公開チェックボックスにチェックをしてOKをクリックします。これを行えば、4Dや4D Serverを起動するたびにWebが自動で公開されます。
・START WEB SERVERコマンドを呼び出してプログラムで開始する。
Tip: データベースをWebに公開するために、4Dを終了して再起動する必要はありません。必要な時にWebサーバを停止し、また開始することができます。これを行うには実行メニューを使用する、HTTPサーバ開始ボタンを使用する、またはSTART WEB SERVER と STOP WEB SERVERコマンドを使用します。
Webサーバのテスト
Webサーバテスト メニューコマンドを使用してビルトインのWebサーバが正しく実行されているか確認できます (4Dのみ)。このメニューはWebサーバが実行されているときに実行メニューからアクセスできます:
このコマンドを選択すると、4Dアプリケーションが公開しているWebサイトのホームページが、デフォルトWebブラウザに表示されます:
このコマンドでWebサーバが起動され、ホームページが表示可能かなどを検証できます。ページは、Webブラウザが実行されているマシンのIPアドレスを指定する標準のショートカットである、ローカルホストのURLを使用して呼び出されます。コマンドはアプリケーション環境設定で設定されたWeb公開ポート番号を考慮に入れます。
Web上に公開された4Dデータベースに接続する
4DデータベースをWebに公開した後、Webブラウザから接続ができるようになります。これを行うには:
・Webサイトが登録名を持つ場合 (例 “www.flowersforever.com”)、ブラウザのアドレス欄にその名前を入力し、Enterキーを押します。
・Webサイトに登録名がない場合、マシンのIPアドレス (例 123.4.567.89) をブラウザのアドレス欄に入力し、Enterキーを押します。
この時点で、ブラウザにはWebサイトのホームページが表示されるはずです。データベースを標準の設定で公開しているなら、4D Webサーバのデフォルトホームページが表示されます。
以下のような状況になるかもしれません:
1. 接続に失敗し、以下のようなメッセージが表示される “...サーバが接続を許可していないか、応答できないようです...”。
この場合、以下の点をチェックします:
・入力したWebサーバアドレスまたはIPアドレスが正しいか確認する。
・4D/4D Serverが起動され、Webサーバが開始されているか確認する。
・WebのTCPポートがデフォルトのWeb TCPポート以外に設定されていないか確認する (状況4参照)。
・サーバマシンとブラウザマシン両方でTCP/IPが正しく設定されているか確認する。両マシンは同じサブネットに存在するか、ルータが正しく設定されていなければなりません。
・ハードウェアの接続を確認する。
・ローカルサイトではなく、インターネットやイントラネット上の誰かが提供しているWebデータベースに接続しようとしている場合、メッセージは実際の状況を表しているかもしれません。この場合、後ほど試すか、Webプロバイダに連絡します。
2. 接続したがHTTP 404 "ファイルが見つかりません"エラーを受け取った。これはホームページが提供されていないことを意味します。この場合、データベースの環境設定で定義した場所に、ホームページが存在するか確認するか (Web Server 設定ページ) 、またはSET HOME PAGE コマンドを使用します。.
3. 接続はできたが、“メニューバー/このデータベースはWebに公開する準備ができていません。メニューバーを作成してください。”というメッセージのWebページが表示される。これは正しくコンテキストモードで公開sれたデータベースに接続できたが、ホームページもメニューバーも定義されていないことを意味します (コンテキストモードでは、HTMLページが指定されていない時、4Dはメニューバー #1 をデフォルトホームページとして使用します)。詳細ははじめてのWebサーバの節を参照してください。
4. 接続はしたが、期待したWebページが表示されなかった。これは複数のWebサーバが同じマシン上で動作しているときに発生します。例えば:
・すでにWebサーバが起動されているWindows上で1つの4D Webデータベースを実行した。
・同じマシン上で複数の4D Webデータベースを実行した。
このような状況では、4D Webデータベースのポート番号を変更する必要があります。これを行うにはWebサーバ設定の節を参照してください。
Note: データベースがパスワードシステムで保護されている場合、有効なユーザ名とパスワードを入力しなければならないかもしれません (詳細は接続セキュリティの節を参照してください)。
Web プロセス管理
複数の4DプロセスがデータベースのWeb公開とブラウザとの接続をサポートします。この段落はこれらのプロセスとその特徴について説明します。
Web サーバプロセス
Web サーバプロセスはデータベースがWebサイトとして公開されると実行されます。
ランタイムエクスプローラのプロセスページには、実行されているWebサーバプロセスが表示されます。
これは4Dのカーネルプロセスであり、アボートボタンでアボートさせることはできません。またCALL PROCESS等を使用してプロセス間通信を行うこともできません。Webサーバプロセスはまったくユーザインタフェースコンポーネント (ウィンドウ、メニューなど) を持っていないことに注意してください。
Webサーバプロセスは以下の方法で開始できます:
・4D Serverの”HTTPサーバ”ページで、HTTPサーバ開始ボタンをクリックするか、4Dの実行メニューからWebサーバ開始を選択する。
・START WEB SERVERを呼び出す。
・起動時にデータベースを公開が環境設定で設定されたデータベースを開く。
Webサーバプロセスは以下の方法で停止できます:
・4D Serverの”HTTPサーバ”ページで、HTTPサーバ停止ボタンをクリックするか、4Dの実行メニューからWebサーバ停止を選択する。
・STOP WEB SERVERを呼び出す。
・データベースを終了する。
Webサーバプロセスの目的は、Web接続の試みを処理することだけです。Webサーバプロセスを開始することは、実際のWeb接続を開くことを意味せず、単にWebユーザがWeb接続を開始することを許可することを意味します。Webサーバプロセスの停止は、現在実行されているWeb接続プロセスを閉じることを意味せず、単にWebユーザが新しいWeb接続を開始できなくなることを意味します。
Webサーバプロセスを停止するとき実行中のWeb接続プロセスがあると、これらのプロセスは通常通り実行が継続されます。
すなわち、Webサーバプロセスが完全に停止するには遅延時間が必要です。
Web 接続プロセス
Webブラウザがデータベースへの接続を試みるたびに、リクエストは以下の手順でWebサーバプロセスで処理されます:
・まずWebサーバプロセスは1つあるいは複数の一時的な4Dローカルプロセスを作成します。これはWebプロセスと呼ばれ、Webブラウザとの接続を検証、管理します。
Note: これらの一時的なプロセスはすべてのHTTPリクエストを管理します。これらは素早く実行され、アボートまたは遅延されます。非コンテキストモードWebサーバの反応を素早くするため、4DはこのWebプロセスを5秒間遅延させ、次のHTTPリクエストで再利用します。この振る舞いはSET DATABASE PARAMETERコマンドで変更できます。
・リクエストがコンテキストの作成を必要としない場合、Webプロセスはリクエストを処理し、必要であればレスポンスをブラウザに送信します。一時的なプロセスはアボートまたは遅延されます (上記参照)。
・リクエストがコンテキストの作成を必要とする場合、Webプロセスは新しい接続を受け入れるためのリソースがあるかどうかをチェックします。もしなければ以下のメッセージがWebブラウザに送信されます: “このデータベースはWeb用に設定されていません。”
Web接続が開始されると、Web接続プロセスが開始されます。これは接続のWebセッション全体を処理するプロセスです。ここに示すプロセスリストは、Webブラウザの接続により開始されたWeb接続プロセス“Web Connection# 152142900”を表示しています:
6番目のプロセスはWeb接続の初期化を処理するために開始され、アボートされています。
Note: コンテキスト管理の詳細については、コンテキストモードの利用の節を参照してください。
・セッションの途中で接続がコンテキストモードから非コンテキストモードにスイッチした場合、Web接続プロセス (ID付き) はアボートされます。
逆に、セッション中非コンテキストモードからコンテキストモードにスイッチしたときは、ID付きのWeb接続プロセスが作成されます。
参照
SEND HTML FILE, SET HTML ROOT, SET WEB DISPLAY LIMITS, SET WEB TIMEOUT, SSLプロトコルの使用, STOP WEB SERVER.