Fedora CoreOS
في هذا الدليل، ستقوم بنشر MyEMS على خادم Fedora CoreOS.
المتطل بات المسبقة
يصف هذا الدليل كيفية تثبيت MyEMS على Fedora CoreOS 40. تعتمد متطلبات الأجهزة على قاعدة البيانات المختارة وعدد الأجهزة المتصلة بالنظام. لتشغيل MyEMS وMySQL على جهاز واحد ستحتاج إلى 4 جيجابايت من الذاكرة العشوائية على الأقل.
تحديث النظام وتثبيت الأدوات
rpm-ostree install git
rpm-ostree install python3
rpm-ostree install python3-pip
rpm-ostree install nginx
استنساخ الشيفرة المصدرية:
cd ~
git clone https://github.com/myems/myems
الخطوة 1: قاعدة البيانات
راجع قاعدة البيانات
الخطوة 2: myems-api
- تثبيت خدمة myems-api:
sudo cp -r ~/myems/myems-api /var/myems-api
cd /var/myems-api
sudo pip install -r requirements.txt
أنشئ ملف .env بناءً على example.env وقم بتعديله إذا لزم الأمر:
sudo cp /var/myems-api/example.env /var/myems-api/.env
sudo nano /var/myems-api/.env
أضف المنفذ إلى جدار الحماية:
sudo firewall-cmd --add-service=http --permanent
sudo firewall-cmd --add-port=8000/tcp --permanent
sudo firewall-cmd --reload
إعداد ملفات تكوين systemd:
sudo cp /var/myems-api/myems-api.service /etc/systemd/system/
sudo cp /var/myems-api/myems-api.socket /etc/systemd/system/
sudo cp /var/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;
}
## 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: إذا كان الخادم لا يمكنه الاتصال بالإنترنت، يرجى ضغط مجلد 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 --add-port=8001/tcp --permanent
sudo firewall-cmd --reload
أعد تشغيل خدمة nginx:
sudo systemctl restart nginx.service
إذا واجهت خطأ '403 Forbidden' من nginx، يمكنك إصلاحه بتغيير وضع SELinux باستخدام الأمر 'sudo setenforce 0'