跳到主要內容

Windows 10 / 11 / Server

在本指南中,您將在Windows 10 / 11 / Server伺服器上部署MyEMS。

前提

本指南介紹如何在Windows 10, Windows 11 及 Windows server(2022)上安裝MyEMS。硬體需求取決於所選資料庫和連接到系統的設備數量。要在一臺電腦上運行MyEMS、MySQL和python3.10, 3.11, 或 3.12中任一版本, 至少需要8GB的記憶體。

克隆源代碼:

以管理員身份運行,Windows PowerShell
cd C:\
git clone https://gitee.com/myems/myems

安裝python10

https://www.python.org/downloads/windows/
python安裝包3.10.11 版本 64-bit是64位系統
Download 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,回車出現python版本號即安裝成功

第1步 資料庫

參考 Database

以下是下載並安裝 MySQL 資料庫的詳細步驟(以 MySQL 8.0 為例,社區版免費)。

1.1、下載 MySQL 安裝包

  1. 打開官網:https://dev.mysql.com/downloads/mysql/
  2. 選擇 Windows 平臺,通常有兩個選項:    - mysql-installer-web-community(線上安裝,體積小)    - mysql-installer-community(離線完整包,推薦)
  3. 點擊 Download,如需登錄可跳過(No thanks, just start my download)

1.2、安裝 MySQL

  1. 雙擊運行下載的安裝程式(可能需要管理員許可權)
  2. 選擇安裝類型(推薦選 Developer DefaultCustom)    - 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(新版加密)    - 或選第二個(相容老版本)    - 點擊 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. 繼續點擊 Next,直到出現 Finish
  2. 勾選 Start MySQL Workbench after Setup(可選)
  3. 點擊 Finish 退出安裝嚮導

1.5、驗證安裝

方法1:命令行測試

  1. Win + R,輸入 cmd 回車
  2. 輸入:    bash    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檔,並根據需要編輯.env:

copy .\example.env .env
用文本編輯工具打開並編輯  C:\myems\myems-api\.env
修改數據資訊

安裝 Windows服務:

完整安裝步驟(以管理員身份運行 CMD)

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

In the 'http' section, add some directives:

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服務運行在其他伺服器上則用實際的地址替換 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;
      }
      ## To avoid CORS issue, use Nginx to proxy myems-api to path /api
      ## Add another location /api in 'server'
      ## Replace the default myems-api url http://127.0.0.1:8000/ with actual url if the myems-api servcie hosted on a different server
      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-admins\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服務。

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檔,並根據需要編輯.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 install 和 MyEMSModbusTCP.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:\Program Files\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檔,並根據需要編輯.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檔,並根據需要編輯.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\MyEMSCleaning.xml`(用 notepad 或以下命令):
notepad C:\myems\myems-normalization\MyEMSCleaning.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檔,並根據需要編輯.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-normalization

# 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地址http://127.0.0.1:8000/

server {
    listen                 80;
    server_name     myems-web;
    location / {
        root   C:\myems-web\build;
        index index.html index.htm;
        # add try_files directive to avoid 404 error while refreshing pages
        try_files $uri  /index.html;
    }
    ## To avoid CORS issue, use Nginx to proxy myems-api to path /api
    ## Add another location /api in 'server'
    ## replace the default myems-api url http://127.0.0.1:8000/ with actual url if the myems-api servcie hosted on different server
    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
配置環境變數

修改配置檔:

cd C:\myems\myems-web
用文本編輯工具打開並編輯 src/config.js

編譯:

npm i
npm run build
在C:\myems\myems-web下生成build目錄
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和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