วิธี deploy swoole php บน ubuntu 20 โดยรันเว็บผ่าน cyberpanel

แชร์ความรู้ Linux Ubuntu Web Server บทความ การ config server Linux FreeBSD Apache
การติดตั้ง XAMPP Mysql PHP ใครต้องการแชร์ความรู้เรื่องต่างๆ เหล่านี้ให้ ท่านหรืออื่น โพสที่หมวดนี้ได้

Moderator: mindphp, ผู้ดูแลกระดาน

ภาพประจำตัวสมาชิก
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
โพสต์: 47760
ลงทะเบียนเมื่อ: 22/09/2008 6:18 pm
ติดต่อ:

วิธี deploy swoole php บน ubuntu 20 โดยรันเว็บผ่าน cyberpanel

โพสต์ที่ยังไม่ได้อ่าน โดย mindphp »

วิธี deploy swoole php บน ubuntu 20 โดยรันเว็บผ่าน cyberpanel
หลักการ
1. เช็ค path เวอร์ชั่นที่จะใช้เพราะ cyberpanel จะมี php หลายเวอร์ชั่นให้เลือกใช้
2. ติดตั้ง Swoole ใช้ PECL ในการติดตั้ง ต้องเลือกเวอร์ชั่น php ที่จะเพิ่ม swoole เพิ่มลงไป
3. ตั้งค่า Virtual Host ใน OpenLiteSpeed
เพิ่ม External App เพื่อรัน PHP CLI ด้วย Swoole (ในส่วนของ Virtual Host หรือ Global):
4. ตั้งค่ารันแอปพลิเคชัน Swoole
5. ติดตั้งและตั้งค่า Supervisor เพื่อให้ Swoole รันตลอดเวลา
6. ตั้งค่า Firewall

เดี๋ยวจะรวบรวมทำเป็นบทความ แบบเป็นทางการมาลงเพิ่มให้
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042
ภาพประจำตัวสมาชิก
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
โพสต์: 47760
ลงทะเบียนเมื่อ: 22/09/2008 6:18 pm
ติดต่อ:

Re: วิธี deploy swoole php บน ubuntu 20 โดยรันเว็บผ่าน cyberpanel

โพสต์ที่ยังไม่ได้อ่าน โดย mindphp »

วิธี Deploy Swoole PHP บน Ubuntu 20 โดยรันเว็บผ่าน CyberPanel

การใช้ Swoole PHP บนเซิร์ฟเวอร์ที่รันผ่าน CyberPanel และ OpenLiteSpeed นั้นจำเป็นต้องตั้งค่าหลายส่วนให้ทำงานร่วมกันได้อย่างถูกต้อง โดยมีขั้นตอนหลักดังต่อไปนี้

1. เช็ค Path และเวอร์ชันของ PHP ที่ใช้
เนื่องจาก CyberPanel รองรับ PHP หลายเวอร์ชัน การติดตั้งและตั้งค่าจะต้องเลือกเวอร์ชัน PHP ที่เหมาะสมก่อน โดยสามารถตรวจสอบเวอร์ชันที่ใช้งานได้ด้วยคำสั่ง:

โค้ด: เลือกทั้งหมด

ls -la /usr/local/lsws/lsphp*
หรือใช้คำสั่ง:

โค้ด: เลือกทั้งหมด

/usr/local/lsws/fcgi-bin/lsphpX.X -v  # แทน X.X ด้วยเวอร์ชันที่ต้องการตรวจสอบ
2. ติดตั้ง Swoole ด้วย PECL
เมื่อตรวจสอบเวอร์ชัน PHP ที่จะใช้ได้แล้ว สามารถติดตั้ง Swoole ผ่าน PECL ได้โดยใช้คำสั่ง:

โค้ด: เลือกทั้งหมด

/usr/local/lsws/lsphpX.X/bin/pecl install swoole
หลังจากติดตั้งเสร็จแล้ว ให้เพิ่มส่วนขยายลงในไฟล์ php.ini ของ PHP เวอร์ชันที่เลือก:

โค้ด: เลือกทั้งหมด

echo "extension=swoole.so" >> /usr/local/lsws/lsphpX.X/etc/php.ini
3. ตั้งค่า Virtual Host ใน OpenLiteSpeed
เพื่อให้สามารถรัน Swoole ผ่าน OpenLiteSpeed ได้ จำเป็นต้องกำหนด External App ให้รองรับการรัน PHP CLI ผ่าน Swoole
  • เข้าไปที่ CyberPanel > Websites > เลือกโดเมนที่ต้องการ
  • เลือก Manage > Rewrite Rules และเพิ่มกฎที่เกี่ยวข้อง
  • เข้าไปที่ OpenLiteSpeed WebAdmin (ปกติคือ https://IP_SERVER:7080)
  • ไปที่ Virtual Hosts > เลือกเว็บไซต์ที่ต้องการ
  • เข้าไปที่ External App และเพิ่ม External App ใหม่เป็นประเภท Web Server
  • ตั้งค่าตามนี้:
    • Address: uds://tmp/lsphp.sock
    • Command: /usr/local/lsws/lsphpX.X/bin/lsphp
    • Max Connections: 10
4. ตั้งค่ารันแอปพลิเคชัน Swoole
สร้างไฟล์ server.php สำหรับ Swoole ตัวอย่างเช่น:

โค้ด: เลือกทั้งหมด

<?php
$server = new Swoole\Http\Server("0.0.0.0", 9501);

$server->on("request", function ($request, $response) {
    $response->end("Hello, Swoole!");
});

$server->start();
รันคำสั่งเพื่อทดสอบ:

โค้ด: เลือกทั้งหมด

php server.php
หากไม่มีข้อผิดพลาด แสดงว่า Swoole ทำงานได้ถูกต้อง

5. ติดตั้งและตั้งค่า Supervisor ให้ Swoole รันตลอดเวลา
เพื่อให้ Swoole รันอยู่ตลอดเวลาและรีสตาร์ทอัตโนมัติในกรณีที่เซิร์ฟเวอร์รีบูต จำเป็นต้องติดตั้ง Supervisor:

โค้ด: เลือกทั้งหมด

sudo apt update && sudo apt install supervisor -y
สร้างไฟล์คอนฟิกสำหรับ Supervisor:

โค้ด: เลือกทั้งหมด

sudo nano /etc/supervisor/conf.d/swoole.conf
เพิ่มเนื้อหาต่อไปนี้:

โค้ด: เลือกทั้งหมด

[program:swoole]
command=/usr/local/lsws/lsphpX.X/bin/php /path/to/server.php
autostart=true
autorestart=true
stderr_logfile=/var/log/swoole.err.log
stdout_logfile=/var/log/swoole.out.log
บันทึกไฟล์และรีโหลด Supervisor:

โค้ด: เลือกทั้งหมด

sudo supervisorctl reread
sudo supervisorctl update
sudo supervisorctl start swoole
6. ตั้งค่า Firewall
เปิดพอร์ตที่ใช้สำหรับ Swoole โดยปกติคือพอร์ต 9501:

โค้ด: เลือกทั้งหมด

sudo ufw allow 9501/tcp
sudo ufw reload
สรุป
หลังจากทำตามขั้นตอนข้างต้น คุณจะสามารถรัน Swoole PHP บน CyberPanel และ OpenLiteSpeed ได้เรียบร้อย โดย Swoole จะรันอยู่ตลอดเวลาและสามารถเข้าถึงผ่านเบราว์เซอร์ที่พอร์ต 9501 (หรือพอร์ตที่กำหนดไว้) ได้ทันที
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042
ตอบกลับโพส
  • Similar Topics
    ตอบกลับ
    แสดง
    โพสต์ล่าสุด

ผู้ใช้งานขณะนี้

สมาชิกกำลังดูบอร์ดนี้: facebook.com [Crawler] และบุคลทั่วไป 3