Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >MyEMS开源系统安装之Fedora

MyEMS开源系统安装之Fedora

原创
作者头像
开源能源管理系统
发布于 2025-05-15 06:35:22
发布于 2025-05-15 06:35:22
6500
代码可运行
举报
运行总次数:0
代码可运行

本编文章助于读者了解到产品的安装,本章将会向您详细的介绍如何在Fedora服务器上部署MyEMS。

前提

本指南介绍如何在Fedora 37 Server上安装MyEMS。硬件需求取决于所选数据库和连接到系统的设备数量。要在一台机器上运行MyEMS和MySQL,您至少需要4GB的RAM。

更新系统并安装工具:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo dnf update
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo dnf install git
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo dnf install python3-pip

克隆源代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cd ~
git clone https://gitee.com/myems/myems

第1步 数据库

参考 Database

第2步 myems-api

  • 安装 myems-api 服务:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo cp -r ~/myems/myems-api /myems-api
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cd /myems-api
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo pip install -r requirements.txt

根据example.env创建.env文件,并根据需要编辑.env:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo cp /myems-api/example.env /myems-api/.env
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo nano /myems-api/.env

将端口添加到防火墙

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo firewall-cmd --add-service=http --permanent
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo firewall-cmd --zone=public --add-port=8000/tcp --permanent
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo firewall-cmd --reload

安装 systemd 配置文件:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo cp /myems-api/myems-api.service /lib/systemd/system/
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo cp /myems-api/myems-api.socket /lib/systemd/system/
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo cp /myems-api/myems-api.conf /usr/lib/tmpfiles.d/

接下来启用这些服务,以便它们在启动时自动启动:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo systemctl enable myems-api.socket
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo systemctl enable myems-api.service

启动服务:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo systemctl start myems-api.socket
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo systemctl start myems-api.service

第3步 myems-admin

  • 安装 NGINX 服务器

参考 http://nginx.org/en/linux_packages.html#RHEL

启用nginx服务:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo systemctl enable nginx.service
  • 配置 NGINX
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo nano /etc/nginx/nginx.conf

In the 'http' section, add some directives:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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
代码运行次数:0
运行
AI代码解释
复制
sudo nano /etc/nginx/conf.d/myems-admin.conf

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo mkdir /var/www
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo cp -r ~/myems/myems-admin  /var/www/myems-admin
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo chmod 0755 -R /var/www/myems-admin

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo nano /var/www/myems-admin/app/api.js

警告

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 /var/www/myems-admin/upload

将端口添加到防火墙:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo firewall-cmd --add-service=http --permanent
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo firewall-cmd --zone=public --add-port=8001/tcp --permanent
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo firewall-cmd --reload

重启nginx服务:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo systemctl restart nginx.service

提示

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

第4步 myems-modbus-tcp

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo cp -r ~/myems/myems-modbus-tcp /myems-modbus-tcp
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cd /myems-modbus-tcp
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo pip install -r requirements.txt

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo cp /myems-modbus-tcp/example.env /myems-modbus-tcp/.env
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo nano /myems-modbus-tcp/.env

安装 systemd 服务:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo cp myems-modbus-tcp.service /lib/systemd/system/

启用服务:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo systemctl enable myems-modbus-tcp.service

启动服务:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo systemctl start myems-modbus-tcp.service

监控服务:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo systemctl status myems-modbus-tcp.service

查看日志:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cat /myems-modbus-tcp.log

第5步 myems-cleaning

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo cp -r ~/myems/myems-cleaning /myems-cleaning
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cd /myems-cleaning
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo pip install -r requirements.txt

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo cp /myems-cleaning/example.env /myems-cleaning/.env
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo nano /myems-cleaning/.env

安装systemd服务:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo cp /myems-cleaning/myems-cleaning.service /lib/systemd/system/

启用服务:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo systemctl enable myems-cleaning.service

启动服务:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo systemctl start myems-cleaning.service

监控服务:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo systemctl status myems-cleaning.service

查看日志:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cat /myems-cleaning.log

第6步 myems-normalization

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo cp -r ~/myems/myems-normalization /myems-normalization
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cd /myems-normalization
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo pip install -r requirements.txt

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo cp /myems-normalization/example.env /myems-normalization/.env
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo nano /myems-normalization/.env

安装systemd服务

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo cp /myems-normalization/myems-normalization.service /lib/systemd/system/

启用服务:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo systemctl enable myems-normalization.service

启动服务:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo systemctl start myems-normalization.service

监控服务:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo systemctl status myems-normalization.service

查看日志:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cat /myems-normalization.log

第7步 myems-aggregation

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo cp -r ~/myems/myems-aggregation /myems-aggregation
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cd /myems-aggregation
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo pip install -r requirements.txt

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo cp /myems-aggregation/example.env /myems-aggregation/.env
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo nano /myems-aggregation/.env

安装systemd服务

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo cp /myems-aggregation/myems-aggregation.service /lib/systemd/system/

启用服务:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo systemctl enable myems-aggregation.service

启动服务:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo systemctl start myems-aggregation.service

监控服务:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo systemctl status myems-aggregation.service

查看日志:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cat /myems-aggregation.log

第8步 myems-web

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo rm /etc/nginx/sites-enabled/default
sudo rm /etc/nginx/conf.d/default.conf

在目录 /etc/nginx/conf.d/ 下添加一个新文件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo nano /etc/nginx/conf.d/myems-web.conf

使用如下指令编写,如果myems-api服务托管在不同的服务器上,则使用实际的地址替换默认的myems-api地址http://127.0.0.1:8000/

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo dnf install nodejs

修改配置文件:

备注

https://mapbox.com 获取 mapboxToken 然后设置 showOnlineMap 为 true. 如果要关闭在线地图功能,设置 showOnlineMap 为 false

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cd ~/myems/myems-web
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo nano src/config.js

编译和压缩:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo npm i --unsafe-perm=true --allow-root --legacy-peer-deps
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo npm run build

安装: 将文件上传到web服务器。 注意,以下路径应该与nginx.conf中配置的路径相同。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo mv build  /var/www/myems-web

将端口添加到防火墙:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo firewall-cmd --add-service=http --permanent
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo firewall-cmd --zone=public --add-port=80/tcp --permanent
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo firewall-cmd --reload

重启 NGINX

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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

默认密码

Admin UIWeb UI

故障排除

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
MyEMS开源系统安装之龙蜥(Anolis) OS 下
龙蜥(Anolis)OS 上(https://cloud.tencent.com/developer/article/write/2520175)
开源能源管理系统
2025/05/14
680
MyEMS开源系统安装(三)CentOS/RHEL/Rocky/AlmaLinux/Oracle Linux服务器介绍
参考 http://nginx.org/en/linux_packages.html#RHEL
开源能源管理系统
2025/05/13
710
MyEMS开源系统安装(五)Docker Compose
假定的主机IP为 192.168.0.1,数据库IP为 192.168.0.2,数据库账号为:root,数据库密码:!MyEMS1,请酌情修改
开源能源管理系统
2025/05/14
980
如何在宝塔Linux面板上安装MyEMS
脚本:wget -O install.sh https://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh ed8484bec
开源能源管理系统
2025/05/14
570
Linux上的Podman
为多个平台构建,而不仅仅是为当前用户运行的体系结构和操作系统构建。 您可以使用buildx并设置--platform标志来指定构建输出的目标平台(例如,linux/amd64、linux/arm64或darwin/amd64)。
开源能源管理系统
2025/05/23
870
MyEMS开源系统安装之龙蜥(Anolis) OS 上
检查或更改myems-api.service和myems-api.socket中的侦听端口(默认值为8000):
开源能源管理系统
2025/05/14
390
MyEMS开源能源管理系统v5.5.0发布通知
MyEMS开源能源管理系统(EMS)参考ISO 50001能源管理体系标准(等同GB/T 23331-2020),适用于建筑、工厂、商场、医院、园区、能碳管理中心的电、水、气、冷、热等能源数据采集、分析、报表,还有光伏、储能、充电桩、微电网、虚拟电厂、设备控制、故障诊断、工单管理、人工智能优化等企业版可选功能。资深专业公司开发维护,保障长期支持。用开源助力企业集团、产业园区、能源运营商低碳发展!
开源能源管理系统
2025/05/30
550
MyEMS开源能源管理系统v5.5.0发布通知
如何在树莓派上安装MyEMS开源能源管理系统(下)
为了避免 'error: externally-managed-environment', 创建一个虚拟环境配置目录:
开源能源管理系统
2025/05/14
750
如何在树莓派上安装MyEMS开源能源管理系统(上)
默认情况下,MySQL安装时没有设置任何密码,这意味着您无需任何身份验证即可访问MySQL服务器。运行以下命令以开始MySQL保护过程。
开源能源管理系统
2025/05/13
660
升级MyEMS开源能源系统
开源能源管理系统
2025/05/23
250
MyEMS的安装部署与数据读取查看
mysql -u root -p < myems_billing_baseline_db.sql
用户10891665
2023/12/24
1K0
MyEMS开源能源管理系统核心代码解读015
MyEMS开源能源管理系统适用于建筑、工厂、商场、医院、园区的电、水、气等能源数据采集、分析、报表,还有光伏、储能、充电桩、微电网、设备控制、故障诊断、工单管理、人工智能优化等可选功能。资深专业团队开发维护,保障长期支持。用开源助力企业集团、产业园区、能源运营商低碳发展!
开源能源管理系统
2025/05/27
680
MyEMS开源能源管理系统核心代码解读014
MyEMS开源能源管理系统适用于建筑、工厂、商场、医院、园区的电、水、气等能源数据采集、分析、报表,还有光伏、储能、充电桩、微电网、设备控制、故障诊断、工单管理、人工智能优化等可选功能。资深专业团队开发维护,保障长期支持。用开源助力企业集团、产业园区、能源运营商低碳发展!
开源能源管理系统
2025/05/26
580
MyEMS开源系统安装(一)安装数据库
在MySQL命令行中执行以下脚本,或在其他MySQL客户端工具中执行,如MySQL Workbench、Navicat、DBaver、phpMyAdmin等。
开源能源管理系统
2025/05/13
960
Linux搭建开源企业邮箱系统EwoMail
EwoMail是基于Linux的开源邮件服务器软件,集成了众多优秀稳定的组件,是一个快速部署、简单高效、多语言、安全稳定的邮件解决方案,帮助你提升运维效率,降低 IT 成本,兼容主流的邮件客户端,同时支持电脑和手机邮件客户端。
星哥玩云
2022/06/09
4.5K0
Linux搭建开源企业邮箱系统EwoMail
CentOS 7下安装Logstash ELK Stack 日志管理系统(下)
修改防火墙,对外开放tcp/5601 [root@elk elk]# firewall-cmd --permanent --add-port=5601/tcp Success [root@elk elk]# firewall-cmd --reload success [root@elk elk]# firewall-cmd --list-all public (default, active) interfaces: eno16777984 eno33557248 sources: servic
小小科
2018/05/04
1K0
CentOS 7下安装Logstash ELK Stack 日志管理系统(下)
开源日志平台GrayLog最新版本6.1.0的一键安装脚本
将如下脚本与压缩包上传到AlmaLinux9.X或RockyLinux9.X系统的同一个目录下GrayLog6.1.0_MongoDB6.0_OpenSearch2.15.0_EL9_RPM.tar.gzGrayLogServer6.1.0_EL9_install.sh
yuanfan2012
2024/10/23
9462
开源日志平台GrayLog最新版本6.1.0的一键安装脚本
frp 内网穿透含web和ssh(已验证)
用公司内网的服务器,或者公司的电脑搭建了一个web站点,却无法在外网访问web站点,或者在家想用ssh连接公司的内网服务器。frp就是如何利用内网穿透的方式实现以上功能。
用户10002156
2023/08/07
1.4K0
frp 内网穿透含web和ssh(已验证)
Nginx安装与代理
将80转发至8082端口:例如:发布访问地址192.168.00.000:8082,转发之后可直接访问192.168.00.000
小世界的野孩子
2019/09/11
3660
安利一款免费、开源、实时的服务器监控工具:Netdata
Netdata 是一个免费、开源、实时的服务器监控工具,可以可视化和监控实时数据,如 CPU 使用率、RAM 使用率、负载、SWAP 使用率、带宽使用率、磁盘使用率等。它可以帮助系统管理员了解您的系统或应用程序中正在发生的事情以及刚刚发生的事情。它可以安装在任何物理服务器、虚拟机、容器和物联网设备上。它提供了一个交互式 Web 界面来查看您的服务器指标,并支持用于持久存储的各种数据存储。
全栈程序员站长
2022/08/24
1.9K0
安利一款免费、开源、实时的服务器监控工具:Netdata
推荐阅读
相关推荐
MyEMS开源系统安装之龙蜥(Anolis) OS 下
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验