記事
· 2024年1月25日 4m read

プライベートWebサーバ(PWS)を使用しないバージョンの新規インストール/アップグレード:概要

開発者の皆さん、こんにちは。

こちらの記事👉「Apache Webサーバ(プライベートWebサーバ: PWS)インストレーションの廃止」でご案内していましたが、コミュニティエディションを除くInterSystems製品のバージョン2023.2以降では、プライベートWebサーバ(*)を使用した管理ポータル/Webアクセスを非推奨に変更しました。

(*)プライベートWebサーバとは、バージョン2023.1以前のInterSystems製品をインストールすると自動でインストールされる簡易的なApacheで、52773番ポートで管理ポータルやWebアクセスのテストにご利用いただけるWebサーバです。(本番運用環境には適さない簡易的なWebサーバです)

新規インストール/アップグレードインストールによるプライベートWebサーバの利用可否やインストール時の選択項目の違いについての概要は以下表をご参照ください。

この記事では、以下の内容についてご説明します。

以下の利用方法について詳しくは、シリーズ記事をご参照ください。

※コンテナ版IRISの利用例については「プライベートWebサーバを使用しないバージョンのコンテナ版IRIS利用時のWebサーバ設定例」をご参照ください。

 

なお、最新情報は下記英語ドキュメントに記載されます。正確な情報についてはドキュメントもご参照ください。

インストール方法は全製品で共通です。例ではInterSystems IRIS(以降IRIS)での例を記述します。

 

Webサーバ自動設定を選択した場合

Webサーバを事前にインストールした状態で新規インストール/アップグレードインストールを行うと、Webサーバに対する必要な設定を自動的に行うか選択できます。

Linux系:インストーラーから以下のメッセージが表示されます。

Local web server detected. Would you like to use the web server to connect to this installation <Yes>? 

IIS:以下画面が表示されます。


 

この設定でインストールを行うと、Webサーバに対してインスタンス名(小文字で指定)のパスを自動的に設定します。

インスタンス名がIRISTESTである場合、以下のパスでアクセスできます。

http://Webサーバ名/iristest

REST 用のウェブアプリケーションパスや管理ポータルはこのURLの後ろにパスを続けて指定することでアクセスできます。

例)管理ポータル:http://Webサーバ名/iristest/csp/sys/UtilHome.csp

 

VSCodeからアクセスするときの注意点:《pathPrefixの指定》

Webサーバをインストール時の自動設定で構成した場合、Web経由のアクセスに使用するURLは、

http://Webサーバ名/インスタンス名 から始まるURLになります。

VSCodeからIRISにアクセスする際に指定する接続文字列にもインスタンス名を含めたパスを指定する必要があるため、"pathPrefix" を使用してパス名を指定します。(インスタンス名の先頭に / の指定が必要です)

例)インスタンス名:IRISの場合

{
    "objectscript.conn": {
        "active": true,
        "server": "iristest",
        "ns": "USER"
    },
    "intersystems.servers": {
        "iristest":{
            "webServer": {
                "host": "localhost",
                "scheme": "http",
                "pathPrefix": "/iris",
                "port":80
            },
            "username": "SuperUser"
        }
    }
}

 

デバッグ時の注意点

VSCodeからObjectScriptエクステンションを使用してデバッグを行う場合、WebサーバのWebソケットモジュールを有効にする必要があります。

有効化しないと以下のようなエラーメッセージを出力します。

 

IISの場合

「WebSocketプロトコル」 を有効にします。


 

詳細な手続きは下図の通りです(Windowsサーバの例)。

[コントロールパネル] > [プログラム] > [プログラムと機能] > [Windowsの機能の有効化または無効化] の選択、または「サーバーマネージャ」を起動します。

[サーバの役割] から [Webサーバ(IIS)] をチェックし [機能の追加] ボタンをクリックします。(クリック後、[Webサーバ(IIS)]にチェックが付きます)


 

[アプリケーション開発] > [Web Socket プロトコル] をチェックします。また、[HTTP共有機能] > [HTTPリダイレクト]も有効にします。


 

オプション全体の設定は、以下の通りです。


 

Windows10上のIISの設定は下図の通りです。 

 

Apacheの場合

WebSocketモジュールを有効化し、Apacheを再起動します。

sudo a2enmod proxy_wstunnel
sudo systemctl restart apache2
ディスカッション (3)2
続けるにはログインするか新規登録を行ってください

@Hiroshi Sato さんありがとうございます。

WebサーバにインストールされるWebゲートウェイ管理画面を確認すると、アプリケーションパス /csp に対して、インストールしたインスタンスに接続するように設定されているため、VSCodeの接続情報に "pathPrefix" の設定がなくても接続できるようです。(WindowsとUbuntuで確認しました)

ただ、同一サーバに複数のIRISをインストールすると、/csp の接続先設定が最後にインストールしたサーバへ接続するように上書きされるので、VSCodeから目的のIRISにアクセスするためには "pathPrefix" を指定したほうがわかりやすくなりそうです。


《補足》Webゲートウェイ管理画面の設定例です(IISにインストールされたWebゲートウェイの画面例)。

1つ目の IRIS for Healthをインストールしたときに指定したインスタンス名が IRISHEALTH だった時、以下サーバ名(IRISHealth)の接続情報が作成されます。

アプリケーションパス: /irishealth が用意され、インストールしたサーバにアクセスするように設定されます(IRISHealth に接続するように設定されます)。

(この設定があるのでVSCodeの"pathPrefix"に "/インスタンス名" を指定するとIRISにアクセスできます) 

もう1つ、アプリケーションパス /csp が用意され サーバ接続情報として、IRISHEALTHを設定しています。

この設定があるので、VSCodeからアクセスするとき "pathPrefix" がなくてもIRISへアクセスできます。

ここで、2つ目のIRISをインスタンス名IRISHealth2でインストールすると、サーバ接続情報として同様にIRISHealth2を作成し、/csp の接続先にIRISHealth2を設定してしまいます。

同一サーバに複数のIRISをインストールした環境へVSCodeからアクセスする場合は "pathPrefix" を設定したほうがわかりやすさが出てきそうです。

以前のバージョンでは(2023.x)ではWindowsの場合は、pathPrefixをつけないと接続できなかった記憶があります。

その時もMac版では必要なかったので、2024からWindows版もそれに合わせたということですかね

(またはWindows版ではその追加設定がたまたま抜けていたか)