Windows 10 / 11 / Server
ในคู่มือนี้ คุณจะติ ดตั้ง MyEMS บนเซิร์ฟเวอร์ Windows 10 / 11 / Server
ข้อกำหนดเบื้องต้น
คู่มือนี้อธิบายวิธีการติดตั้ง MyEMS บน Windows 10, Windows 11 และ Windows Server (2022) ความต้องการด้านฮาร์ดแวร์ขึ้นอยู่กับฐานข้อมูลที่เลือกและจำนวนอุปกรณ์ที่เชื่อมต่อกับระบบ ในการรัน MyEMS, MySQL และ Python 3.10, 3.11 หรือ 3.12 บนเครื่องเดียว ต้องใช้หน่วยความจำอย่างน้อย 8 GB
โคลนซอร์สโค้ด:
รันในฐานะผู้ดูแลระบบ, Windows PowerShell
cd C:\
git clone https://gitee.com/myems/myems
ติดตั้ง Python 3.10
https://www.python.org/downloads/windows/
แพ็คเกจ Python 3.10.11 เวอร์ชัน 64-bit สำหรับระบบ 64 บิต
ดาวน์โหลด Windows installer (64-bit)
รันโปรแกรมติดตั้ง Python
ดับเบิลคลิก: python-3.10.11-amd64.exe
勾选 "Add py... to PATH" และคลิก "Customize installation"
ตรวจสอบให้แน่ใจว่าได้เลือกตัวเลือกทั้งหมดไว้ โดยเฉพาะ pip จากนั้นคลิก "Next"
เลือกตัวเลือกแรก แนะนำให้เปลี่ยนตำแหน่งการติดตั้ง Python จากนั้นคลิก "install"
หมายเหตุ: การติดตั้งเริ่มต้นอยู่ที ่: C:\Program Files\Python310 กรุณาเปลี่ยนเป็น C:\Python310
เมื่อติดตั้งเสร็จสมบูรณ์ คลิก "close"
ในพรอมต์คำสั่ง พิมพ์ python แล้วกด Enter หากแสดงหมายเลขเวอร์ชัน Python แสดงว่าการติดตั้งสำเร็จ
ขั้นตอนที่ 1 ฐานข้อมูล
ดูเพิ่มเติมที่ Database
นี่คือขั้นตอนโดยละเอียดสำหรับการดาวน์โหลดและติดตั้ง MySQL (ตัวอย่างด้วย MySQL 8.0, รุ่น Community ฟรี)
1.1 ดาวน์โหลดโปรแกรมติดตั้ง MySQL
- เปิดเว็บไซต์อย่างเป็นทางการ: https://dev.mysql.com/downloads/mysql/
- เลือกแพลตฟอร์ม Windows โดยปกติจะมีสองตัวเลือก:
- mysql-installer-web-community (ติดตั้งออนไลน์ ขนาดเล็ก)
- mysql-installer-community (โปรแกรมเต็มรูปแบบแบบออฟไลน์ แนะนำ)
- คลิก Download หากมีการขอให้เข้าสู่ระบบ ให้เลือก "No thanks, just start my download"
1.2 ติดตั้ง MySQL
- ดับเบิลคลิกเพื่อรันโปรแกรมติดตั้งที่ดาวน์โหลดมา (ต้องมีสิทธิ์ผู้ดูแลระบบ)
- เลือกประเภทการติดตั้ง (แนะนำ: Developer Default หรือ Custom)
- Developer Default: ติดตั้ง MySQL Server, Workbench, Shell และเครื่องมือทั่วไปอื่นๆ
- Custom: สามารถปรับแต่งคอมโพเนนต์ได้เอง
- คลิก Next โปรแกรมติดตั้งจะตรวจสอบ dependencies และดาวน์โหลดคอมโพเนนต์ที่ขาดหายไปโดยอัตโนมัติ
- คลิก Execute เพื่อเริ่มการติดตั้ง จากนั้นคลิก Next เมื่อเสร็จสิ้น
1.3 กำหนดค่า MySQL Server
-
Type and Networking
- Config Type: เลือก Development Computer
- Port: ค่าเริ่มต้น 3306 (สามารถแก้ไขได้)
- คลิก Next
-
Authentication Method
- แนะนำ: เลือก Use Strong Password Encryption (การเข้ารหัสแบบใหม่กว่า)
- หรือเลือกตัวเลือกที่สอง (ความเข้ากันได้กับเวอร์ชันเก่า)
- คลิก Next
-
Accounts and Roles
- ตั้งรหัสผ่านสำหรับ root (อย่าลืมจดจำไว้)
- เลือกได้: เพิ่มผู้ใช้ธรรมดา (สามารถข้ามได้)
- คลิก Next
-
Windows Service
- เลือก Configure MySQL Server as a Windows Service
- Service Name: MySQL80 (ค่าเริ่มต้น)
- เลือก Start the MySQL Server at System Startup
- คลิก Next
-
Apply Configuration
- คลิก Execute เพื่อกำหนดค่าการตั้งค่า
- ทุกขั้นตอนจะแสดงเครื่องหมายถูกสีเขียวหากสำเร็จ
- คลิก Finish
1.4 เสร็จสิ้นการติดตั้ง
- คลิก Next ต่อไปเรื่อยๆ จนกระทั่งเห็น Finish
- เลือก Start MySQL Workbench after Setup (ไม่บังคับ)
- คลิก Finish เพื่ อออกจากตัวช่วยสร้างการติดตั้ง
1.5 ตรวจสอบการติดตั้ง
วิธีที่ 1: ทดสอบด้วยบรรทัดคำสั่ง
- กด
Win + Rพิมพ์cmdแล้วกด Enter - พิมพ์:
mysql -u root -p - ป้อนรหัสผ่าน root ที่คุณตั้งไว้
- การแสดงพรอมต์
mysql>แสดงว่าสำเร็จ
วิธีที่ 2: ตรวจสอบบริการ
- กด
Win + Rพิมพ์services.msc - ค้นหา
MySQL80สถานะควรเป็น "กำลังทำงาน"
1.6 การตั้งค่าเริ่มต้นที่พบบ่อย (ไม่บังคับ)
หลังจากเชื่อมต่อกับ MySQL แล้ว ให้รัน:
-- แสดงฐานข้อมูลทั้งหมด
show databases;
-- สร้างฐานข้อมูลใหม่
create database mydb;
-- สร้างผู้ใช้สำหรับการเข้าถึงระยะไกล (ไม่บังคับ)
create user 'myems'@'%' identified by 'รหัสผ่าน';
grant all privileges on *.* to 'myems'@'%';
flush privileges;
ปัญหาที่พบบ่อย
| ปัญหา | วิธีแก้ไข |
|---|---|
| พอร์ต 3306 ถูกใช้งานแล้ว | เปลี่ยนพอร์ตระหว่างการติดตั้ง (เช่น 3307) |
| ลืมรหัสผ่าน root | ต้องเริ่ม MySQL โดยไม่ใช้ตารางสิทธิ์ (ขั้นตอนซับซ้อน) |
| ไม่สามารถเริ่มบริการได้ | ตรวจสอบว่าพอร์ตถูกใช้งานหรือไม่ หรือดูบันทึกเหตุการณ์ของ Windows |
คุณต้องการความช่วยเหลือเกี่ยวกับปัญหาเฉพาะที่พบระหว่างการติดตั้งหรือไม่?
ขั้นตอนที่ 2 myems-api
- ติดตั้งบริการ myems-api:
# 1. เปิดหน้าต่าง CMD ใหม่ในฐานะผู้ดูแลระบบ
# 2. ตั้งค่าตัวแปรสภาพแวดล้อม
set PIP_NO_USER=1
set PYTHONNOUSERSITE=1
# 3. ไปที่ไดเรกทอรีของโปรเจกต์
cd C:\myems\myems-api
# 4. ติดตั้งแพ็คเกจทั้งหมดใหม่
C:\Python310\python.exe -m pip install --no-cache-dir --no-user -r requirements.txt
C:\Python310\python.exe -m pip install --no-cache-dir --no-user waitress
สร้างไฟล์ .env จาก example.env และแก้ไขตามต้องการ:
copy .\example.env .env
เปิดและแก้ไขด้วยโปรแกรมแก้ไขข้อความ: C:\myems\myems-api\.env
แก้ไขข้อมูลการเชื่อมต่อฐานข้อมูล
ติดตั้งบริการ Windows:
cmd
# 1. ลบบริการเก่าออกทั้งหมด
sc delete MyEMSAPI
# 2. สร้างไดเรกทอรีสำหรับบันทึก
mkdir C:\myems\myems-api\logs 2>nul
# 3. ดาวน์โหลด WinSW (หากยังไม่ได้ดาวน์โหลด)
https://github.com/winsw/winsw/releases
เปลี่ยนชื่อ WinSW-x64.exe เป็น MyEMSAPI.exe
cd C:\myems\myems-api
# 4. สร้างไฟล์กำหนดค่า
สร้าง `C:\myems\myems-api\MyEMSAPI.xml` (ด้วย notepad หรือคำสั่งต่อไปนี้):
notepad C:\myems\myems-api\MyEMSAPI.xml
คัดลอกเนื้อหาต่อไปนี้ลงใน แผ่นจดบันทึก:
<service>
<id>MyEMSAPI</id>
<name>MyEMS API Service</name>
<description>MyEMS API Service</description>
<executable>C:\Python310\python.exe</executable>
<arguments>-m waitress --listen=0.0.0.0:8000 app:api</arguments>
<workingdirectory>C:\myems\myems-api</workingdirectory>
<logmode>rotate</logmode>
<logpath>C:\myems\myems-api\logs</logpath>
<onfailure action="restart" delay="10 sec"/>
<stoptimeout>15 sec</stoptimeout>
<startmode>Automatic</startmode>
</service>
บันทึกและปิดแผ่นจดบันทึก
# 5. ติดตั้งบริการ
MyEMSAPI.exe install
# 6. เริ่มบริการ
MyEMSAPI.exe start
# 7. ตรวจสอบสถานะ
MyEMSAPI.exe status
# 8. ทดสอบบริการ
curl http://localhost:8000
# 9. หากมีปัญหา ให้ดูที่บันทึก
C:\myems\myems-api\logs
ขั้นตอนที่ 3 myems-admin
- ติดตั้งเซิร์ฟเวอร์ NGINX: https://nginx.org/en/download.html
เริ่มบริการ nginx ในพื้นหลัง:
start /b nginx.exe
- กำหนดค่า NGINX
cd C:\Program Files\nginx-1.29.1\conf
เปิดและแก้ไข 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;
...
}
เขียนคำสั่งต่อไปนี้ หากบริการ myems-api รันอยู่บนเซิร์ฟเวอร์อื่น ให้แทนที่地址เริ่มต้น http://127.0.0.1:8000/ ด้วย地址จริง
server {
listen 8001;
server_name myems-admin;
location / {
root C:\myems-admin;
index index.html index.htm;
}
## เพื่อหลีกเลี่ยงปัญหา CORS ให้ใช้ Nginx เป็นพร็อกซีสำหรับ myems-api ไปยังพาธ /api
## เพิ่ม location /api อีกส่วนใน 'server'
## แทนที่ URL เริ่มต้นของ myems-api http://127.0.0.1:8000/ ด้วย URL จริงหากบริการ 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 และอัปโหลดไปยังเซิร์ฟเวอร์
- จากนั้นแตกไฟล์ไปยัง c:\myems-admin
ตรวจสอบไฟล์กำหนดค่าและแก้ไขหากจำเป็น:
c:\myems-admin\app\api.js
โฟลเดอร์ "upload" ใช้สำหรับเก็บไฟล์ที่ผู้ใช้อัปโหลด เมื่ออัปเกรด myems-admin ห้ามลบ/ย้าย/แทนที่โฟลเดอร์ "upload"
C:\myems-admin\upload
รีสตาร์ทบริการ nginx:
cd C:\Program Files\nginx-1.29.1
nginx.exe -s stop
start /b nginx.exe
## ขั้นตอนที่ 4 myems-modbus-tcp
ในขั้นตอนนี้ คุณจะติดตั้งบริการ myems-modbus-tcp
```bash
cd C:\myems\myems-modbus-tcp
# 1. เปิดหน้าต่าง CMD ใหม่ในฐานะผู้ดูแลระบบ
# 2. ตั้งค่าตัวแปรสภาพแวดล้อม
set PIP_NO_USER=1
set PYTHONNOUSERSITE=1
# 3. ไปที่ไดเรกทอรีของโปรเจกต์
cd C:\myems\myems-modbus-tcp
# 4. ติดตั้งแพ็คเกจทั้งหมดใหม่
C:\Python310\python.exe -m pip install --no-cache-dir --no-user -r requirements.txt
สร้างไฟล์ .env จาก example.env และแก้ไขตามต้องการ:
copy .\example.env .env
เปิดและแก้ไขด้วยโปรแกรมแก้ไขข้อความ: C:\myems\myems-modbus-tcp\.env
ติดตั้งบริการ Windows:
# 1. ลบบริการเก่าออกทั้งหมด
sc delete MyEMSModbusTCP
# 2. สร้างไดเรกทอรีสำหรับบันทึก
mkdir C:\myems\myems-modbus-tcp\logs 2>nul
# 3. ดาวน์โหลด WinSW (หากยังไม่ได้ดาวน์โหลด)
https://github.com/winsw/winsw/releases
เปลี่ยนชื่อ WinSW-x64.exe เป็น MyEMSModbusTCP.exe
cd C:\myems\myems-modbus-tcp
# 4. สร้างไฟล์กำหนดค่า
สร้าง `C:\myems\myems-modbus-tcp\MyEMSModbusTCP.xml` (ด้วย notepad หรือคำสั่งต่อไปนี้):
notepad C:\myems\myems-modbus-tcp\MyEMSModbusTCP.xml