Zum Hauptinhalt springen

Kylin OS

In dieser Anleitung installieren Sie MyEMS auf einem Kylin V11-Server.

Voraussetzungen

Diese Anleitung beschreibt die Installation von MyEMS unter Kylin V11. Die Hardwareanforderungen hängen von der gewählten Datenbank und der Anzahl der an das System angeschlossenen Geräte ab. Um MyEMS und MySQL auf einem einzigen Rechner zu betreiben, benötigen Sie mindestens 8 GB RAM.

Aktualisieren Sie das System und installieren Sie Tools:

sudo yum update
sudo yum install git
systemctl stop firewalld

Klonen Sie den Quellcode:

cd ~
git clone https://gitee.com/myems/myems

Schritt 1 Datenbank

Siehe Datenbank

Schritt 2 myems-api

  • Installieren Sie den myems-api-Dienst:
sudo cp -r ~/myems/myems-api /myems-api
cd /myems-api
sudo pip install -r requirements.txt

Erstellen Sie die .env-Datei basierend auf example.env und bearbeiten Sie sie nach Bedarf:

sudo cp /myems-api/example.env /myems-api/.env
sudo nano /myems-api/.env

Fügen Sie den Port zur Firewall hinzu:

sudo firewall-cmd --zone=public --add-port=8000/tcp --permanent
sudo firewall-cmd --reload

Installieren Sie die systemd-Konfigurationsdateien:

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/

Aktivieren Sie als Nächstes die Dienste, damit sie beim Booten automatisch gestartet werden:

sudo systemctl enable myems-api.socket
sudo systemctl enable myems-api.service

Starten Sie die Dienste:

sudo systemctl start myems-api.socket
sudo systemctl start myems-api.service

Schritt 3 myems-admin

  • Installieren Sie den NGINX-Server

Siehe http://nginx.org/en/linux_packages.html#RHEL

Aktivieren Sie den nginx-Dienst:

yum install -y nginx
sudo systemctl start nginx.service
  • Konfigurieren Sie NGINX
sudo vi /etc/nginx/nginx.conf

Fügen Sie im Bereich 'http' einige Anweisungen hinzu:

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

}

Erstellen Sie eine neue Datei unter /etc/nginx/conf.d/:

sudo vi /etc/nginx/conf.d/myems-admin.conf

Schreiben Sie die folgenden Anweisungen. Wenn der myems-api-Dienst auf einem anderen Server ausgeführt wird, ersetzen Sie die Standardadresse http://127.0.0.1:8000/ durch die tatsächliche Adresse.

server {
listen 8001;
server_name myems-admin;
location / {
root /var/www/myems-admin;
index index.html index.htm;
}
## Um CORS-Probleme zu vermeiden, verwenden Sie Nginx, um myems-api an den Pfad /api zu proxyieren
## Fügen Sie einen weiteren Standort /api in 'server' hinzu
## Ersetzen Sie die Standard-myems-api-URL http://127.0.0.1:8000/ durch die tatsächliche URL, wenn der myems-api-Dienst auf einem anderen Server gehostet wird
location /api {
proxy_pass http://127.0.0.1:8000/;
proxy_connect_timeout 75;
proxy_read_timeout 600;
send_timeout 600;
}
}
  • Installieren Sie myems-admin: Wenn der Server keine Verbindung zum Internet herstellen kann, komprimieren Sie den Ordner myems/myems-admin, laden Sie ihn auf den Server hoch und extrahieren Sie ihn dann nach ~/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

Überprüfen Sie die Konfigurationsdatei und nehmen Sie bei Bedarf Änderungen vor:

sudo nano /var/www/myems-admin/app/api.js

Warnung

Der Ordner 'upload' ist für vom Benutzer hochgeladene Dateien vorgesehen. Löschen, verschieben oder überschreiben Sie den Ordner 'upload' nicht, wenn Sie myems-admin aktualisieren.

 /var/www/myems-admin/upload

Fügen Sie den Port zur Firewall hinzu:

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

Starten Sie den nginx-Dienst neu:

sudo systemctl restart nginx.service

Tipp

Wenn bei NGINX der Fehler '403 Verboten' auftritt, können Sie ihn beheben, indem Sie den SELinux-Modus mit dem Befehl 'sudo setforce 0' ändern.

Schritt 4 myems-modbus-tcp

In diesem Schritt installieren Sie den myems-modbus-tcp-Dienst.

sudo cp -r ~/myems/myems-modbus-tcp /myems-modbus-tcp
cd /myems-modbus-tcp
sudo pip install -r requirements.txt

Kopieren Sie die Datei example.env nach .env und bearbeiten Sie die .env-Datei:

sudo cp /myems-modbus-tcp/example.env /myems-modbus-tcp/.env
sudo nano /myems-modbus-tcp/.env

Installieren Sie den systemd-Dienst:

sudo cp myems-modbus-tcp.service /lib/systemd/system/

Aktivieren Sie den Dienst:

sudo systemctl enable myems-modbus-tcp.service

Starten Sie den Dienst:

sudo systemctl start myems-modbus-tcp.service

Überwachen Sie den Dienst:

sudo systemctl status myems-modbus-tcp.service

Zeigen Sie das Protokoll an:

cat /myems-modbus-tcp.log

Schritt 5 myems-cleaning

In diesem Schritt installieren Sie den myems-cleaning-Dienst.

sudo cp -r ~/myems/myems-cleaning /myems-cleaning
cd /myems-cleaning
sudo pip install -r requirements.txt

Kopieren Sie die Datei example.env nach .env und bearbeiten Sie die .env-Datei:

sudo cp /myems-cleaning/example.env /myems-cleaning/.env
sudo nano /myems-cleaning/.env

Installieren Sie den systemd-Dienst:

sudo cp /myems-cleaning/myems-cleaning.service /lib/systemd/system/

Aktivieren Sie den Dienst:

sudo systemctl enable myems-cleaning.service

Starten Sie den Dienst:

sudo systemctl start myems-cleaning.service

Überwachen Sie den Dienst:

sudo systemctl status myems-cleaning.service

Zeigen Sie das Protokoll an:

cat /myems-cleaning.log

Schritt 6 myems-normalization

In diesem Schritt installieren Sie den myems-normalization-Dienst.

sudo cp -r ~/myems/myems-normalization /myems-normalization
cd /myems-normalization
sudo pip install -r requirements.txt

Kopieren Sie die Datei example.env nach .env und bearbeiten Sie die .env-Datei:

sudo cp /myems-normalization/example.env /myems-normalization/.env
sudo nano /myems-normalization/.env

Installieren Sie den systemd-Dienst

sudo cp /myems-normalization/myems-normalization.service /lib/systemd/system/

Aktivieren Sie den Dienst:

sudo systemctl enable myems-normalization.service

Starten Sie den Dienst:

sudo systemctl start myems-normalization.service

Überwachen Sie den Dienst:

sudo systemctl status myems-normalization.service

Zeigen Sie das Protokoll an:

cat /myems-normalization.log

Schritt 7 myems-aggregation

In diesem Schritt installieren Sie den myems-aggregation-Dienst.

sudo cp -r ~/myems/myems-aggregation /myems-aggregation
cd /myems-aggregation
sudo pip install -r requirements.txt

Kopieren Sie die Datei example.env nach .env und bearbeiten Sie die .env-Datei:

sudo cp /myems-aggregation/example.env /myems-aggregation/.env
sudo nano /myems-aggregation/.env

Installieren Sie den systemd-Dienst

sudo cp /myems-aggregation/myems-aggregation.service /lib/systemd/system/

Aktivieren Sie den Dienst:

sudo systemctl enable myems-aggregation.service

Starten Sie den Dienst:

sudo systemctl start myems-aggregation.service

Überwachen Sie den Dienst:

sudo systemctl status myems-aggregation.service

Zeigen Sie das Protokoll an:

cat /myems-aggregation.log

Schritt 8 myems-web

In diesem Schritt installieren Sie den myems-web-Dienst.

sudo rm /etc/nginx/sites-enabled/default
sudo rm /etc/nginx/conf.d/default.conf

Fügen Sie eine neue Datei unter /etc/nginx/conf.d/ hinzu:

sudo nano /etc/nginx/conf.d/myems-web.conf

Schreiben Sie die folgenden Anweisungen. Wenn der myems-api-Dienst auf einem anderen Server gehostet wird, ersetzen Sie die Standardadresse http://127.0.0.1:8000/ durch die tatsächliche Adresse.

server {
listen 80;
server_name myems-web;
location / {
root /var/www/myems-web;
index index.html index.htm;
# Fügen Sie die Anweisung try_files hinzu, um 404-Fehler beim Aktualisieren von Seiten zu vermeiden
try_files $uri /index.html;
}
## Um CORS-Probleme zu vermeiden, verwenden Sie Nginx, um myems-api an den Pfad /api zu proxyieren
## Fügen Sie einen weiteren Standort /api in 'server' hinzu
## Ersetzen Sie die Standard-myems-api-URL http://127.0.0.1:8000/ durch die tatsächliche URL, wenn der myems-api-Dienst auf einem anderen Server gehostet wird
location /api {
proxy_pass http://127.0.0.1:8000/;
proxy_connect_timeout 75;
proxy_read_timeout 600;
send_timeout 600;
}
}
  • Installieren Sie die MyEMS Web-Oberfläche:

Bearbeiten Sie die Konfigurationsdatei:

Hinweis

Holen Sie sich ein mapboxToken von https://mapbox.com und setzen Sie dann showOnlineMap auf true. Wenn Sie die Online-Kartenfunktion deaktivieren möchten, setzen Sie showOnlineMap auf false.

cd ~/myems/myems-web
sudo nano src/config.js

Kompilieren:

sudo npm i --unsafe-perm=true --allow-root --legacy-peer-deps
sudo npm run build

Installieren: Beachten Sie, dass der folgende Pfad mit dem in nginx.conf konfigurierten Pfad übereinstimmen muss.

sudo rm -r /var/www/myems-web
sudo mv build  /var/www/myems-web

Fügen Sie den Port zur Firewall hinzu:

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

Starten Sie NGINX neu

sudo systemctl restart nginx

Tipp

Wenn bei NGINX der Fehler '500 Interner Serverfehler' auftritt, können Sie ihn beheben, indem Sie den SELinux-Modus mit dem Befehl 'sudo setforce 0' ändern.

Nach der Installation

Glückwunsch! Sie können sich jetzt bei der MyEMS Admin-Oberfläche und Web-Oberfläche anmelden.

Standardports

MyEMS Web-Oberfläche: 80 MyEMS API: 8000 MyEMS Admin-Oberfläche: 8001

Angenommen, die Serveradresse lautet 192.168.1.8 (ersetzen Sie sie durch Ihre tatsächliche Serveradresse) Adresse der MyEMS Web-Oberfläche: http://192.168.1.8 (Port 80 kann weggelassen werden) Adresse der MyEMS Admin-Oberfläche: http://192.168.1.8:8001

Standardpasswörter

MyEMS Admin-Oberfläche Benutzername:

administrator

Passwort:

!MyEMS1

MyEMS Web-Oberfläche Benutzername:

administrator

Passwort:

!MyEMS1

Fehlerbehebung

Installation von MySQL 8.0

1. Vorbereitung

Überprüfen Sie die Systemumgebung

# Systemversion prüfen
cat /etc/redhat-release

# Prüfen, ob MySQL bereits installiert ist
rpm -qa | grep mysql
rpm -qa | grep mariadb

# Mariadb deinstallieren, falls vorhanden
rpm -e --nodeps mariadb-libs-*

2. Offizielles MySQL-RPM-Paket herunterladen

https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.45-1.el8.x86_64.rpm-bundle.tar

3. MySQL 8.0 installieren

tar -xvf *.tar
yum localinstall *.rpm

# Bei Problemen mit GPG-Schlüsseln vorübergehend verwenden
yum install -y mysql-community-server --nogpgcheck

4. MySQL-Dienst starten

# MySQL starten
systemctl start mysqld

# Automatischen Start beim Booten aktivieren
systemctl enable mysqld

# Dienststatus prüfen
systemctl status mysqld

5. Anfangskennwort abrufen

# Das temporäre Passwort anzeigen, das von MySQL generiert wurde
grep 'temporary password' /var/log/mysqld.log

6. Sichere Konfiguration

# Das sichere Installationsskript ausführen
mysql_secure_installation

Folgen Sie den Anweisungen:

  1. Geben Sie das temporäre Passwort ein
  2. Legen Sie ein neues Passwort fest (muss Groß- und Kleinbuchstaben, Zahlen und Sonderzeichen enthalten)
  3. Root-Passwort ändern? Y
  4. Anonyme Benutzer entfernen? Y
  5. Ferne Anmeldung als Root verbieten? Nach Bedarf wählen
  6. Testdatenbank entfernen? Y
  7. Berechtigungstabellen neu laden? Y

7. Bei MySQL anmelden und überprüfen

# Bei MySQL anmelden
mysql -u root -p

# Version prüfen
SELECT VERSION();

# Datenbanken auflisten
SHOW DATABASES;

8. Zeichensatz konfigurieren (optional)

Bearbeiten Sie die Konfigurationsdatei:

vi /etc/my.cnf

Fügen Sie Folgendes hinzu:

[client]
default-character-set=utf8mb4

[mysql]
default-character-set=utf8mb4

[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
init-connect='SET NAMES utf8mb4'


# Passwortrichtlinie bei Bedarf senken
validate_password.policy = LOW
validate_password.length = 6
validate_password.mixed_case_count = 0
validate_password.number_count = 0
validate_password.special_char_count = 0

Starten Sie den Dienst neu:

systemctl restart mysqld

9. Firewall-Einstellungen

# Port 3306 öffnen
firewall-cmd --permanent --add-port=3306/tcp
firewall-cmd --reload

# Oder Firewall stoppen (nicht empfohlen)
# systemctl stop firewalld

10. Konfiguration des Fernzugriffs (optional)

-- Bei MySQL anmelden
mysql -u root -p

-- Benutzer für Fernzugriff erstellen
CREATE USER 'root'@'%' IDENTIFIED BY '!MyEMS1';
-- Passwort aktualisieren
ALTER USER 'root'@'%' IDENTIFIED BY '!MyEMS1';
-- Berechtigungen gewähren
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;

-- Änderungen übernehmen
FLUSH PRIVILEGES;

Häufige Probleme

1. Fehler bei unzureichendem Arbeitsspeicher

Wenn der Server wenig Arbeitsspeicher hat, begrenzen Sie den MySQL-Speicherverbrauch:

vi /etc/my.cnf
# Diese Einstellungen hinzufügen
innodb_buffer_pool_size = 256M
innodb_log_buffer_size = 16M
max_connections = 100

2. Fehlerbehebung beim Startfehler

# Fehlerprotokoll anzeigen
tail -f /var/log/mysqld.log

# Portnutzung prüfen
netstat -tlnp | grep 3306

3. Änderung der Passwortrichtlinie

-- Aktuelle Passwortrichtlinie anzeigen
SHOW VARIABLES LIKE 'validate_password%';

-- Richtlinie senken (falls einfaches Passwort benötigt wird)
SET GLOBAL validate_password.policy = LOW;
SET GLOBAL validate_password.length = 6;

Installation überprüfen

# MySQL-Prozess prüfen
ps aux | grep mysql

# Port prüfen
netstat -tlnp | grep 3306

# MySQL-Version prüfen
mysql --version

Nächste Sprache: **Spanisch**?