برو به محتوای اصلی

Fedora

در این راهنما، MyEMS را بر روی سرور فدورا مستقر خواهید کرد.

پیش‌نیازها

این راهنما نحوه نصب MyEMS بر روی فدورا ۳۷ سرور را توضیح می‌دهد. الزامات سخت‌افزاری به پایگاه داده انتخابی و تعداد دستگاه‌های متصل به سیستم بستگی دارد. برای اجرای MyEMS و MySQL بر روی یک ماشین، حداقل به ۴ گیگابایت رم نیاز دارید.

سیستم را به‌روزرسانی کرده و ابزارها را نصب کنید

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

کلون کردن کد منبع:

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

مرحله ۱ پایگاه داده

به پایگاه داده مراجعه کنید

مرحله ۲ myems-api

  • نصب سرویس myems-api:
sudo cp -r ~/myems/myems-api /myems-api
cd /myems-api
sudo pip install -r requirements.txt

فایل .env را بر اساس example.env ایجاد کرده و در صورت نیاز فایل .env را ویرایش کنید:

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

افزودن پورت به فایروال:

sudo firewall-cmd --add-service=http --permanent
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

مرحله ۳ myems-admin

  • نصب سرور NGINX

به http://nginx.org/en/linux_packages.html#RHEL مراجعه کنید

فعال کردن سرویس nginx:

sudo systemctl start nginx.service
  • پیکربندی NGINX
sudo nano /etc/nginx/nginx.conf

در بخش 'http'، چند دستور اضافه کنید:

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/ ایجاد کنید

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

دستورات زیر را در آن بنویسید، و آدرس پیش‌فرض myems-api یعنی http://127.0.0.1:8000/ را در صورت میزبانی سرویس myems-api روی سرور دیگر، با آدرس واقعی جایگزین کنید.

server {
listen 8001;
server_name myems-admin;
location / {
root /var/www/myems-admin;
index index.html index.htm;
}
## برای جلوگیری از مشکل CORS، از Nginx برای پروکسی myems-api به مسیر /api استفاده کنید
## مکان دیگری با نام /api در 'server' اضافه کنید
## آدرس پیش‌فرض myems-api یعنی http://127.0.0.1:8000/ را در صورت میزبانی سرویس myems-api روی سرور دیگر، با آدرس واقعی جایگزین کنید.
location /api {
proxy_pass http://127.0.0.1:8000/;
proxy_connect_timeout 75;
proxy_read_timeout 600;
send_timeout 600;
}
}
  • نصب myems-admin : اگر سرور نمی‌تواند به اینترنت متصل شود، لطفاً پوشه 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 firewall-cmd --add-service=http --permanent
sudo firewall-cmd --zone=public --add-port=8001/tcp --permanent
sudo firewall-cmd --reload

سرویس nginx را مجدداً راه‌اندازی کنید:

sudo systemctl restart nginx.service
نکته کاربردی

اگر با خطای '403 Forbidden' در nginx مواجه شدید، می‌توانید با تغییر حالت SELinux با دستور 'sudo setenforce 0' آن را برطرف کنید.

مرحله ۴ myems-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.env را به .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

مرحله ۵ myems-cleaning

در این مرحله، سرویس myems-cleaning را نصب خواهید کرد.

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

فایل exmaple.env را به .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

مرحله ۶ myems-normalization

در این مرحله، سرویس myems-normalization را نصب خواهید کرد.

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

فایل exmaple.env را به .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

مرحله ۷ myems-aggregation

در این مرحله، سرویس myems-aggregation را نصب خواهید کرد.

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

فایل exmaple.env را به .env کپی کرده و فایل .env را ویرایش کنید:

sudo cp /myems-aggregation/example.env /myems-aggregation/.env
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

مرحله ۸ myems-web

در این مرحله، سرویس رابط کاربری myems-web را نصب خواهید کرد.

  • نصب سرور NGINX

به http://nginx.org/en/linux_packages.html#RHEL مراجعه کنید

  • پیکربندی 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

یک بخش 'server' جدید با دستورات زیر اضافه کنید:

server {
listen 80;
server_name myems-web;
location / {
root /var/www/myems-web;
index index.html index.htm;
# اضافه کردن دستور try_files برای جلوگیری از خطای 404 هنگام بازخوانی صفحات
try_files $uri /index.html;
}
## برای جلوگیری از مشکل CORS، از Nginx برای پروکسی myems-api به مسیر /api استفاده کنید
## مکان دیگری با نام /api در 'server' اضافه کنید
## آدرس پیش‌فرض myems-api یعنی http://127.0.0.1:8000/ را در صورت میزبانی سرویس myems-api روی سرور دیگر، با آدرس واقعی جایگزین کنید.
location /api {
proxy_pass http://127.0.0.1:8000/;
proxy_connect_timeout 75;
proxy_read_timeout 600;
send_timeout 600;
}
}
  • نصب رابط کاربری MyEMS Web:

تنظیم NodeJS:

sudo dnf install nodejs

فایل config.js را ویرایش کنید:

نکته

mapboxToken را از https://mapbox.com دریافت کرده و سپس 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 mv build  /var/www/myems-web

قفل پورت را باز کرده و آن را به فایروال اضافه کنید:

sudo firewall-cmd --add-service=http --permanent
sudo firewall-cmd --add-port=80/tcp --permanent
sudo firewall-cmd --reload

سرویس nginx را مجدداً راه‌اندازی کنید:

sudo systemctl restart nginx.service
نکته کاربردی

اگر با خطای '500 Internal Server Error' در nginx مواجه شدید، می‌توانید با تغییر حالت SELinux با دستور 'sudo setenforce 0' آن را برطرف کنید.

پس از نصب

تبریک! اکنون می‌توانید به رابط کاربری مدیریت MyEMS و رابط کاربری وب وارد شوید.

پورت‌های پیش‌فرض

رابط کاربری وب MyEMS: ۸۰

API MyEMS: ۸۰۰۰

رابط کاربری مدیریت MyEMS: ۸۰۰۱

با فرض اینکه آدرس سرور 192.168.1.8 است (با آدرس واقعی سرور جایگزین کنید) برای دسترسی به رابط کاربری وب MyEMS به آدرس http://192.168.1.8 (پورت ۸۰ قابل حذف است) بروید. برای دسترسی به رابط کاربری مدیریت MyEMS به آدرس http://192.168.1.8:8001 بروید.

رمزهای عبور پیش‌فرض

رابط کاربری مدیریت MyEMS

نام کاربری:

administrator

رمز عبور:

!MyEMS1

رابط کاربری وب MyEMS

نام کاربری:

administrator@myems.io

رمز عبور:

!MyEMS1

عیب‌یابی