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
- Aprire il sito ufficiale: https://dev.mysql.com/downloads/mysql/
- Scegliere la piattaforma Windows, di solito due opzioni:
- mysql-installer-web-community (installazione online, dimensioni ridotte)
- mysql-installer-community (programma completo offline, consigliato)
- Fare clic su Download, se viene richiesto l'accesso, scegliere "No thanks, just start my download"
1.2 Installare MySQL
- Fare doppio clic per eseguire il programma di installazione scaricato (sono necessari i privilegi di amministratore)
- 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
- Fare clic su Next; il programma di installazione verifica automaticamente le dipendenze e scarica i componenti mancanti
- Fare clic su Execute per avviare l'installazione, fare clic su Next una volta completata
1.3 Configurare MySQL Server
-
Type and Networking
- Config Type: scegliere Development Computer
- Port: predefinita 3306 (modificabile)
- Fare clic su Next
-
Authentication Method
- Consigliato: scegliere Use Strong Password Encryption (crittografia più recente)
- Oppure la seconda opzione (compatibilità con versioni precedenti)
- Fare clic su Next
-
Accounts and Roles
- Impostare la password di root (da non dimenticare)
- Opzionale: aggiungere un utente normale (può essere saltato)
- Fare clic su Next
-
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
-
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
- Continuare a fare clic su Next fino a vedere Finish
- Selezionare Start MySQL Workbench after Setup (opzionale)
- Fare clic su Finish per uscire dalla procedura guidata di installazione
1.5 Verificare l'installazione
Metodo 1: Testare dalla riga di comando
- Premere
Win + R, digitarecmde premere Invio - Digitare:
mysql -u root -p - Inserire la password di root impostata
- La comparsa del prompt
mysql>conferma il successo
Metodo 2: Verificare il servizio
- Premere
Win + R, digitareservices.msc - 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
| Problema | Soluzione |
|---|---|
| La porta 3306 è già in uso | Cambiare porta durante l'installazione (es. 3307) |
| Password di root dimenticata | Avviare MySQL senza la tabella dei privilegi (procedura complessa) |
| Impossibile avviare il servizio | Verificare 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
- Installare il server NGINX: https://nginx.org/en/download.html
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 installeMyEMSModbusTCP.exe startriesce maMyEMSModbusTCP.exe statusindica 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 inEseguire 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