Kylin OS
Dans ce guide, vous déployerez MyEMS sur un serveur Kylin V11.
Prérequis
Ce guide décrit comment installer MyEMS sur Kylin V11. Les exigences matérielles dépendent de la base de données choisie et du nombre d'appareils connectés au système. Pour exécuter MyEMS et MySQL sur une seule machine, vous avez besoin d'au moins 8 Go de RAM.
Mettez à jour le système et installez les outils :
sudo yum update
sudo yum install git
systemctl stop firewalld
Cloner le code source :
cd ~
git clone https://gitee.com/myems/myems
Étape 1 Base de données
Voir Base de données
Étape 2 myems-api
- Installer le service myems-api :
sudo cp -r ~/myems/myems-api /myems-api
cd /myems-api
sudo pip install -r requirements.txt
Créez le fichier .env à partir de example.env et modifiez-le si nécessaire :
sudo cp /myems-api/example.env /myems-api/.env
sudo nano /myems-api/.env
Ajouter le port au pare-feu :
sudo firewall-cmd --zone=public --add-port=8000/tcp --permanent
sudo firewall-cmd --reload
Installer les fichiers de configuration systemd :
sudo cp /myems-api/myems-api.service /lib/systemd/system/
sudo cp /myems-api/myems-api.socket /lib/systemd/system/
sudo cp /myems-api/myems-api.conf /usr/lib/tmpfiles.d/
Ensuite, activez les services pour qu'ils démarrent automatiquement au démarrage :
sudo systemctl enable myems-api.socket
sudo systemctl enable myems-api.service
Démarrer les services :
sudo systemctl start myems-api.socket
sudo systemctl start myems-api.service
Étape 3 myems-admin
- Installer le serveur NGINX
Voir http://nginx.org/en/linux_packages.html#RHEL
Activer le service nginx :
yum install -y nginx
sudo systemctl start nginx.service
- Configurer NGINX
sudo vi /etc/nginx/nginx.conf
Dans la section 'http', ajoutez ces 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;
...
}
Créez un nouveau fichier sous /etc/nginx/conf.d/ :
sudo vi /etc/nginx/conf.d/myems-admin.conf
Écrivez les directives suivantes. Si le service myems-api s'exécute sur un autre serveur, remplacez l'adresse par défaut de myems-api http://127.0.0.1:8000/ par l'adresse réelle.
server {
listen 8001;
server_name myems-admin;
location / {
root /var/www/myems-admin;
index index.html index.htm;
}
## Pour éviter le problème CORS, utilisez Nginx pour proxyffer myems-api vers le chemin /api
## Ajoutez un autre emplacement /api dans 'server'
## Remplacez l'URL par défaut de myems-api http://127.0.0.1:8000/ par l'URL réelle si le service myems-api est hébergé sur un serveur différent
location /api {
proxy_pass http://127.0.0.1:8000/;
proxy_connect_timeout 75;
proxy_read_timeout 600;
send_timeout 600;
}
}
- Installer myems-admin : Si le serveur ne peut pas se connecter à Internet, compressez le dossier myems/myems-admin, téléchargez-le sur le serveur, puis extrayez-le vers ~/myems/myems-admin
sudo mkdir /var/www
sudo cp -r ~/myems/myems-admin /var/www/myems-admin
sudo chmod 0755 -R /var/www/myems-admin
Vérifiez le fichier de configuration et apportez des modifications si nécessaire :
sudo nano /var/www/myems-admin/app/api.js
Avertissement
Le dossier 'upload' est destiné aux fichiers téléchargés par l'utilisateur. Ne supprimez / déplacez / remplacez pas le dossier 'upload' lors de la mise à niveau de myems-admin.
/var/www/myems-admin/upload
Ajouter le port au pare-feu :
sudo semanage port -a -t http_port_t -p tcp 8001
sudo firewall-cmd --zone=public --add-port=8001/tcp --permanent
sudo firewall-cmd --reload
Redémarrer le service nginx :
sudo systemctl restart nginx.service
Astuce
Si vous rencontrez une erreur NGINX "403 Interdit", vous pouvez la corriger en changeant le mode SELinux avec la commande 'sudo setforce 0'.
Étape 4 myems-modbus-tcp
Dans cette étape, vous installerez le service myems-modbus-tcp.
sudo cp -r ~/myems/myems-modbus-tcp /myems-modbus-tcp
cd /myems-modbus-tcp
sudo pip install -r requirements.txt
Copiez le fichier example.env vers .env et modifiez le fichier .env :
sudo cp /myems-modbus-tcp/example.env /myems-modbus-tcp/.env
sudo nano /myems-modbus-tcp/.env
Installer le service systemd :
sudo cp myems-modbus-tcp.service /lib/systemd/system/
Activer le service :
sudo systemctl enable myems-modbus-tcp.service
Démarrer le service :
sudo systemctl start myems-modbus-tcp.service
Surveiller le service :
sudo systemctl status myems-modbus-tcp.service
Voir le journal :
cat /myems-modbus-tcp.log
Étape 5 myems-cleaning
Dans cette étape, vous installerez le service myems-cleaning.
sudo cp -r ~/myems/myems-cleaning /myems-cleaning
cd /myems-cleaning
sudo pip install -r requirements.txt
Copiez le fichier example.env vers .env et modifiez le fichier .env :
sudo cp /myems-cleaning/example.env /myems-cleaning/.env
sudo nano /myems-cleaning/.env
Installer le service systemd :
sudo cp /myems-cleaning/myems-cleaning.service /lib/systemd/system/
Activer le service :
sudo systemctl enable myems-cleaning.service
Démarrer le service :
sudo systemctl start myems-cleaning.service
Surveiller le service :
sudo systemctl status myems-cleaning.service
Voir le journal :
cat /myems-cleaning.log
Étape 6 myems-normalization
Dans cette étape, vous installerez le service myems-normalization.
sudo cp -r ~/myems/myems-normalization /myems-normalization
cd /myems-normalization
sudo pip install -r requirements.txt
Copiez le fichier example.env vers .env et modifiez le fichier .env :
sudo cp /myems-normalization/example.env /myems-normalization/.env
sudo nano /myems-normalization/.env
Installer le service systemd
sudo cp /myems-normalization/myems-normalization.service /lib/systemd/system/
Activer le service :
sudo systemctl enable myems-normalization.service
Démarrer le service :
sudo systemctl start myems-normalization.service
Surveiller le service :
sudo systemctl status myems-normalization.service
Voir le journal :
cat /myems-normalization.log
Étape 7 myems-aggregation
Dans cette étape, vous installerez le service myems-aggregation.
sudo cp -r ~/myems/myems-aggregation /myems-aggregation
cd /myems-aggregation
sudo pip install -r requirements.txt
Copiez le fichier example.env vers .env et modifiez le fichier .env :
sudo cp /myems-aggregation/example.env /myems-aggregation/.env
sudo nano /myems-aggregation/.env
Installer le service systemd
sudo cp /myems-aggregation/myems-aggregation.service /lib/systemd/system/
Activer le service :
sudo systemctl enable myems-aggregation.service
Démarrer le service :
sudo systemctl start myems-aggregation.service
Surveiller le service :
sudo systemctl status myems-aggregation.service
Voir le journal :
cat /myems-aggregation.log
Étape 8 myems-web
Dans cette étape, vous installerez le service myems-web.
- Installer le serveur NGINX. Voir http://nginx.org/en/linux_packages.html#Debian
- Configurer NGINX. Supprimer le fichier par défaut
sudo rm /etc/nginx/sites-enabled/default
sudo rm /etc/nginx/conf.d/default.conf
Ajoutez un nouveau fichier sous /etc/nginx/conf.d/ :
sudo nano /etc/nginx/conf.d/myems-web.conf
Écrivez les directives suivantes. Si le service myems-api est hébergé sur un serveur différent, remplacez l'adresse par défaut de myems-api http://127.0.0.1:8000/ par l'adresse réelle.
server {
listen 80;
server_name myems-web;
location / {
root /var/www/myems-web;
index index.html index.htm;
# ajouter la directive try_files pour éviter l'erreur 404 lors du rafraîchissement des pages
try_files $uri /index.html;
}
## Pour éviter le problème CORS, utilisez Nginx pour proxyffer myems-api vers le chemin /api
## Ajoutez un autre emplacement /api dans 'server'
## remplacez l'URL par défaut de myems-api http://127.0.0.1:8000/ par l'URL réelle si le service myems-api est hébergé sur un serveur différent
location /api {
proxy_pass http://127.0.0.1:8000/;
proxy_connect_timeout 75;
proxy_read_timeout 600;
send_timeout 600;
}
}
- Installer MyEMS Web UI :
Modifier le fichier de configuration :
Remarque
Obtenez un mapboxToken sur https://mapbox.com puis définissez showOnlineMap sur true. Si vous voulez désactiver la fonction de carte en ligne, définissez showOnlineMap sur false.
cd ~/myems/myems-web
sudo nano src/config.js
Compiler :
sudo npm i --unsafe-perm=true --allow-root --legacy-peer-deps
sudo npm run build
Installer : Notez que le chemin ci-dessous doit correspondre au chemin configuré dans nginx.conf.
sudo rm -r /var/www/myems-web
sudo mv build /var/www/myems-web
Ajouter le port au pare-feu :
sudo semanage port -a -t http_port_t -p tcp 80
sudo firewall-cmd --zone=public --add-port=80/tcp --permanent
sudo firewall-cmd --reload
Redémarrer NGINX
sudo systemctl restart nginx
Astuce
Si vous rencontrez une erreur NGINX "500 Erreur Interne du Serveur", vous pouvez la corriger en changeant le mode SELinux avec la commande 'sudo setforce 0'.
Après l'installation
Félicitations ! Vous pouvez maintenant vous connecter à MyEMS Admin UI et Web UI.
Ports par défaut
MyEMS Web UI : 80 MyEMS API : 8000 MyEMS Admin UI : 8001
Supposons que l'adresse du serveur est 192.168.1.8 (remplacez par votre véritable adresse de serveur) Adresse MyEMS Web UI : http://192.168.1.8 (port 80 peut être omis) Adresse MyEMS Admin UI : http://192.168.1.8:8001
Mots de passe par défaut
MyEMS Admin UI Nom d'utilisateur :
administrator
Mot de passe :
!MyEMS1
MyEMS Web UI Nom d'utilisateur :
administrator
Mot de passe :
!MyEMS1
Dépannage
Installation de MySQL 8.0
1. Préparation
Vérifier l'environnement système
# Vérifier la version du système
cat /etc/redhat-release
# Vérifier si MySQL est déjà installé
rpm -qa | grep mysql
rpm -qa | grep mariadb
# Désinstaller mariadb s'il existe
rpm -e --nodeps mariadb-libs-*
2. Télécharger le bundle rpm officiel MySQL
https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.45-1.el8.x86_64.rpm-bundle.tar
3. Installer MySQL 8.0
tar -xvf *.tar
yum localinstall *.rpm
# Si vous rencontrez des problèmes de clé GPG, utilisez ceci temporairement
yum install -y mysql-community-server --nogpgcheck
4. Démarrer le service MySQL
# Démarrer MySQL
systemctl start mysqld
# Activer le démarrage automatique au démarrage
systemctl enable mysqld
# Vérifier le statut du service
systemctl status mysqld
5. Obtenir le mot de passe initial
# Vérifier le mot de passe temporaire généré par MySQL
grep 'temporary password' /var/log/mysqld.log
6. Configuration sécurisée
# Exécuter le script d'installation sécurisée
mysql_secure_installation
Suivez les invites :
- Saisir le mot de passe temporaire
- Définir un nouveau mot de passe (doit inclure majuscules, minuscules, chiffres et caractères spéciaux)
- Changer le mot de passe root ? Y
- Supprimer les utilisateurs anonymes ? Y
- Interdire la connexion distant de root ? Choix selon vos besoins
- Supprimer la base de données de test ? Y
- Recharger les tables de privilèges ? Y
7. Se connecter et vérifier MySQL
# Se connecter à MySQL
mysql -u root -p
# Vérifier la version
SELECT VERSION();
# Lister les bases de données
SHOW DATABASES;
8. Configurer le jeu de caractères (Optionnel)
Modifier le fichier de configuration :
vi /etc/my.cnf
Ajoutez ce qui suit :
[client]
default-character-set=utf8mb4
[mysql]
default-character-set=utf8mb4
[mysqld]
character-set-server=utf8mb4
collation