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开发 Docker
MyEMS开源系统安装之Linux/macOS上的DOcker
本指南详细介绍了如何在Linux/macOS上使用Docker部署MyEMS系统。主要内容包括:前置条件(如安装Docker、npm和MySQL),以及分步骤部署各个组件(如myems-api、myems-admin、myems-modbus-tcp等)。每个步骤涵盖源代码复制、环境配置、镜像构建、容器运行及日志管理等操作,并提供了多平台构建的支持。最后,指南还说明了默认端口和登录凭据,帮助用户快速启动并访问MyEMS的管理界面和Web界面。
127 1
|
4月前
|
Oracle 关系型数据库 Linux
Rocky Linux 9.6 正式版发布 - RHEL 100% 1:1 兼容免费发行版
Rocky Linux 9.6 正式版发布 - RHEL 100% 1:1 兼容免费发行版
690 0
Rocky Linux 9.6 正式版发布 - RHEL 100% 1:1 兼容免费发行版
|
5月前
|
Oracle Cloud Native 关系型数据库
Oracle Linux 9.6 正式版发布 - Oracle 提供支持 RHEL 兼容发行版
Oracle Linux 9.6 正式版发布 - Oracle 提供支持 RHEL 兼容发行版
186 0
Oracle Linux 9.6 正式版发布 - Oracle 提供支持 RHEL 兼容发行版
|
5月前
|
Linux Shell
Centos或Linux编写一键式Shell脚本删除用户、组指导手册
Centos或Linux编写一键式Shell脚本删除用户、组指导手册
128 4
|
5月前
|
Linux Shell 数据安全/隐私保护
Centos或Linux编写一键式Shell脚本创建用户、组、目录分配权限指导手册
Centos或Linux编写一键式Shell脚本创建用户、组、目录分配权限指导手册
270 3
|
4月前
|
关系型数据库 Linux 数据库
Linux系统安装Postgre和Postgis教程
本文详细介绍了PostgreSQL/PostGIS的卸载与安装步骤。卸载部分涵盖Docker、Yum/RPM及源码编译安装的清理方法,包括停止服务、删除容器/包、清理残留文件和环境变量等操作,并强调卸载前需备份数据库数据。安装部分提供在线yum安装和离线源码编译两种方式,前者简单快捷,后者需准备依赖(如gcc、readline-devel等)、创建用户组、初始化数据库及配置访问规则。每步均附带命令示例,确保操作清晰明确。
591 0
|
5月前
|
人工智能 安全 Linux
Red Hat Enterprise Linux 10 正式版发布 - 红帽企业 Linux (RHEL)
Red Hat Enterprise Linux 10 正式版发布 - 红帽企业 Linux (RHEL)
537 0
Red Hat Enterprise Linux 10 正式版发布 - 红帽企业 Linux (RHEL)
|
23天前
|
Unix Linux 程序员
Linux文本搜索工具grep命令使用指南
以上就是对Linux环境下强大工具 `grep` 的基础到进阶功能介绍。它不仅能够执行简单文字查询任务还能够处理复杂文字处理任务,并且支持强大而灵活地正则表达规范来增加查询精度与效率。无论您是程序员、数据分析师还是系统管理员,在日常工作中熟练运用该命令都将极大提升您处理和分析数据效率。
97 16
|
15天前
|
Linux
linux命令—stat
`stat` 是 Linux 系统中用于查看文件或文件系统详细状态信息的命令。相比 `ls -l`,它提供更全面的信息,包括文件大小、权限、所有者、时间戳(最后访问、修改、状态变更时间)、inode 号、设备信息等。其常用选项包括 `-f` 查看文件系统状态、`-t` 以简洁格式输出、`-L` 跟踪符号链接,以及 `-c` 或 `--format` 自定义输出格式。通过这些选项,用户可以灵活获取所需信息,适用于系统调试、权限检查、磁盘管理等场景。
|
3月前
|
监控 Linux 网络安全
Linux命令大全:从入门到精通
日常使用的linux命令整理
662 13