MyEMS开源系统安装之CentOS/RHEL/Rocky/AlmaLinux/Oracle Linux

简介: 本指南介绍如何在CentOS/RHEL/Rocky/AlmaLinux/Oracle Linux服务器上部署MyEMS开源能源管理系统。内容涵盖系统准备、数据库配置、多个MyEMS服务(如myems-api、myems-admin、myems-modbus-tcp等)的安装与配置,以及Nginx服务器设置和防火墙规则调整。通过完成所有步骤,您将能够访问MyEMS Admin UI和Web UI,默认端口分别为8001和80,初始登录凭据已提供。

MyEMS开源系统安装之CentOS/RHEL/Rocky/AlmaLinux/Oracle Linux

在本指南中,您将在CentOS/RHEL/Rocky/AlmaLinux/Oracle Linux服务器上部署MyEMS。

前提

本指南介绍如何在CentOS Stream 9/Red Hat Enterprise Linux 9(RHEL 9)/Rocky 9/AlmaLinux 9.1/Oracle Linux 9.1上安装MyEMS。硬件需求取决于所选数据库和连接到系统的设备数量。要在一台机器上运行MyEMS和MySQL,您至少需要4GB的RAM。


更新系统并安装工具:

sudo dnf update
sudo dnf install git
sudo dnf install python3-pip

克隆源代码:

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

第1步 数据库

参考 数据库(https://blog.csdn.net/zgy5004/article/details/147955476?spm=1001.2014.3001.5501

第2步 myems-api

  • 安装myems-api服务
    sudo cp -r ~/myems/myems-api /myems-api
    
    cd /myems-api
    
    sudo pip install -r requirements.txt
    
    根据example.env创建.env文件,并根据需要编辑.env:
    sudo cp /myems-api/example.env /myems-api/.env
    
    sudo nano /myems-api/.env
    
    将端口添加到防火墙:
    sudo firewall-cmd --zone=public --add-port=8000/tcp --permanent
    
    sudo firewall-cmd --reload
    
    安装 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/
    
    接下来启用这些服务,以便它们在启动时自动启动:
    sudo systemctl enable myems-api.socket
    
    sudo systemctl enable myems-api.service
    
    启动服务:
    sudo systemctl start myems-api.socket
    
    sudo systemctl start myems-api.service
    

    第3步 myems-admin

  • 安装NGINS服务器
    参考 (http://nginx.org/en/linux_packages.html#RHEL)
    启用nginx服务:
    sudo systemctl enable nginx.service
    
  • 配置 NGINX
    sudo nano /etc/nginx/nginx.conf
    
    In the 'http' section, add some directives:
    ```javascript
    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;
    ...

}

在目录 /etc/nginx/conf.d/ 下新建一个文件:
```javascript
sudo nano /etc/nginx/conf.d/myems-admin.conf

编写如下指令, 如果myems-api服务运行在其它服务器上则用实际的地址替换 myems-api 默认地址 http://127.0.0.1:8000/

server {
   
    listen                 8001;
    server_name     myems-admin;
    location / {
   
        root    /var/www/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 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 : 如果服务器无法连接到internet,请压缩myems/myems-admin文件夹并将其上传到服务器,然后将其解压缩到~/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
    

    检查配置文件,必要时进行更改:

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

    警告
    “upload”文件夹用于用户上传的文件。升级myems-admin时,请勿删除/移动/覆盖“upload”文件夹

    /var/www/myems-admin/upload
    

    将端口添加到防火墙:

    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
    

    重启nginx服务:

    sudo systemctl restart nginx.service
    

    提示
    如果您遇到“403 Forbidden”nginx错误,可以通过使用命令“sudo setforce 0”更改SELinx模式来修复它

    第4步 myesm-modbus-tcp

    在此步骤中,您将安装myems-modbus-tcp服务。

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

    将exmaple.ev文件复制到.env并修改.env文件:

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

    安装 systemd 服务:

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

    启用服务:

    sudo systemctl enable myems-modbus-tcp.service
    

    启动服务:

    sudo systemctl start myems-modbus-tcp.service
    

    监控服务:

    sudo systemctl status myems-modbus-tcp.service
    

    查看日志:

    cat /myems-modbus-tcp.log
    

    第5步 myems-cleaning

    在此步骤中,您将安装myems-cleaning服务。

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

    将exmaple.ev文件复制到.env并修改.env文件:

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

    安装systemd服务:

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

    启用服务:

    sudo systemctl enable myems-cleaning.service
    

    启动服务:

    sudo systemctl start myems-cleaning.service
    

    监控服务:

    sudo systemctl status myems-cleaning.service
    

    查看日志:

    cat /myems-cleaning.log
    

    第6步 myesm-normalization

    在此步骤中,您将安装myems-normalization服务。

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

    将exmaple.ev文件复制到.env并修改.env文件:

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

    安装systemd服务:

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

    启用服务:

    sudo systemctl enable myems-normalization.service
    

    启动服务:

    sudo systemctl start myems-normalization.service
    

    监控服务:

    sudo systemctl status myems-normalization.service
    

    查看日志:

    cat /myems-normalization.log
    

    第7步 myems-aggregation

    在此步骤中,您将安装myems-aggregation服务。

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

    将exmaple.ev文件复制到.env并修改.env文件:

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

    安装systemd服务

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

    启用服务:

    sudo systemctl enable myems-aggregation.service
    

    启动服务:

    sudo systemctl start myems-aggregation.service
    

    监控服务:

    sudo systemctl status myems-aggregation.service
    

    查看日志:

    cat /myems-aggregation.log
    

    第8步 myems-web

    在此步骤中,您将安装myems-web服务。

  • 安装 NGINX 服务器 参考(http://nginx.org/en/linux_packages.html#Debian)
  • 配置 NGINX 删除默认文件
    sudo rm /etc/nginx/sites-enabled/default
    sudo rm /etc/nginx/conf.d/default.conf
    
    在目录 /etc/nginx/conf.d/ 下添加一个新文件
    sudo nano /etc/nginx/conf.d/myems-web.conf
    
    使用如下指令编写,如果myems-api服务托管在不同的服务器上,则使用实际的地址替换默认的myems-api地址http://127.0.0.1:8000/
    server {
         
      listen                 80;
      server_name     myems-web;
      location / {
         
          root    /var/www/myems-web;
          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;
      }
    }
    
  • 安装 MyEMS Web UI:
    安装NodeJS:
    sudo dnf install nodejs
    
    修改配置文件:
    备注
    https://mapbox.com获取 mapboxToken 然后设置 showOnlineMap 为 true. 如果要关闭在线地图功能,设置 showOnlineMap 为 false
    cd ~/myems/myems-web
    
    sudo nano src/config.js
    
    编译:
    sudo npm i --unsafe-perm=true --allow-root --legacy-peer-deps
    
    sudo npm run build
    
    安装: 注意,以下路径应该与nginx.conf中配置的路径相同。
    sudo rm -r /var/www/myems-web
    
    sudo mv build  /var/www/myems-web
    
    将端口添加到防火墙:
    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
    
    重启 NGINX
    sudo systemctl restart nginx
    
    提示
    如果您遇到“500内部服务器错误”nginx错误,可以通过使用命令“sudo setforce 0”更改SELinx模式来修复它

    安装后

    祝贺您现在可以登录MyEMS Admin UI和Web UI。

默认端口

MyEMS Web UI: 80

MyEMS API: 8000

MyEMS Admin UI: 8001
默认密码 image.png

相关文章
|
4月前
|
安全 Linux iOS开发
Nessus Professional 10.10 Auto Installer for RHEL 10, AlmaLinux 10, Rocky Linux 10 - Nessus 自动化安装程序
Nessus Professional 10.10 Auto Installer for RHEL 10, AlmaLinux 10, Rocky Linux 10 - Nessus 自动化安装程序
279 6
Nessus Professional 10.10 Auto Installer for RHEL 10, AlmaLinux 10, Rocky Linux 10 - Nessus 自动化安装程序
|
8月前
|
Oracle 关系型数据库 Linux
Rocky Linux 9.6 正式版发布 - RHEL 100% 1:1 兼容免费发行版
Rocky Linux 9.6 正式版发布 - RHEL 100% 1:1 兼容免费发行版
1249 0
Rocky Linux 9.6 正式版发布 - RHEL 100% 1:1 兼容免费发行版
|
9月前
|
Linux Shell
Centos或Linux编写一键式Shell脚本删除用户、组指导手册
Centos或Linux编写一键式Shell脚本删除用户、组指导手册
264 4
|
9月前
|
Oracle Cloud Native 关系型数据库
Oracle Linux 9.6 正式版发布 - Oracle 提供支持 RHEL 兼容发行版
Oracle Linux 9.6 正式版发布 - Oracle 提供支持 RHEL 兼容发行版
426 0
Oracle Linux 9.6 正式版发布 - Oracle 提供支持 RHEL 兼容发行版
|
9月前
|
Linux Shell 数据安全/隐私保护
Centos或Linux编写一键式Shell脚本创建用户、组、目录分配权限指导手册
Centos或Linux编写一键式Shell脚本创建用户、组、目录分配权限指导手册
512 3
|
9月前
|
人工智能 安全 Linux
Red Hat Enterprise Linux 10 正式版发布 - 红帽企业 Linux (RHEL)
Red Hat Enterprise Linux 10 正式版发布 - 红帽企业 Linux (RHEL)
997 0
Red Hat Enterprise Linux 10 正式版发布 - 红帽企业 Linux (RHEL)
|
5月前
|
Oracle 关系型数据库 Linux
【赵渝强老师】Oracle数据库配置助手:DBCA
Oracle数据库配置助手(DBCA)是用于创建和配置Oracle数据库的工具,支持图形界面和静默执行模式。本文介绍了使用DBCA在Linux环境下创建数据库的完整步骤,包括选择数据库操作类型、配置存储与网络选项、设置管理密码等,并提供了界面截图与视频讲解,帮助用户快速掌握数据库创建流程。
477 93
|
4月前
|
Oracle 关系型数据库 Linux
【赵渝强老师】使用NetManager创建Oracle数据库的监听器
Oracle NetManager是数据库网络配置工具,用于创建监听器、配置服务命名与网络连接,支持多数据库共享监听,确保客户端与服务器通信顺畅。
274 0
|
7月前
|
存储 Oracle 关系型数据库
服务器数据恢复—光纤存储上oracle数据库数据恢复案例
一台光纤服务器存储上有16块FC硬盘,上层部署了Oracle数据库。服务器存储前面板2个硬盘指示灯显示异常,存储映射到linux操作系统上的卷挂载不上,业务中断。 通过storage manager查看存储状态,发现逻辑卷状态失败。再查看物理磁盘状态,发现其中一块盘报告“警告”,硬盘指示灯显示异常的2块盘报告“失败”。 将当前存储的完整日志状态备份下来,解析备份出来的存储日志并获得了关于逻辑卷结构的部分信息。
|
7月前
|
存储 Oracle 关系型数据库
【赵渝强老师】Oracle RMAN的目录数据库
Oracle RMAN默认将备份元信息存储在控制文件中,但控制文件损坏或丢失会导致恢复失败,且备份增多会使控制文件无限增长。为解决这些问题,Oracle引入了RMAN目录数据库(Catalog Database),专门用于存储RMAN备份的元信息。使用目录数据库可提升备份管理效率,支持多数据库共享、长期备份历史记录存储,并可保存RMAN脚本。本文详细介绍了如何创建目录数据库、注册目标数据库及其操作步骤。
196 0