6. WEBAPIの複数導入¶
Senju Service Managerが提供するWEBAPIはバージョンアップやパッチ適用により仕様が変更され、現在ご利用中の運用に影響がある場合がございます。急な仕様変更に対応するために、旧バージョンと新バージョンのWEBAPIを同時に稼働し、接続先をポート番号で分けることで 両方の仕様を使い分けることが可能となります。
複数のWEBAPIを稼働する必要がある場合、以下の手順に従って追加の「Apache」と「WEBAPI」のインストールを行ってください。
仕様補足
2台のApacheをインストールして複数のWEBAPIを稼働することで、サーバーへの負荷や性能に影響を及ぼす可能性があります。
6.1 追加WEBAPIのインストール¶
補足説明
別のWEBAPIをインストールするためには、既存と違う仮想環境からインストールする必要があります。仮想環境の作成方法は以下の手順を参照してください。
「6.1.1 仮想環境の作成」
6.1.1 仮想環境の作成¶
- ドライブ C 直下に仮想環境用のフォルダを作成します。(フォルダ名は任意です。)
-
コマンドプロンプトを新規に起動し、下記のコマンドを実行します。
- コマンド
cd C:\[仮想環境用のフォルダ名] py -3.11 -m venv .env .env\Scripts\activate - コマンドプロンプトの画面が下図のように表示されることをご確認ください。

- コマンド
以上で6.1.1 仮想環境の作成は終了です。
6.1.2 Pythonパッケージのインストール¶
Senju Service Managerと連携する、APIサーバーのWEBアプリケーションは以下のPythonパッケージの機能を利用しています。
| No | Pythonパッケージ名 | バージョン | ファイル名 |
|---|---|---|---|
| 1 | aniso8601 | 9.0.1 | aniso8601-9.0.1-py2.py3-none-any.whl |
| 2 | attrs | 19.3.0 | attrs-19.3.0-py2.py3-none-any.whl |
| 3 | certifi | 2022.12.7 | certifi-2022.12.7-py3-none-any.whl |
| 4 | cffi | 1.15.1 | cffi-1.15.1-cp311-cp311-win_amd64.whl |
| 5 | chardet | 3.0.4 | chardet-3.0.4-py2.py3-none-any.whl |
| 6 | Click | 7 | Click-7.0-py2.py3-none-any.whl |
| 7 | concurrent_log_handler | 0.9.25 | concurrent_log_handler-0.9.25-py3-none-any.whl |
| 8 | cryptography | 40.0.1 | cryptography-40.0.1-cp36-abi3-win_amd64.whl |
| 9 | Flask | 1.1.1 | Flask-1.1.1-py2.py3-none-any.whl |
| 10 | Flask-JWT-Extended | 3.24.1 | Flask-JWT-Extended-3.24.1.tar.gz |
| 11 | flask-marshmallow | 0.12.0 | flask_marshmallow-0.12.0-py2.py3-none-any.whl |
| 12 | Flask-RESTful | 0.3.8 | Flask_RESTful-0.3.8-py2.py3-none-any.whl |
| 13 | Flask-SQLAlchemy | 2.4.2 | Flask_SQLAlchemy-2.4.2-py2.py3-none-any.whl |
| 14 | idna | 2.8 | idna-2.8-py2.py3-none-any.whl |
| 15 | itsdangerous | 1.1.0 | itsdangerous-1.1.0-py2.py3-none-any.whl |
| 16 | Jinja2 | 2.11.1 | Jinja2-2.11.1-py2.py3-none-any.whl |
| 17 | jsonschema | 3.2.0 | jsonschema-3.2.0-py2.py3-none-any.whl |
| 18 | MarkupSafe | 1.1.1 | MarkupSafe-1.1.1.tar.gz |
| 19 | marshmallow | 3.6.0 | marshmallow-3.6.0-py2.py3-none-any.whl |
| 20 | marshmallow-sqlalchemy | 0.23.0 | marshmallow_sqlalchemy-0.23.0-py2.py3-none-any.whl |
| 21 | mod-wsgi | 4.9.2 | mod_wsgi-4.9.2-cp311-cp311-win_amd64.whl |
| 22 | oracledb | 1.3.0 | oracledb-1.3.0-cp311-cp311-win_amd64.whl |
| 23 | pip | 23.0.1 | pip-23.0.1-py3-none-any.whl |
| 24 | portalocker | 2.10.0 | portalocker-2.10.0-py3-none-any.whl |
| 25 | psycopg2 | 2.9.6 | psycopg2-2.9.6-cp311-cp311-win_amd64.whl |
| 26 | pycparser | 2.21 | pycparser-2.21-py2.py3-none-any.whl |
| 27 | PyJWT | 1.7.1 | PyJWT-1.7.1-py2.py3-none-any.whl |
| 28 | pyrsistent | 0.15.7 | pyrsistent-0.15.7.tar.gz |
| 29 | pytz | 2019.3 | pytz-2019.3-py2.py3-none-any.whl |
| 30 | pywin32 | 306 | pywin32-306-cp311-cp311-win_amd64.whl |
| 31 | requests | 2.22.0 | requests-2.22.0-py2.py3-none-any.whl |
| 32 | six | 1.14.0 | six-1.14.0-py2.py3-none-any.whl |
| 33 | SQLAlchemy | 1.3.17 | SQLAlchemy-1.3.17.tar.gz |
| 34 | tzlocal | 2.1 | tzlocal-2.1-py2.py3-none-any.whl |
| 35 | urllib3 | 1.25.11 | urllib3-1.25.11-py2.py3-none-any.whl |
| 36 | Werkzeug | 1.0.0 | Werkzeug-1.0.0-py2.py3-none-any.whl |
| 37 | wheel | 0.40.0 | wheel-0.40.0-py3-none-any.whl |
| 38 | cpe | 1.3.1 | cpe-1.3.1.tar.gz |
| 39 | xmltodict | 0.14.2 | xmltodict-0.14.2-py2.py3-none-any.whl |
仕様補足
例として手順を説明するバージョンは開発時点のバージョンになります。インストール時には、セキュリティ上の観点を考慮してその時点での最適なバージョンを導入してください。
-
Pythonパッケージを入手し、インストールするサーバーのC:\TEMP\modulesに格納します。
No Pythonパッケージ名 ダウンロード先 1 aniso8601 https://pypi.org/project/aniso8601/9.0.1/#files 2 attrs https://pypi.org/project/attrs/19.3.0/#files 3 certifi https://pypi.org/project/certifi/2022.12.7/#files 4 cffi https://pypi.org/project/cffi/1.15.1/#files 5 chardet https://pypi.org/project/chardet/3.0.4/#files 6 Click https://pypi.org/project/click/7.0/#files 7 concurrent-log-handler https://pypi.org/project/concurrent-log-handler/0.9.25/#files 8 cryptography https://pypi.org/project/cryptography/40.0.1/#files 9 Flask https://pypi.org/project/Flask/1.1.1/#files 10 Flask-JWT-Extended https://pypi.org/project/Flask-JWT-Extended/3.24.1/#files 11 flask-marshmallow https://pypi.org/project/flask-marshmallow/0.12.0/#files 12 Flask-RESTful https://pypi.org/project/Flask-RESTful/0.3.8/#files 13 Flask-SQLAlchemy https://pypi.org/project/Flask-SQLAlchemy/2.4.2/#files 14 idna https://pypi.org/project/idna/2.8/#files 15 itsdangerous https://pypi.org/project/itsdangerous/1.1.0/#files 16 Jinja2 https://pypi.org/project/Jinja2/2.11.1/#files 17 jsonschema https://pypi.org/project/jsonschema/3.2.0/#files 18 MarkupSafe https://pypi.org/project/MarkupSafe/1.1.1/#files 19 marshmallow https://pypi.org/project/marshmallow/3.6.0/#files 20 marshmallow-sqlalchemy https://pypi.org/project/marshmallow-sqlalchemy/0.23.0/#files 21 mod-wsgi https://pypi.org/project/mod-wsgi/4.9.2/#files 22 oracledb https://pypi.org/project/oracledb/1.3.0/#files 23 pip https://pypi.org/project/pip/23.0.1/#files 24 portalocker https://pypi.org/project/portalocker/2.10.0/#files 25 psycopg2 https://pypi.org/project/psycopg2/2.9.6/#files 26 pycparser https://pypi.org/project/pycparser/2.21/#files 27 PyJWT https://pypi.org/project/PyJWT/1.7.1/#files 28 pyrsistent https://pypi.org/project/pyrsistent/0.15.7/#files 29 pytz https://pypi.org/project/pytz/2019.3/#files 30 pywin32 https://pypi.org/project/pywin32/306/#files 31 requests https://pypi.org/project/requests/2.22.0/#files 32 six https://pypi.org/project/six/1.14.0/#files 33 SQLAlchemy https://pypi.org/project/SQLAlchemy/1.3.17/#files 34 tzlocal https://pypi.org/project/tzlocal/2.1/#files 35 urllib3 https://pypi.org/project/urllib3/1.25.11/#files 36 Werkzeug https://pypi.org/project/Werkzeug/1.0.0/#files 37 wheel https://pypi.org/project/wheel/0.40.0/#files 38 cpe https://pypi.org/project/cpe/1.3.1/#files 39 xmltodict https://pypi.org/project/xmltodict/0.14.2/#files 補足説明
※…ダウンロードするファイルの選択肢が複数存在します。
以下を参考にファイル名に含まれる文字列からファイルを選択してください。
・cp[Pythonのバージョン]
例)cp311…Python3.11用
・win_amd64:Windows(64-bit)用補足説明
指定されたPythonパッケージが入手できない場合、お手数ですがSenju カスタマーサポートセンターまでご連絡ください。
補足説明
mod-wsgiはpypiではtar.gz形式しかダウンロードできないため、mod_wsgi-4.9.2-cp311-cp311-win_amd64.whlを利用する際にビルドする必要があります。
ローカルでのビルド等が難しい場合を考慮し、導入可能なパッケージモジュールを提供しておりますので、必要な場合は千手カスタマーサポートセンターまでお問い合わせください。 -
Pythonパッケージのファイル名一覧をテキストファイルに記載し、C:\TEMP\modulesに保存します。
- ファイル名:
requirements.txt
requirements.txtの記載内容 concurrent-log-handler==0.9.25
Flask==1.1.1
Flask-JWT-Extended==3.24.1
flask-marshmallow==0.12.0
Flask-RESTful==0.3.8
Flask-SQLAlchemy==2.4.2
jsonschema==3.2.0
marshmallow==3.6.0
marshmallow-sqlalchemy==0.23.0
mod-wsgi==4.9.2
oracledb==1.3.0
portalocker==2.10.0
psycopg2==2.9.6
pywin32==306
requests==2.22.0
SQLAlchemy==1.3.17
tzlocal==2.1
cpe==1.3.1
xmltodict==0.14.2 - ファイル名:
-
コマンドプロンプトを新規に起動し、下記のコマンドを実行します。
- コマンド
cd C:\[仮想環境用のフォルダ名] .env\Scripts\activate
- コマンド
-
仮想環境上で以下のコマンドを実行し、Pythonパッケージのインストールを行います。
- コマンド
cd C:\TEMP\modules python -m pip install pip-23.0.1-py3-none-any.whl pip install wheel-0.40.0-py3-none-any.whl pip install –-no-index --find-links C:\TEMP\modules –r requirements.txt

- コマンド
-
仮想環境上で以下のコマンドを実行し、Pythonパッケージがインストールされたことを確認します
- コマンド
pip show <Pythonパッケージ名>

- コマンド
以上でPythonパッケージのインストールは終了です。
6.1.3 WEBアプリケーションのインストール¶
-
インストール用のwhlファイルを入手して、インストールするサーバーのC:\TEMPに格納します。
- ファイル名: ssmwebapi-2025.0.1.1-py3-none-any.whl
仕様補足
WebアプリケーションはPythonで作成されています。
Pythonのパッケージ管理システムを用いてインストールします。 -
インストールするサーバーに管理者権限のアカウントでログインします。
-
コマンドプロンプトを新規に起動し、下記のコマンドを実行します。
- コマンド
cd C:\[仮想環境用のフォルダ名] .env\Scripts\activate
- コマンド
-
仮想環境で下記のコマンドを実行します。
- コマンド
cd C:\TEMP pip install –U ssmwebapi-2025.0.1.1-py3-none-any.whl
- コマンド
-
仮想環境で下記のコマンドを実行し、WEBアプリケーションがインストールされていることを確認します。
- コマンド
pip show ssmwebapi

- コマンド
以上で6.1.3 WEBアプリケーションのインストールは終了です。
6.2 追加Apacheのインストール¶
-
インストール用のzipファイルを入手し、インストールするサーバーのC:\TEMPに格納します。
- ダウンロード先:https://www.apachelounge.com/download/
- ファイル名: httpd-2.4.58-win64-VS17.zip
-
インストールするサーバーに管理者権限のアカウントでログインします。
-
zipファイルを展開し、既存インストールしたApacheと区分するため、フォルダ「Apache24」のフォルダ名を「Apache24_2」で変更してCドライブ直下に格納してください。
仕様補足
追加作成したApacheのフォルダ名変更に従って、格納経路についての設定を変更する必要があります。以下の設定ファイルをテキストエディタで開いて設定ファイルを修正してください。
設定ファイル:Apache24_2\conf\httpd.conf
Define SRVROOT "c:/Apache24_2"
ServerRoot "${SRVROOT}" -
Apacheの設定ファイル(httpd.conf)をテキストエディタで開き、以下の内容を編集します。
ポート番号を設定します。既に使用しているポート番号と違う番号を設定してください。
#Listen 80 Listen 49153サーバー名を設定します。ポート番号を付加する際に上述の番号を記載してください。
#ServerName www.example.com:80 ServerName ssmapihost:49153「Include conf/extra/httpd-mpm.conf」で検索し、左の「#」を削除します。
#Include conf/extra/httpd-mpm.conf Include conf/extra/httpd-mpm.confApacheインストール先\conf\extra\httpd-mpm.confのバックアップを取得します。
[格納先参考] C:\\Apache24\\conf\\extra\\httpd-mpm.conf「<IfModule mpm_winnt_module>」で検索し、「MaxConnectionsPerChild」の下に「ThreadStackSize 8388608」を追加します。
例
<IfModule mpm_winnt_module> ThreadsPerChild 150 MaxConnectionsPerChild 0 ThreadStackSize 8388608 </IfModule>httpd-mpm.confを上書き保存します。
-
コマンドプロンプトを新規に起動し、下記のコマンドを実行します。
- コマンド
cd C:\Apache24_2\bin httpd.exe
- コマンド
-
WebブラウザからApacheのドキュメントルートページを表示し、「It works!」が画面に表示されていることを確認します。
URL http://ssmapihost:49153 -
コマンドプロンプトでctrl+cを入力し、起動中のhttpd.exeを終了させます。
-
コマンドプロンプトで下記のコマンドを実行し、Windowsのサービスに「Apache24_2」を登録します。
※Apacheのサービス名は例です。
- コマンド
httpd.exe -k install -n "Apache24_2" -f "C:/Apache24_2/conf/httpd.conf"
仕様補足
「Apache24_2」を登録する前に、既存で運用しているApacheが稼働中の場合、Windowsのサービスから該当Apacheを停止してから登録してください。
- コマンド
-
「スタート」メニュー>「管理ツール」>「サービス」を選択し、「サービス」画面を表示します。
「Apache24_2」がサービスに登録されていることを確認します。
6.3 ApacheのThreadStackSize拡張¶
-
Apacheの設定ファイル「httpd.conf」をテキストエディタで開きます。
- 格納先
%Apache24%\conf\httpd.conf
仕様補足
※%Apache24%はApacheのインストール先を表します。これ以降も同様です。 例:C:\Apache24_2\conf\httpd.conf
- 格納先
-
「Include conf/extra/httpd-mpm.conf」で検索し、左の「#」を削除します。
Include conf/extra/httpd-mpm.conf -
「httpd.conf」を上書き保存します。
-
Apacheの設定ファイル「httpd-mpm.conf」をテキストエディタで開きます。
- 格納先
%Apache24%\conf\extra\httpd-mpm.conf
- 格納先
-
「<IfModule mpm_winnt_module>」で検索し、「MaxConnectionsPerChild」の下に「ThreadStackSize 8388608」を追加します。
<IfModule mpm_winnt_module> ThreadsPerChild 150 MaxConnectionsPerChild 0 ThreadStackSize 8388608 </IfModule> -
「httpd-mpm.conf」を上書き保存します。
6.4 追加WEBAPIとApacheの接続設定¶
WEBサーバーとWEBアプリケーションを接続するための設定手順について説明します。
6.4.1 WEBサーバーのWSGI対応¶
WEBサーバーとPythonで作成されたWEBアプリケーションを接続するためには、WEBサーバーがWSGI(Web Server Gateway Interface)に対応している必要があります。
しかし、ApacheはWSGIに対応していないため、以下の手順でWSGIに対応させます。
-
APIサーバーに管理者権限のアカウントでログインします。
-
コマンドプロンプトを新規に起動し、下記のコマンドを実行します。
- コマンド
cd C:\[仮想環境用のフォルダ名] .env\Scripts\activate
- コマンド
-
仮想環境で下記のコマンドを実行します。
- コマンド
mod_wsgi-express module-config

- コマンド
-
コマンドの出力結果をコピーし、Apacheの設定ファイルに貼り付けます。
仕様補足
SSL通信を行う場合は、ApacheのSSL設定ファイル(httpd-ssl.conf)に貼り付けてください。
6.4.2 WEBサーバー起動時に実行されるWEBアプリケーションの起動スクリプト登録¶
WEBサーバー起動時に実行されるPythonのスクリプトを登録します。
例:通信ポートが49153、ccfspwebapiフォルダの格納先がC:\Program Files\CCFSP\の場合
-
Apacheの設定ファイルに以下の内容を追記します。
<VirtualHost *:49153> DocumentRoot "C:/Program Files/CCFSP/ccfspwebapi/" WSGIScriptAlias / "C:/Program Files/CCFSP/ccfspwebapi/wsgi.py" <Directory "C:/Program Files/CCFSP/ccfspwebapi"> Require all granted </Directory> SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1 </VirtualHost>
仕様補足
SSL通信を行う場合は、ApacheのSSL設定ファイル(httpd-ssl.conf)に記述を追記してください。
仕様補足
Apacheの設定ファイル中では、Windowsでもパスセパレータとしてスラッシュを使用してください。
6.4.3 WEBサーバーの再起動¶
設定を反映させるため、WEBサーバーを再起動します。
-
「スタート」メニュー>「管理ツール」>「サービス」を選択し、「サービス」画面を表示します。
-
「Apache2.4」を右クリックし、「再起動(E)」をクリックします。
6.5 ウィルススキャンの除外¶
APIサーバーが稼働している環境において、アンチウィルスソフトのようなセキュリティ関連ソフトや、バックアップソフト等の予期しない動作により、パフォーマンスの影響や動作不調を起こす場合があります。
そのため、アプリケーションやミドルウェアのフォルダやファイルをリアルタイム検索から除外していただく必要があります。
各アンチウィルスソフトの除外設定手順に従い、設定を行ってください。
対象は 資料集「1.1 Senju Service Managerシステム」の9を参照してください。
6.6 WEBAPI初回起動タスクの設定¶
6.6.1 複数導入のWEBAPIへの対応¶
複数のWEBAPIを導入している場合、導入数分だけ同様にタスクを登録する必要があります。
本章の手順は 「5.4 WEBAPI初回起動タスクの設定」の1.~4.の手順を参考に実施してください。
なお、以下のパラメータについては起動中のWEBAPIおよびApacheにより指定が変わります。
-
<WEBAPI起動ポート番号>
-
<Apacheサービス名>
6.7 サーバーマネージャーの設定¶
Senju Service Managerでは、以下のWebAPIでWebSocket通信機能を使用しています。
・プロセス編集画面表示API
WebSocket通信機能を使用するためには、制御情報による機能の有効化以外に、
あらかじめSenju Service ManagerのWEBサーバーに対して、サーバーマネージャーから
WebSocketプロトコルの役割を追加する必要があります。
仕様補足
WebSocket通信機能を使用する機能を利用する場合は必ず実施してください。 利用しない場合は実施する必要はありません。
6.7.1 サーバーマネージャーのサーバー役割の追加設定¶
1. サーバーマネージャーを起動して、「役割と機能の追加」を選択します。
2. 役割と機能の追加ウィザード画面の「開始する前に」で「次へ(N)>」ボタンを押下します。
3. 「インストールの種類の選択」で「次へ(N)>」ボタンを押下します。
4. 「サーバーの役割の選択」でWebサーバー(IIS)>アプリケーション開発>WebSocketプロトコルにチェックを入れ、「次へ(N)>」ボタンを押下します。
5. 「機能の選択」で「次へ(N)>」ボタンを押下します。
6. 「インストールオプションの確認」で「インストール(N)」ボタンを押下します。
7. 「インストールの進行状況」でインストールが完了したことを確認し、「閉じる」ボタンを押下します。
6.7.2 Application Host Helper Serviceの再起動¶
1. サーバーマネージャーで「IIS」を選択後、サービスから「Application Host Helper Service」を選択し、右クリックから「サービスの再起動」を実行します。