メインコンテンツへスキップ

Windows 10 / 11 / Server

このガイドでは、Windows 10 / 11 / Server サーバーに MyEMS をデプロイします。

前提条件

このガイドでは、Windows 10、Windows 11、および Windows Server (2022) への MyEMS のインストール方法を説明します。ハードウェア要件は、選択したデータベースとシステムに接続するデバイスの数によって異なります。MyEMS、MySQL、および Python 3.10、3.11、または 3.12 を1台のコンピューターで実行するには、少なくとも 8 GB のメモリが必要です。

ソースコードをクローンします:

管理者として実行、Windows PowerShell
cd C:\
git clone https://gitee.com/myems/myems

Python 3.10 をインストールします

https://www.python.org/downloads/windows/
Python 3.10.11 パッケージ 64-bit バージョン(64ビットシステム用)
Windows installer (64-bit) をダウンロード
Python インストーラーを実行
ダブルクリック:python-3.10.11-amd64.exe
「Add py... to PATH」にチェックを入れ、「Customize installation」をクリック
すべてのオプション、特に pip にチェックが入っていることを確認し、「Next」をクリック
最初のオプションにチェックを入れ、Python のインストール場所を変更することをお勧めし、「install」をクリック
注:デフォルトのインストール先: C:\Program Files\Python310 を C:\Python310 に変更してください
インストールが完了したら、「close」をクリック
コマンドプロンプトで python と入力し、Enter キーを押します。Python のバージョン番号が表示されればインストール成功です

ステップ1 データベース

Database を参照してください

以下は、MySQL をダウンロードしてインストールする詳細な手順です(MySQL 8.0 を例とし、無料の Community エディションを使用)。

1.1 MySQL インストーラーのダウンロード

  1. 公式サイトを開く:https://dev.mysql.com/downloads/mysql/
  2. Windows プラットフォームを選択します。通常は2つのオプションがあります:
    • mysql-installer-web-community(オンラインインストール、サイズ小)
    • mysql-installer-community(オフライン完全パッケージ、推奨)
  3. Download をクリックします。ログインを求められた場合は、「No thanks, just start my download」を選択します

1.2 MySQL のインストール

  1. ダウンロードしたインストーラーをダブルクリックして実行します(管理者権限が必要)
  2. インストールタイプを選択します(推奨:Developer Default または Custom
    • Developer Default:MySQL Server、Workbench、Shell などの一般的なツールをインストールします
    • Custom:コンポーネントをカスタマイズできます
  3. Next をクリックします。インストーラーは依存関係を自動的にチェックし、不足しているコンポーネントをダウンロードします
  4. Execute をクリックしてインストールを開始し、完了したら Next をクリックします

1.3 MySQL Server の設定

  1. Type and Networking

    • Config Type:Development Computer を選択します
    • Port:デフォルト 3306(変更可能)
    • Next をクリック
  2. Authentication Method

    • 推奨:Use Strong Password Encryption(新しい暗号化方式)を選択します
    • または2番目のオプション(旧バージョンとの互換性)
    • Next をクリック
  3. Accounts and Roles

    • root パスワードを設定します(忘れないでください)
    • オプション:一般ユーザーを追加します(スキップ可能)
    • Next をクリック
  4. Windows Service

    • Configure MySQL Server as a Windows Service にチェックを入れます
    • Service Name:MySQL80(デフォルト)
    • Start the MySQL Server at System Startup にチェックを入れます
    • Next をクリック
  5. Apply Configuration

    • Execute をクリックして設定を適用します
    • すべてのステップで緑色のチェックマークが表示されれば成功です
    • Finish をクリック

1.4 インストールの完了

  1. Finish が表示されるまで Next をクリックし続けます
  2. Start MySQL Workbench after Setup にチェックを入れます(オプション)
  3. Finish をクリックしてインストールウィザードを終了します

1.5 インストールの確認

方法1:コマンドラインでテスト

  1. Win + R を押し、cmd と入力して Enter キーを押します
  2. 次のように入力します:
    mysql -u root -p
  3. 設定した root パスワードを入力します
  4. mysql> プロンプトが表示されれば成功です

方法2:サービスの確認

  1. Win + R を押し、services.msc と入力します
  2. MySQL80 を見つけます。状態は「実行中」である必要があります

1.6 一般的な初期設定(オプション)

MySQL に接続した後、次を実行します:

-- データベースを表示
show databases;

-- 新しいデータベースを作成
create database mydb;

-- リモートアクセスユーザーを作成(オプション)
create user 'myems'@'%' identified by 'パスワード';
grant all privileges on *.* to 'myems'@'%';
flush privileges;

一般的な問題

問題解決方法
ポート3306が既に使用されているインストール時に別のポートに変更します(例:3307)
rootパスワードを忘れた特権テーブルをスキップしてMySQLを起動する必要があります(複雑な手順)
サービスを開始できないポートが使用されているかどうかを確認するか、Windows イベントログを確認します

インストール中に特定の問題が発生した場合、解決の手助けが必要ですか?

ステップ2 myems-api

  • myems-api サービスをインストールします:
# 1. 新しい CMD ウィンドウを管理者として開きます

# 2. 環境変数を設定します
set PIP_NO_USER=1
set PYTHONNOUSERSITE=1

# 3. プロジェクトディレクトリに移動します
cd C:\myems\myems-api

# 4. すべてのパッケージを再インストールします
C:\Python310\python.exe -m pip install --no-cache-dir --no-user -r requirements.txt
C:\Python310\python.exe -m pip install --no-cache-dir --no-user waitress

example.env から .env ファイルを作成し、必要に応じて編集します:

copy .\example.env .env
テキストエディタで開いて編集: C:\myems\myems-api\.env
データベース接続情報を変更します

Windowsサービスをインストールします:

cmd

# 1. 古いサービスを完全に削除します
sc delete MyEMSAPI

# 2. ログディレクトリを作成します
mkdir C:\myems\myems-api\logs 2>nul

# 3. WinSW をダウンロードします(まだダウンロードしていない場合)
https://github.com/winsw/winsw/releases
WinSW-x64.exe の名前を MyEMSAPI.exe に変更します

cd C:\myems\myems-api

# 4. 設定ファイルを作成します
`C:\myems\myems-api\MyEMSAPI.xml` を作成します(notepad または次のコマンドを使用):
notepad C:\myems\myems-api\MyEMSAPI.xml
以下の内容をメモ帳にコピーします:
<service>
<id>MyEMSAPI</id>
<name>MyEMS API Service</name>
<description>MyEMS API Service</description>
<executable>C:\Python310\python.exe</executable>
<arguments>-m waitress --listen=0.0.0.0:8000 app:api</arguments>
<workingdirectory>C:\myems\myems-api</workingdirectory>
<logmode>rotate</logmode>
<logpath>C:\myems\myems-api\logs</logpath>
<onfailure action="restart" delay="10 sec"/>
<stoptimeout>15 sec</stoptimeout>
<startmode>Automatic</startmode>
</service>
保存してメモ帳を閉じます。

# 5. サービスをインストールします
MyEMSAPI.exe install

# 6. サービスを開始します
MyEMSAPI.exe start

# 7. 状態を確認します
MyEMSAPI.exe status

# 8. サービスをテストします
curl http://localhost:8000

# 9. 問題が発生した場合はログを確認します
C:\myems\myems-api\logs

ステップ3 myems-admin

nginxサービスをバックグラウンドで起動します:

start /b nginx.exe
  • NGINX を設定します
cd C:\Program Files\nginx-1.29.1\conf
テキストエディタで nginx.conf を開いて編集します

'http' セクション内に、いくつかのディレクティブを追加します:

http {
client_header_timeout 600;
client_max_body_size 512M;
gzip on;
gzip_min_length 512;
gzip_proxied any;
gzip_types *;
gzip_vary on;
proxy_buffering off;
...

}

以下のディレクティブを記述します。myems-api サービスが別のサーバーで実行されている場合は、デフォルトのアドレス http://127.0.0.1:8000/ を実際のアドレスに置き換えます。

  server {
listen 8001;
server_name myems-admin;
location / {
root C:\myems-admin;
index index.html index.htm;
}
## CORS の問題を回避するために、Nginx を使用して myems-api をパス /api にプロキシします
## 'server' 内に別の location /api を追加します
## myems-api サービスが別のサーバーでホストされている場合は、デフォルトの myems-api URL http://127.0.0.1:8000/ を実際の URL に置き換えます
location /api {
proxy_pass http://127.0.0.1:8000/;
proxy_connect_timeout 75;
proxy_read_timeout 600;
send_timeout 600;
}
}
  • myems-admin をインストールします: サーバーがインターネットに接続できない場合は、myems/myems-admin フォルダーを圧縮してサーバーにアップロードします。
  • その後、c:\myems-admin に解凍します。

設定ファイルを確認し、必要に応じて変更します:

c:\myems-admin\app\api.js

:::注意

「upload」フォルダーはユーザーがアップロードしたファイルに使用されます。myems-admin をアップグレードする際は、「upload」フォルダーを削除/移動/上書きしないでください。

  C:\myems-admin\upload

:::

nginxサービスを再起動します:

cd C:\Program Files\nginx-1.29.1
nginx.exe -s stop
start /b nginx.exe
## ステップ4 myems-modbus-tcp

このステップでは、myems-modbus-tcp サービスをインストールします。

```bash
cd C:\myems\myems-modbus-tcp
# 1. 新しい CMD ウィンドウを管理者として開きます

# 2. 環境変数を設定します
set PIP_NO_USER=1
set PYTHONNOUSERSITE=1

# 3. プロジェクトディレクトリに移動します
cd C:\myems\myems-modbus-tcp

# 4. すべてのパッケージを再インストールします
C:\Python310\python.exe -m pip install --no-cache-dir --no-user -r requirements.txt

example.env から .env ファイルを作成し、必要に応じて編集します:

copy .\example.env .env
テキストエディタで開いて編集: C:\myems\myems-modbus-tcp\.env

Windowsサービスをインストールします:

# 1. 古いサービスを完全に削除します
sc delete MyEMSModbusTCP

# 2. ログディレクトリを作成します
mkdir C:\myems\myems-modbus-tcp\logs 2>nul

# 3. WinSW をダウンロードします(まだダウンロードしていない場合)
https://github.com/winsw/winsw/releases
WinSW-x64.exe の名前を MyEMSModbusTCP.exe に変更します

cd C:\myems\myems-modbus-tcp

# 4. 設定ファイルを作成します
`C:\myems\myems-modbus-tcp\MyEMSModbusTCP.xml` を作成します(notepad または次のコマンドを使用):
notepad C:\myems\myems-modbus-tcp\MyEMSModbusTCP.xml
以下の内容をメモ帳にコピーします:
<service>
<id>MyEMSModbusTCP</id>
<name>MyEMS Modbus TCP Service</name>
<description>MyEMS Modbus TCP Service</description>
<executable>C:\Python310\python.exe</executable>
<arguments>main.py</arguments>
<workingdirectory>C:\myems\myems-modbus-tcp</workingdirectory>
<logmode>rotate</logmode>
<logpath>C:\myems\myems-modbus-tcp\logs</logpath>
<onfailure action="restart" delay="10 sec"/>
<stoptimeout>15 sec</stoptimeout>
<startmode>Automatic</startmode>
</service>
保存してメモ帳を閉じます。

# 5. サービスをインストールします
MyEMSModbusTCP.exe install

# 6. サービスを開始します
MyEMSModbusTCP.exe start

# 7. 状態を確認します
MyEMSModbusTCP.exe status

# 8. 問題が発生した場合はログを確認します
C:\myems\myems-modbus-tcp\logs

MyEMSModbusTCP.exe installMyEMSModbusTCP.exe start の実行が成功しても MyEMSModbusTCP.exe status が依然として「Stopped」を示す場合は、VC++ 再頒布可能パッケージがインストールされていない可能性があります。 VC++ のダウンロード先:https://learn.microsoft.com/zh-cn/cpp/windows/latest-supported-vc-redist?view=msvc-170#visual-studio-2015-2017-2019-and-2022

ステップ5 myems-cleaning

このステップでは、myems-cleaning サービスをインストールします。

cd C:\myems\myems-cleaning
# 1. 新しい CMD ウィンドウを管理者として開きます

# 2. 環境変数を設定します
set PIP_NO_USER=1
set PYTHONNOUSERSITE=1

# 3. プロジェクトディレクトリに移動します
cd C:\myems\myems-cleaning

# 4. すべてのパッケージを再インストールします
C:\Python310\python.exe -m pip install --no-cache-dir --no-user -r requirements.txt

example.env から .env ファイルを作成し、必要に応じて編集します:

copy C:\myems\myems-cleaning\example.env .env
テキストエディタで開いて編集: C:\myems\myems-cleaning\.env

Windowsサービスをインストールします:

# 1. 古いサービスを完全に削除します
sc delete MyEMSCleaning

# 2. ログディレクトリを作成します
mkdir C:\myems\myems-cleaning\logs 2>nul

# 3. WinSW をダウンロードします(まだダウンロードしていない場合)
https://github.com/winsw/winsw/releases
WinSW-x64.exe の名前を MyEMSCleaning.exe に変更します

cd C:\myems\myems-cleaning

# 4. 設定ファイルを作成します
`C:\myems\myems-cleaning\MyEMSCleaning.xml` を作成します(notepad または次のコマンドを使用):
notepad C:\myems\myems-cleaning\MyEMSCleaning.xml
以下の内容をメモ帳にコピーします:
<service>
<id>MyEMSCleaning</id>
<name>MyEMS Cleaning Service</name>
<description>MyEMS Cleaning Service</description>
<executable>C:\Python310\python.exe</executable>
<arguments>main.py</arguments>
<workingdirectory>C:\myems\myems-cleaning</workingdirectory>
<logmode>rotate</logmode>
<logpath>C:\myems\myems-cleaning\logs</logpath>
<onfailure action="restart" delay="10 sec"/>
<stoptimeout>15 sec</stoptimeout>
<startmode>Automatic</startmode>
</service>
保存してメモ帳を閉じます。

# 5. サービスをインストールします
MyEMSCleaning.exe install

# 6. サービスを開始します
MyEMSCleaning.exe start

# 7. 状態を確認します
MyEMSCleaning.exe status

# 8. 問題が発生した場合はログを確認します
C:\myems\myems-cleaning\logs

ステップ6 myems-normalization

このステップでは、myems-normalization サービスをインストールします。

cd C:\myems\myems-normalization
# 1. 新しい CMD ウィンドウを管理者として開きます

# 2. 環境変数を設定します
set PIP_NO_USER=1
set PYTHONNOUSERSITE=1

# 3. プロジェクトディレクトリに移動します
cd C:\myems\myems-normalization

# 4. すべてのパッケージを再インストールします
C:\Python310\python.exe -m pip install --no-cache-dir --no-user -r requirements.txt

example.env から .env ファイルを作成し、必要に応じて編集します:

copy C:\myems\myems-normalization\example.env .env
テキストエディタで開いて編集: C:\myems\myems-normalization\.env

Windowsサービスをインストールします:

# 1. 古いサービスを完全に削除します
sc delete MyEMSNormalization

# 2. ログディレクトリを作成します
mkdir C:\myems\myems-normalization\logs 2>nul

# 3. WinSW をダウンロードします(まだダウンロードしていない場合)
https://github.com/winsw/winsw/releases
WinSW-x64.exe の名前を MyEMSNormalization.exe に変更します

cd C:\myems\myems-normalization

# 4. 設定ファイルを作成します
`C:\myems\myems-normalization\MyEMSNormalization.xml` を作成します(notepad または次のコマンドを使用):
notepad C:\myems\myems-normalization\MyEMSNormalization.xml
以下の内容をメモ帳にコピーします:
<service>
<id>MyEMSNormalization</id>
<name>MyEMS Normalization Service</name>
<description>MyEMS Normalization Service</description>
<executable>C:\Python310\python.exe</executable>
<arguments>main.py</arguments>
<workingdirectory>C:\myems\myems-normalization</workingdirectory>
<logmode>rotate</logmode>
<logpath>C:\myems\myems-normalization\logs</logpath>
<onfailure action="restart" delay="10 sec"/>
<stoptimeout>15 sec</stoptimeout>
<startmode>Automatic</startmode>
</service>
保存してメモ帳を閉じます。

# 5. サービスをインストールします
MyEMSNormalization.exe install

# 6. サービスを開始します
MyEMSNormalization.exe start

# 7. 状態を確認します
MyEMSNormalization.exe status

# 8. 問題が発生した場合はログを確認します
C:\myems\myems-normalization\logs

ステップ7 myems-aggregation

このステップでは、myems-aggregation サービスをインストールします。

cd C:\myems\myems-aggregation
# 1. 新しい CMD ウィンドウを管理者として開きます

# 2. 環境変数を設定します
set PIP_NO_USER=1
set PYTHONNOUSERSITE=1

# 3. プロジェクトディレクトリに移動します
cd C:\myems\myems-aggregation

# 4. すべてのパッケージを再インストールします
C:\Python310\python.exe -m pip install --no-cache-dir --no-user -r requirements.txt

example.env から .env ファイルを作成し、必要に応じて編集します:

copy C:\myems\myems-aggregation\example.env .env
テキストエディタで開いて編集: C:\myems\myems-aggregation\.env

Windowsサービスをインストールします:

# 1. 古いサービスを完全に削除します
sc delete MyEMSAggregation

# 2. ログディレクトリを作成します
mkdir C:\myems\myems-aggregation\logs 2>nul

# 3. WinSW をダウンロードします(まだダウンロードしていない場合)
https://github.com/winsw/winsw/releases
WinSW-x64.exe の名前を MyEMSAggregation.exe に変更します

cd C:\myems\myems-aggregation

# 4. 設定ファイルを作成します
`C:\myems\myems-aggregation\MyEMSAggregation.xml` を作成します(notepad または次のコマンドを使用):
notepad C:\myems\myems-aggregation\MyEMSAggregation.xml
以下の内容をメモ帳にコピーします:
<service>
<id>MyEMSAggregation</id>
<name>MyEMS Aggregation Service</name>
<description>MyEMS Aggregation Service</description>
<executable>C:\Python310\python.exe</executable>
<arguments>main.py</arguments>
<workingdirectory>C:\myems\myems-aggregation</workingdirectory>
<logmode>rotate</logmode>
<logpath>C:\myems\myems-aggregation\logs</logpath>
<onfailure action="restart" delay="10 sec"/>
<stoptimeout>15 sec</stoptimeout>
<startmode>Automatic</startmode>
</service>
保存してメモ帳を閉じます。

# 5. サービスをインストールします
MyEMSAggregation.exe install

# 6. サービスを開始します
MyEMSAggregation.exe start

# 7. 状態を確認します
MyEMSAggregation.exe status

# 8. 問題が発生した場合はログを確認します
C:\myems\myems-aggregation\logs

ステップ8 myems-web

このステップでは、myems-web サービスをインストールします。

nginxサービスを起動します:

start /b nginx.exe
  • NGINX を設定します
cd C:\Program Files\nginx-1.29.1\conf
テキストエディタで nginx.conf を開いて編集します

以下のディレクティブを使用します。myems-api サービスが別のサーバーでホストされている場合は、デフォルトの myems-api URL http://127.0.0.1:8000/ を実際の URL に置き換えます。

server {
listen 80;
server_name myems-web;
location / {
root C:\myems-web\build;
index index.html index.htm;
# ページ更新時の404エラーを回避するために try_files ディレクティブを追加します
try_files $uri /index.html;
}
## CORS の問題を回避するために、Nginx を使用して myems-api をパス /api にプロキシします
## 'server' 内に別の location /api を追加します
## myems-api サービスが別のサーバーでホストされている場合は、デフォルトの myems-api URL http://127.0.0.1:8000/ を実際の URL に置き換えます
location /api {
proxy_pass http://127.0.0.1:8000/;
proxy_connect_timeout 75;
proxy_read_timeout 600;
send_timeout 600;
}
}

Nginx を再起動します

cd C:\Program Files\nginx-1.29.1
nginx.exe -s stop
start /b nginx.exe
  • MyEMS Web UI をインストールします:

NodeJS をインストールします: https://nodejs.org/zh-cn バージョン要件:

  • Node.js 22.22.2, 24.5.0 以降
  • npm 10.9.7, 11.5.1 以降
例: C:\Program Files\nodejs
バージョン要件:
- Node.js 22.22.2, 24.5.0 以降
- npm 10.9.7, 11.5.1 以降
環境変数を設定します

設定ファイルを変更します:

cd C:\myems\myems-web
テキストエディタで開いて編集: src/config.js

コンパイルします:

npm i
npm run build
ビルドディレクトリが C:\myems\myems-web に生成されます
mkdir C:\myems-web
move "C:\myems\myems-web\build" "C:\myems-web"

タイムアウトエラーでコンパイルに失敗した場合:

npm error code EIDLETIMEOUT
npm error Idle timeout reached for host `registry.npmjs.org:443`
npm error A complete log of this run can be found in

以下のコマンドを実行して国内ミラーに切り替えます:

npm config set registry https://registry.npmmirror.com/

インストール後

おめでとうございます!これで MyEMS Admin UI と MyEMS Web UI にログインできます。

デフォルトポート

MyEMS Web UI: 80

MyEMS API: 8000

MyEMS Admin UI: 8001

サーバーのアドレスが 192.168.1.8 であると仮定します(実際のサーバーアドレスに置き換えてください) MyEMS Web UI のアドレスは http://192.168.1.8 です(80は省略可能) MyEMS Admin UI のアドレスは http://192.168.1.8:8001 です

デフォルトパスワード

MyEMS Admin UI

ユーザー名:

administrator

パスワード:

!MyEMS1

MyEMS Web UI

ユーザー名:

administrator

パスワード:

!MyEMS1