Vai al contenuto principale

Windows 10 / 11 / Server

In questa guida, si installerà MyEMS su un server Windows 10 / 11 / Server.

Prerequisiti

Questa guida spiega come installare MyEMS su Windows 10, Windows 11 e Windows Server (2022). I requisiti hardware dipendono dal database scelto e dal numero di dispositivi collegati al sistema. Per eseguire MyEMS, MySQL e Python 3.10, 3.11 o 3.12 su un singolo computer, sono necessari almeno 8 GB di RAM.

Clonare il codice sorgente:

Eseguire come amministratore, Windows PowerShell
cd C:\
git clone https://gitee.com/myems/myems

Installare Python 3.10

https://www.python.org/downloads/windows/
Pacchetto Python 3.10.11 versione 64-bit per sistemi a 64 bit
Scaricare Windows installer (64-bit)
Eseguire il programma di installazione di Python
Fare doppio clic: python-3.10.11-amd64.exe
Selezionare "Add py... to PATH" e fare clic su "Customize installation"
Assicurarsi che tutte le opzioni siano selezionate, specialmente pip; fare clic su "Next"
Selezionare la prima opzione, si consiglia di modificare la posizione di installazione di Python, quindi fare clic su "install"
Nota: L'installazione predefinita è in: C:\Program Files\Python310. Modificare in C:\Python310
Una volta completata l'installazione, fare clic su "close"
Nel prompt dei comandi, digitare python, premere Invio; se appare il numero di versione di Python, l'installazione è riuscita

Passo 1 Database

Consultare Database

Di seguito sono riportati i passaggi dettagliati per scaricare e installare MySQL (esempio con MySQL 8.0, edizione Community gratuita).

1.1 Scaricare il programma di installazione di MySQL

  1. Aprire il sito ufficiale: https://dev.mysql.com/downloads/mysql/
  2. Scegliere la piattaforma Windows, di solito due opzioni:
    • mysql-installer-web-community (installazione online, dimensioni ridotte)
    • mysql-installer-community (programma completo offline, consigliato)
  3. Fare clic su Download, se viene richiesto l'accesso, scegliere "No thanks, just start my download"

1.2 Installare MySQL

  1. Fare doppio clic per eseguire il programma di installazione scaricato (sono necessari i privilegi di amministratore)
  2. Scegliere il tipo di installazione (consigliato: Developer Default o Custom)
    • Developer Default: installa MySQL Server, Workbench, Shell e altri strumenti comuni
    • Custom: consente di personalizzare i componenti
  3. Fare clic su Next; il programma di installazione verifica automaticamente le dipendenze e scarica i componenti mancanti
  4. Fare clic su Execute per avviare l'installazione, fare clic su Next una volta completata

1.3 Configurare MySQL Server

  1. Type and Networking

    • Config Type: scegliere Development Computer
    • Port: predefinita 3306 (modificabile)
    • Fare clic su Next
  2. Authentication Method

    • Consigliato: scegliere Use Strong Password Encryption (crittografia più recente)
    • Oppure la seconda opzione (compatibilità con versioni precedenti)
    • Fare clic su Next
  3. Accounts and Roles

    • Impostare la password di root (da non dimenticare)
    • Opzionale: aggiungere un utente normale (può essere saltato)
    • Fare clic su Next
  4. Windows Service

    • Selezionare Configure MySQL Server as a Windows Service
    • Service Name: MySQL80 (predefinito)
    • Selezionare Start the MySQL Server at System Startup
    • Fare clic su Next
  5. Apply Configuration

    • Fare clic su Execute per applicare la configurazione
    • Tutti i passaggi mostreranno un segno di spunta verde in caso di successo
    • Fare clic su Finish

1.4 Completare l'installazione

  1. Continuare a fare clic su Next fino a vedere Finish
  2. Selezionare Start MySQL Workbench after Setup (opzionale)
  3. Fare clic su Finish per uscire dalla procedura guidata di installazione

1.5 Verificare l'installazione

Metodo 1: Testare dalla riga di comando

  1. Premere Win + R, digitare cmd e premere Invio
  2. Digitare:
    mysql -u root -p
  3. Inserire la password di root impostata
  4. La comparsa del prompt mysql> conferma il successo

Metodo 2: Verificare il servizio

  1. Premere Win + R, digitare services.msc
  2. Trovare MySQL80, lo stato deve essere "In esecuzione"

1.6 Impostazioni iniziali comuni (opzionale)

Dopo essersi connessi a MySQL, eseguire:

-- Mostrare i database
show databases;

-- Creare un nuovo database
create database mydb;

-- Creare un utente per l'accesso remoto (opzionale)
create user 'myems'@'%' identified by 'password';
grant all privileges on *.* to 'myems'@'%';
flush privileges;

Problemi comuni

ProblemaSoluzione
La porta 3306 è già in usoCambiare porta durante l'installazione (es. 3307)
Password di root dimenticataAvviare MySQL senza la tabella dei privilegi (procedura complessa)
Impossibile avviare il servizioVerificare se la porta è in uso o consultare i log degli eventi di Windows

Hai bisogno di aiuto con un problema specifico riscontrato durante l'installazione?

Passo 2 myems-api

  • Installare il servizio myems-api:
# 1. Aprire una nuova finestra CMD come amministratore

# 2. Impostare le variabili d'ambiente
set PIP_NO_USER=1
set PYTHONNOUSERSITE=1

# 3. Accedere alla directory del progetto
cd C:\myems\myems-api

# 4. Reinstallare tutti i pacchetti
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

Creare il file .env da example.env e modificarlo se necessario:

copy .\example.env .env
Aprire e modificare con un editor di testo: C:\myems\myems-api\.env
Modificare le informazioni di connessione al database

Installare il servizio Windows:

cmd

# 1. Eliminare completamente il vecchio servizio
sc delete MyEMSAPI

# 2. Creare la directory dei log
mkdir C:\myems\myems-api\logs 2>nul

# 3. Scaricare WinSW (se non già scaricato)
https://github.com/winsw/winsw/releases
Rinominare WinSW-x64.exe in MyEMSAPI.exe

cd C:\myems\myems-api

# 4. Creare il file di configurazione
Creare `C:\myems\myems-api\MyEMSAPI.xml` (con notepad o il seguente comando):
notepad C:\myems\myems-api\MyEMSAPI.xml
Copiare il seguente contenuto nel blocco note:
<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>
Salvare e chiudere il blocco note.

# 5. Installare il servizio
MyEMSAPI.exe install

# 6. Avviare il servizio
MyEMSAPI.exe start

# 7. Verificare lo stato
MyEMSAPI.exe status

# 8. Testare il servizio
curl http://localhost:8000

# 9. In caso di problemi, consultare i log
C:\myems\myems-api\logs

Passo 3 myems-admin

Avviare il servizio nginx in background:

start /b nginx.exe
  • Configurare NGINX
cd C:\Program Files\nginx-1.29.1\conf
Aprire e modificare nginx.conf con un editor di testo

Nella sezione 'http', aggiungere alcune direttive:

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;
...

}

Scrivere le seguenti direttive; se il servizio myems-api è in esecuzione su un altro server, sostituire l'indirizzo predefinito http://127.0.0.1:8000/ con l'indirizzo reale.

  server {
listen 8001;
server_name myems-admin;
location / {
root C:\myems-admin;
index index.html index.htm;
}
## Per evitare problemi CORS, utilizzare Nginx come proxy per myems-api sul percorso /api
## Aggiungere un'altra sezione location /api in 'server'
## Sostituire l'URL predefinito di myems-api http://127.0.0.1:8000/ con l'URL reale se il servizio myems-api è ospitato su un server diverso
location /api {
proxy_pass http://127.0.0.1:8000/;
proxy_connect_timeout 75;
proxy_read_timeout 600;
send_timeout 600;
}
}
  • Installare myems-admin: Se il server non può connettersi a Internet, comprimere la cartella myems/myems-admin e trasferirla sul server,
  • Quindi estrarla in c:\myems-admin

Verificare il file di configurazione e modificarlo se necessario:

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

La cartella "upload" contiene i file caricati dagli utenti. Durante l'aggiornamento di myems-admin, non eliminare/spostare/sostituire la cartella "upload".

  C:\myems-admin\upload

Riavviare il servizio nginx:

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

In questo passaggio, si installerà il servizio myems-modbus-tcp.

```bash
cd C:\myems\myems-modbus-tcp
# 1. Aprire una nuova finestra CMD come amministratore

# 2. Impostare le variabili d'ambiente
set PIP_NO_USER=1
set PYTHONNOUSERSITE=1

# 3. Accedere alla directory del progetto
cd C:\myems\myems-modbus-tcp

# 4. Reinstallare tutti i pacchetti
C:\Python310\python.exe -m pip install --no-cache-dir --no-user -r requirements.txt

Creare il file .env da example.env e modificarlo se necessario:

copy .\example.env .env
Aprire e modificare con un editor di testo: C:\myems\myems-modbus-tcp\.env

Installare il servizio Windows:

# 1. Eliminare completamente il vecchio servizio
sc delete MyEMSModbusTCP

# 2. Creare la directory dei log
mkdir C:\myems\myems-modbus-tcp\logs 2>nul

# 3. Scaricare WinSW (se non già scaricato)
https://github.com/winsw/winsw/releases
Rinominare WinSW-x64.exe in MyEMSModbusTCP.exe

cd C:\myems\myems-modbus-tcp

# 4. Creare il file di configurazione
Creare `C:\myems\myems-modbus-tcp\MyEMSModbusTCP.xml` (con notepad o il seguente comando):
notepad C:\myems\myems-modbus-tcp\MyEMSModbusTCP.xml
Copiare il seguente contenuto nel blocco note:
<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>
Salvare e chiudere il blocco note.

# 5. Installare il servizio
MyEMSModbusTCP.exe install

# 6. Avviare il servizio
MyEMSModbusTCP.exe start

# 7. Verificare lo stato
MyEMSModbusTCP.exe status

# 8. In caso di problemi, consultare i log
C:\myems\myems-modbus-tcp\logs

Se l'esecuzione di MyEMSModbusTCP.exe install e MyEMSModbusTCP.exe start riesce ma MyEMSModbusTCP.exe status indica ancora "Stopped", è possibile che il redistributable VC++ non sia installato. Indirizzo di download di VC++: https://learn.microsoft.com/zh-cn/cpp/windows/latest-supported-vc-redist?view=msvc-170#visual-studio-2015-2017-2019-and-2022

Passo 5 myems-cleaning

In questo passaggio, si installerà il servizio myems-cleaning.

cd C:\myems\myems-cleaning
# 1. Aprire una nuova finestra CMD come amministratore

# 2. Impostare le variabili d'ambiente
set PIP_NO_USER=1
set PYTHONNOUSERSITE=1

# 3. Accedere alla directory del progetto
cd C:\myems\myems-cleaning

# 4. Reinstallare tutti i pacchetti
C:\Python310\python.exe -m pip install --no-cache-dir --no-user -r requirements.txt

Creare il file .env da example.env e modificarlo se necessario:

copy C:\myems\myems-cleaning\example.env .env
Aprire e modificare con un editor di testo: C:\myems\myems-cleaning\.env

Installare il servizio Windows:

# 1. Eliminare completamente il vecchio servizio
sc delete MyEMSCleaning

# 2. Creare la directory dei log
mkdir C:\myems\myems-cleaning\logs 2>nul

# 3. Scaricare WinSW (se non già scaricato)
https://github.com/winsw/winsw/releases
Rinominare WinSW-x64.exe in MyEMSCleaning.exe

cd C:\myems\myems-cleaning

# 4. Creare il file di configurazione
Creare `C:\myems\myems-cleaning\MyEMSCleaning.xml` (con notepad o il seguente comando):
notepad C:\myems\myems-cleaning\MyEMSCleaning.xml
Copiare il seguente contenuto nel blocco note:
<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>
Salvare e chiudere il blocco note.

# 5. Installare il servizio
MyEMSCleaning.exe install

# 6. Avviare il servizio
MyEMSCleaning.exe start

# 7. Verificare lo stato
MyEMSCleaning.exe status

# 8. In caso di problemi, consultare i log
C:\myems\myems-cleaning\logs

Passo 6 myems-normalization

In questo passaggio, si installerà il servizio myems-normalization.

cd C:\myems\myems-normalization
# 1. Aprire una nuova finestra CMD come amministratore

# 2. Impostare le variabili d'ambiente
set PIP_NO_USER=1
set PYTHONNOUSERSITE=1

# 3. Accedere alla directory del progetto
cd C:\myems\myems-normalization

# 4. Reinstallare tutti i pacchetti
C:\Python310\python.exe -m pip install --no-cache-dir --no-user -r requirements.txt

Creare il file .env da example.env e modificarlo se necessario:

copy C:\myems\myems-normalization\example.env .env
Aprire e modificare con un editor di testo: C:\myems\myems-normalization\.env

Installare il servizio Windows:

# 1. Eliminare completamente il vecchio servizio
sc delete MyEMSNormalization

# 2. Creare la directory dei log
mkdir C:\myems\myems-normalization\logs 2>nul

# 3. Scaricare WinSW (se non già scaricato)
https://github.com/winsw/winsw/releases
Rinominare WinSW-x64.exe in MyEMSNormalization.exe

cd C:\myems\myems-normalization

# 4. Creare il file di configurazione
Creare `C:\myems\myems-normalization\MyEMSNormalization.xml` (con notepad o il seguente comando):
notepad C:\myems\myems-normalization\MyEMSNormalization.xml
Copiare il seguente contenuto nel blocco note:
<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>
Salvare e chiudere il blocco note.

# 5. Installare il servizio
MyEMSNormalization.exe install

# 6. Avviare il servizio
MyEMSNormalization.exe start

# 7. Verificare lo stato
MyEMSNormalization.exe status

# 8. In caso di problemi, consultare i log
C:\myems\myems-normalization\logs

Passo 7 myems-aggregation

In questo passaggio, si installerà il servizio myems-aggregation.

cd C:\myems\myems-aggregation
# 1. Aprire una nuova finestra CMD come amministratore

# 2. Impostare le variabili d'ambiente
set PIP_NO_USER=1
set PYTHONNOUSERSITE=1

# 3. Accedere alla directory del progetto
cd C:\myems\myems-aggregation

# 4. Reinstallare tutti i pacchetti
C:\Python310\python.exe -m pip install --no-cache-dir --no-user -r requirements.txt

Creare il file .env da example.env e modificarlo se necessario:

copy C:\myems\myems-aggregation\example.env .env
Aprire e modificare con un editor di testo: C:\myems\myems-aggregation\.env

Installare il servizio Windows:

# 1. Eliminare completamente il vecchio servizio
sc delete MyEMSAggregation

# 2. Creare la directory dei log
mkdir C:\myems\myems-aggregation\logs 2>nul

# 3. Scaricare WinSW (se non già scaricato)
https://github.com/winsw/winsw/releases
Rinominare WinSW-x64.exe in MyEMSAggregation.exe

cd C:\myems\myems-aggregation

# 4. Creare il file di configurazione
Creare `C:\myems\myems-aggregation\MyEMSAggregation.xml` (con notepad o il seguente comando):
notepad C:\myems\myems-aggregation\MyEMSAggregation.xml
Copiare il seguente contenuto nel blocco note:
<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>
Salvare e chiudere il blocco note.

# 5. Installare il servizio
MyEMSAggregation.exe install

# 6. Avviare il servizio
MyEMSAggregation.exe start

# 7. Verificare lo stato
MyEMSAggregation.exe status

# 8. In caso di problemi, consultare i log
C:\myems\myems-aggregation\logs

Passo 8 myems-web

In questo passaggio, si installerà il servizio myems-web.

Avviare il servizio nginx:

start /b nginx.exe
  • Configurare NGINX
cd C:\Program Files\nginx-1.29.1\conf
Aprire e modificare nginx.conf con un editor di testo

Utilizzare le seguenti direttive; se il servizio myems-api è ospitato su un server diverso, sostituire l'URL predefinito di myems-api http://127.0.0.1:8000/ con l'URL reale.

server {
listen 80;
server_name myems-web;
location / {
root C:\myems-web\build;
index index.html index.htm;
# aggiungere la direttiva try_files per evitare l'errore 404 durante l'aggiornamento delle pagine
try_files $uri /index.html;
}
## Per evitare problemi CORS, utilizzare Nginx come proxy per myems-api sul percorso /api
## Aggiungere un'altra sezione location /api in 'server'
## Sostituire l'URL predefinito di myems-api http://127.0.0.1:8000/ con l'URL reale se il servizio myems-api è ospitato su un server diverso
location /api {
proxy_pass http://127.0.0.1:8000/;
proxy_connect_timeout 75;
proxy_read_timeout 600;
send_timeout 600;
}
}

Riavviare Nginx

cd C:\Program Files\nginx-1.29.1
nginx.exe -s stop
start /b nginx.exe
  • Installare l'interfaccia Web MyEMS:

Installare NodeJS: https://nodejs.org/zh-cn Requisiti di versione:

  • Node.js 22.22.2, 24.5.0 o superiore
  • npm 10.9.7, 11.5.1 o superiore
Esempio: C:\Program Files\nodejs
Requisiti di versione:
- Node.js 22.22.2, 24.5.0 o superiore
- npm 10.9.7, 11.5.1 o superiore
Configurare le variabili d'ambiente

Modificare il file di configurazione:

cd C:\myems\myems-web
Aprire e modificare con un editor di testo: src/config.js

Compilare:

npm i
npm run build
La directory build verrà generata in C:\myems\myems-web
mkdir C:\myems-web
move "C:\myems\myems-web\build" "C:\myems-web"

Se la compilazione fallisce con un errore di timeout:

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

Eseguire il seguente comando per passare a un mirror nazionale:

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

Dopo l'installazione

Congratulazioni! Ora è possibile accedere all'interfaccia di amministrazione di MyEMS e all'interfaccia Web di MyEMS.

Porte predefinite

Interfaccia Web MyEMS: 80

API MyEMS: 8000

Interfaccia di amministrazione MyEMS: 8001

Supponendo che l'indirizzo del server sia 192.168.1.8 (sostituire con l'indirizzo reale del server) L'indirizzo dell'interfaccia Web MyEMS è http://192.168.1.8 (80 può essere omesso) L'indirizzo dell'interfaccia di amministrazione MyEMS è http://192.168.1.8:8001

Password predefinite

Interfaccia di amministrazione MyEMS

Nome utente:

administrator

Password:

!MyEMS1

Interfaccia Web MyEMS

Nome utente:

administrator

Password:

!MyEMS1