記事
· 2024年1月18日 5m read

Webサーバ(IISやApache)を利用してVSCodeからInterSystemsサーバに接続するときの注意点(バージョン2023.1以下)

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

VSCodeのObjectScriptエクステンションを利用してInterSystems製品に接続するときに「プライベートWebサーバ (*1)」ではなく、「Webサーバ(IISやApache)」を利用される場合、接続時に使用するREST用パスが通るようにWebサーバに仮想パスを追加する必要があります。

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

対象バージョン:2023.1以下のInterSystems製品

追加が必要なパス: /api

以下、IISApacheそれぞれの設定方法をご紹介します。

 

IISの場合

IISを有効化した後で、InterSystems製品のインストーラーのメニューから「ウェブサーバ」(下図左)または「カスタム」から「Webサーバゲートウェイ→IIS用CSP」(下図右)で設定を行った場合、

IISにWebゲートウェイがインストールされ、デフォルトで以下のアプリケーションを追加します。

この状態で、以下の接続情報を作成しVSCodeからInterSystems製品にアクセスしようとしてもアクセスできません。

VSCodeからRESTでアクセスする際に必要なパスがIISに定義されていないため、VSCodeからInterSystems製品にアクセスできません。

使用しているRESTのパスは、 /api  から始まるものでIISにこのパスをアプリケーションとして追加すれば、VSCodeからアクセスできるようになります。

 

以下、追加手順です。

1. Default Web Site を右クリックし、「アプリケーションの追加」を選択します。

2. エイリアスapi物理パス任意のディレクトリを指定します。(REST用のパスのためどのディレクトリでも設定できます。)

 

3. 作成したアプリケーション(api)の「ハンドラーマッピング」を選択します。

4. 「モジュールマップの追加」を選択し、要求パス * を、モジュールCSPms名前任意名を設定します。また、「要求の制限」ボタンをクリックし、「要求のマップ先が次の場合のみハンドラーを呼び出す」のチェックを外しOKボタンをクリックします。

↓できあがり↓

IISの再起動なしにVSCodeからアクセスできます。

ぜひご確認ください。

 

 

Apacheの場合

以下の例では、Ubuntu22.04を利用した例でご紹介します。

Windowsと同様にインストールキットを利用して、またはWebゲートウェイ用インストールキットを利用してApacheにWebゲートウェイをインストールします。

ご参考:Webゲートウェイインストール手順

インストール後のApache2の apache2.conf に追加された設定は以下の通りです。

ubuntu@ip-172-31-46-153:/etc/apache2$ cat apache2.conf
《省略》

# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
#### BEGIN-ApacheCSP-SECTION ####
LoadModule csp_module_sa "/opt/webgateway/bin/CSPa24.so"
CSPModulePath "/opt/webgateway/bin/"
CSPConfigPath "/opt/webgateway/bin/"
Alias /csp/ "/usr/iris/csp/"

<Directory "/usr/iris/csp">
        CSPFileTypes csp cls zen cxw
        AllowOverride None
        Options MultiViews FollowSymLinks ExecCGI
        Require all granted
        <FilesMatch "\.(log|ini|pid|exe)$">
                Require all denied
        </FilesMatch>
</Directory>
<Directory "/opt/webgateway/bin/">
        AllowOverride None
        Options None
        Require all granted
        <FilesMatch "\.(log|ini|pid|exe)$">
                Require all denied
        </FilesMatch>
</Directory>
#### END-ApacheCSP-SECTION ####
#### BEGIN-ApacheCSP-SECTION-IRIS ####
Alias /iris/csp/ "/usr/iris/csp/"
#### END-ApacheCSP-SECTION-IRIS ####
ubuntu@ip-172-31-46-153:/etc/apache2$ 

上記設定を参照すると、VSCodeからRESTでアクセスする際に必要なパス(/api)が定義されていないため、VSCodeからInterSystems製品にアクセスできません。

/api 用の記述をWebゲートウェイ用追記の最終行あたりに追記し、保存します。

<Location /api>
    CSP On
</Location>

この後、Apacheを再起動します。

sudo systemctl restart apache2

以上の設定でVSCodeからアクセスできるようになります。

 

補足:Open ExchangeにあるWebTerminalを使用する場合の設定

WebTerminalを使用するとブラウザでターミナルを開くことができます。

WebTerminalをインストールするには、公開されているソースコード一式のXMLを任意のネームスペースにインポートするだけです。

インポート後、REST用パス /terminal がInterSystems製品上に作成されますので、後はWebサーバ側(IISやApache)に 以下のパスを追加するだけでアクセスできます。

  • /terminal
  • /terminal-vscode
  • /terminalsocket

WebTerminalを起動するときは、ブラウザで http://Webサーバ/terminal/ にアクセスすると開きます。(末尾に / をお忘れなく)

IISの場合

 

Apacheの場合

apache2.confのWebゲートウェイ用セクションに以下追記し、Apacheを再起動します。

<Location /terminal>
    CSP On
</Location>
<Location /terminal-vscode>
    CSP On
</Location>
<Location /terminalsocket>
    CSP On
</Location>

 

是非お試しください。

ディスカッション (0)1
続けるにはログインするか新規登録を行ってください