Fedora
في هذا الدليل، ستقوم بنشر MyEMS على خادم Fedora.
المتطلبات الأساسية
يصف هذا الدليل كيفية تثبيت MyEMS على خادم Fedora 37. تعتمد متطلبات الأجهزة على قاعدة البيانات المختارة وعدد الأجهزة المتصلة بالنظام. لتشغيل MyEMS وMySQL على جهاز واحد، ستحتاج على الأقل إلى 4 جيجابايت من ذاكرة الوصول العشوائي (RAM).
تحديث النظام وتثبيت الأدوات
sudo dnf update
sudo dnf install git
sudo dnf install python3-pip
استنساخ الكود المصدري:
cd ~
git clone https://github.com/myems/myems
الخطوة 1: قاعدة البيانات
راجع قاعدة البيانات
الخطوة 2: 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
الخطوة 3: 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
مجلد 'upload' مخصص للملفات التي يرفعها المستخدم. لا تحذف/تنقل/تستبدل مجلد 'upload' عند ترقية myems-admin.
/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
إذا واجهت خطأ nginx '403 Forbidden'، يمكنك إصلاحه عن طريق تغيير وضع SELinux باستخدام الأمر 'sudo setenforce 0'
الخطوة 4: 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
انسخ ملف example.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