Kylin OS
در این راهنما، MyEMS را روی سرور Kylin V11 پیادهسازی خواهید کرد.
پیشنیازها
این راهنما نحوه نصب MyEMS روی Kylin V11 را شرح میدهد. نیازمندیهای سختافزاری به پایگاه داده انتخابی و تعداد دستگاههای متصل به سیستم بستگی دارد. برای اجرای MyEMS و MySQL روی یک ماشین، حداقل به ۸ گیگابایت رم نیاز دارید.
سیستم را بهروزرسانی کرده و ابزارها را نصب کنید:
sudo yum update
sudo yum install git
systemctl stop firewalld
کد منبع را کلون کنید:
cd ~
git clone https://gitee.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 ایجاد کرده و در صورت نیاز ویرایش کنید:
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
مرحله ۳ myems-admin
- سرور NGINX را نصب کنید
به آدرس http://nginx.org/en/linux_packages.html#RHEL مراجعه کنید.
سرویس nginx را فعال کنید:
yum install -y nginx
sudo systemctl start nginx.service
- پیکربندی NGINX
sudo vi /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 vi /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;
}
## برای جلوگیری از مشکل CORS، از Nginx برای پروکسی myems-api به مسیر /api استفاده کنید
## یک لوکیشن دیگر /api در 'server' اض افه کنید
## اگر سرویس myems-api روی سرور متفاوتی میزبانی میشود، آدرس پیشفرض 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 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 مواجه شدید، میتوانید با تغییر حالت SELinux با دستور 'sudo setforce 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
فایل 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