คู่มือจัดการเวอร์ชัน PHP บน ServBay: การตั้งค่าสำหรับ CLI และการกำหนดเว็บไซต์
ServBay คือเครื่องมือสภาพแวดล้อมการพัฒนาเว็บในเครื่องที่ทรงพลัง รองรับ macOS และ Windows เพื่อใช้งานภาษาโปรแกรมและฐานข้อมูลหลากหลายชนิด คู่มือนี้จะอธิบายวิธีจัดการเวอร์ชัน PHP สำหรับแต่ละโครงการบน ServBay ได้อย่างยืดหยุ่น ทั้งสำหรับการสั่งงาน CLI และการให้บริการเว็บไซต์แต่ละอัน เมื่อตระหนักถึงกลไกการจัดการเวอร์ชันของ PHP บน ServBay จะช่วยเพิ่มประสิทธิภาพการทำงานและสร้างความมั่นใจว่าแต่ละสภาพแวดล้อมของโครงการถูกแยกออกจากกันอย่างปลอดภัย
1. การตั้งค่าสำหรับคำสั่ง CLI: ใช้ .servbay.config
เพื่อกำหนด PHP สำหรับแต่ละโครงการ
คุณสามารถระบุเวอร์ชัน PHP ที่ต้องการใช้สำหรับแต่ละโครงการได้ผ่านไฟล์ .servbay.config
ที่สร้างในโฟลเดอร์รากของโครงการ ServBay จะโหลดสภาพแวดล้อม PHP ตามโฟลเดอร์ที่คุณเปิดในเทอร์มินัลโดยอัตโนมัติ จึงสามารถแยกการตั้งค่าแต่ละโครงการออกจากกัน ป้องกันปัญหาการขัดแย้งจากการตั้งค่าระดับระบบ
1. บทบาทและหลักการของ .servbay.config
- การควบคุมเวอร์ชันแยกตามโครงการ: ServBay รองรับการติดตั้งและรัน PHP หลายเวอร์ชันพร้อมกัน ตั้งแต่ PHP 5.6 ไปจนถึงเวอร์ชันล่าสุด (ทั้งเสถียรและพัฒนา) ด้วย
.servbay.config
คุณจึงระบุเวอร์ชัน PHP ที่แม่นยำสำหรับแต่ละโครงการได้ - เปลี่ยนเวอร์ชันแบบไร้ผลกระทบต่อระบบ: หากคุณใช้คำสั่ง
cd
เข้าไปในโฟลเดอร์โครงการที่มีไฟล์.servbay.config
ServBay จะตรวจพบไฟล์นี้และปรับเปลี่ยนตัวแปรแวดล้อมเทอร์มินัลชั่วคราว (เช่นPATH
) ให้โปรแกรมเช่นphp
หรือcomposer
อ้างอิงไฟล์ PHP เวอร์ชันที่ระบุไว้ เมื่อออกจากโฟลเดอร์นั้น สภาพแวดล้อมจะกลับไปใช้ค่าเริ่มต้นตามที่ตั้งใน ServBay ซึ่งวิธีนี้จะไม่มีผลกระทบกับการตั้งค่าระบบ
2. วิธีตั้งค่า
สร้างไฟล์ชื่อ .servbay.config
ในโฟลเดอร์รากของโครงการและเพิ่มเนื้อหาเพื่อระบุเวอร์ชัน PHP ที่ต้องการ เช่น
bash
# ระบุเวอร์ชัน PHP สำหรับโครงการนี้ (ตัวอย่าง: PHP 8.3)
PHP_VERSION=8.3
# หากโครงการของคุณต้องการ Node.js เวอร์ชันเฉพาะ ให้เพิ่มบรรทัดนี้ (ตัวอย่าง: Node.js 20)
# NODE_VERSION=20
1
2
3
4
5
2
3
4
5
PHP_VERSION
ต้องตรงกับเวอร์ชัน PHP ที่ติดตั้งและเปิดใช้งานบน ServBay (เช่น7.4
,8.1
,8.3
,8.5
เป็นต้น)- การตั้งค่า
NODE_VERSION
ใช้เพื่อระบุเวอร์ชัน Node.js เฉพาะโครงการวิธีเดียวกัน
ตรวจสอบการทำงาน
ในเทอร์มินัลที่อยู่ในโฟลเดอร์ที่มีไฟล์ .servbay.config
ให้พิมพ์คำสั่งต่อไปนี้เพื่อตรวจสอบ
bash
$ pwd # ตรวจสอบว่าคุณอยู่ที่โฟลเดอร์รากของโครงการ
$ php -v # เช็คเวอร์ชัน PHP ที่โชว์ว่าตรงกับค่าในไฟล์ (เช่น PHP 8.3.x)
$ composer install # การติดตั้ง dependencies จะใช้ PHP ที่กำหนดในไฟล์นี้
1
2
3
2
3
หากหลังจากแก้ไข .servbay.config
แล้ว PHP ยังไม่เปลี่ยน ให้ปิดเทอร์มินัลแล้วเปิดใหม่อีกครั้ง หรือใช้ cd .
เพื่อรีโหลดการตั้งค่า
3. ข้อควรระวังและเคล็ดลับขั้นสูง
- ตรวจสอบความเข้ากันของเวอร์ชัน: หากพบข้อผิดพลาดเช่น "Class not found" หรือ "Call to undefined function" ควรตรวจสอบไฟล์ dependencies (เช่น
composer.json
) ว่าระบุ PHP เวอร์ชันใด และแน่ใจว่าเวอร์ชันที่ตั้งไว้รองรับโครงการและ dependencies ทั้งหมด บางโครงการเก่าอาจต้องใช้ฟีเจอร์ที่ถูกลบใน PHP ใหม่ (เช่นmcrypt
ใน PHP 7.2) - ค่าเริ่มต้นระบบ: ถ้าไม่มีไฟล์
.servbay.config
ในโฟลเดอร์ปัจจุบันหรือโฟลเดอร์ต้นทาง ServBay จะใช้ค่า PHP เวอร์ชันที่ตั้งไว้ผ่าน GUI ใน "ตั้งค่า" - กำหนดหลายบริการ: คุณสามารถใช้
.servbay.config
เพื่อระบุเวอร์ชัน Node.js ด้วย เหมาะสำหรับโครงการที่ใช้ PHP เป็น backend และ Node.js ในการ build frontend (เช่น Webpack, Vite)
4. ตัวอย่างการใช้งาน
นี่คือตัวอย่างการสลับเวอร์ชัน PHP โดยอัตโนมัติระหว่างโปรเจ็กต์ด้วย .servbay.config
:
คำอธิบายภาพ: เมื่อเข้าโฟลเดอร์ที่มีไฟล์
.servbay.config
แตกต่างกันและใช้คำสั่ง php -v
ใน ServBay เทอร์มินัลจะเปลี่ยนไปใช้เวอร์ชัน PHP ตามที่กำหนดในแต่ละไฟล์ทันที
2. เว็บไซต์: กำหนดเวอร์ชัน PHP ผ่านหน้าต่างกราฟิกของ ServBay
GUI ของ ServBay ให้คุณเลือกเวอร์ชัน PHP สำหรับแต่ละเว็บไซต์ได้อย่างง่าย และการตั้งค่าของเว็บไซต์จะแยกกันกับสภาพแวดล้อม CLI
1. ขั้นตอนการตั้งค่า
- เปิดแอป ServBay: เริ่มต้นโปรแกรม ServBay บนเครื่องของคุณ
- เข้าสู่เมนูเว็บไซต์: เลือก เว็บไซต์ (Websites) จากแถบด้านซ้ายมือของหน้าหลัก
- เพิ่มหรือแก้ไขเว็บไซต์:
- ใช้ปุ่ม + ที่มุมล่างซ้ายเพื่อสร้างเว็บไซต์ใหม่
- เลือกเว็บไซต์ที่มีอยู่เพื่อแก้ไข
- กำหนดข้อมูลเว็บไซต์:
- Root Directory (โฟลเดอร์ราก): ระบุโฟลเดอร์สำหรับไฟล์เว็บ แนะนำให้ใช้โฟลเดอร์ย่อยใน
/Applications/ServBay/www/
เช่น/Applications/ServBay/www/your-website-name/public
(สำหรับ Laravel หรือ Symfony) - Domain (โดเมน): ชื่อโดเมนสำหรับเว็บในเครื่อง เช่น
your-website-name.servbay.demo
ServBay จะตั้งค่า DNS ในเครื่องและ SSL cert ให้อัตโนมัติ (ผ่าน ServBay User CA หรือ Public CA) ง่ายต่อการพัฒนาและทดสอบ - PHP Version (เวอร์ชัน PHP): เลือกเวอร์ชัน PHP ที่ต้องการจาก dropdown ServBay จะโชว์เวอร์ชันที่ติดตั้ง (เช่น 7.4, 8.1, 8.3, 8.5 ฯลฯ)
- Root Directory (โฟลเดอร์ราก): ระบุโฟลเดอร์สำหรับไฟล์เว็บ แนะนำให้ใช้โฟลเดอร์ย่อยใน
- บันทึกการตั้งค่า: กดบันทึก ServBay จะเปลี่ยนแปลงให้ทันที อาจต้อง reload หรือ restart web server และ PHP-FPM ตามความเหมาะสม
2. รายละเอียดทางเทคนิคและข้อดี
- แยกบริการแต่ละเว็บไซต์: ServBay รัน PHP แต่ละเว็บไซต์บน PHP-FPM ที่แยกกัน ข้อดีคือปัญหาหรือการรั่วของเว็บไซต์หนึ่งจะไม่กระทบเว็บไซต์อื่น
- ประสิทธิภาพสูงสุด: ServBay ปรับจูนแพ็คเกจ PHP สำหรับทั้ง ARM64 (Apple Silicon) และ X86_64 เพื่อประสิทธิภาพสูงสุดบนทุก hardware
- แก้ไขข้อผิดพลาด:
- เช็ค log ข้อผิดพลาด PHP ที่
/Applications/ServBay/var/log/php/php_error.log
- ใช้คำสั่ง
servbayctl status php 8.3
เพื่อตรวจสอบสถานะ PHP-FPM เฉพาะเวอร์ชัน
- เช็ค log ข้อผิดพลาด PHP ที่
3. การเชื่อมต่อ Web Server และฐานข้อมูล
ServBay ให้ความยืดหยุ่นในการเลือก Web Server และฐานข้อมูลตามโครงการ
- รองรับ Web Server: ตั้งแต่ ServBay เวอร์ชัน 1.7.0 สามารถสลับ Web Server สำหรับแต่ละเว็บได้ เช่น Apache, Nginx และ Caddy ซึ่งเชื่อมกับ PHP-FPM ของ ServBay โดยไม่ต้องตั้งค่าเพิ่ม
- จัดการฐานข้อมูลหลากหลาย: ServBay รองรับการติดตั้งหลายเวอร์ชันของ MySQL, MariaDB, PostgreSQL, MongoDB และ Redis สามารถเชื่อมต่อฐานข้อมูลที่ต้องการได้จากเว็บไซต์หรือโค้ดโครงการ เช่นโปรเจ็กต์ Laravel ที่ต้องใช้ MariaDB 11.x
3. วิธีร่วมงานข้ามสภาพแวดล้อมและแนวปฏิบัติที่ดีที่สุด
การเข้าใจการจัดการเวอร์ชัน PHP ระหว่าง CLI และ Web สำหรับแต่ละโครงการจะช่วยเลือกการตั้งค่าที่เหมาะสมได้ในทุกสถานการณ์
สถานการณ์ | ตั้งค่าคำสั่ง CLI (.servbay.config ) | ตั้งค่าเว็บ (ServBay GUI) | หมายเหตุ |
---|---|---|---|
อัพเดตระบบเก่า | ระบุ PHP_VERSION=5.6 ในโฟลเดอร์รากโครงการ | เลือก PHP 5.6 ในหน้าเว็บไซต์ | ตรวจสอบทุกเวอร์ชัน PHP และ extension ที่ต้องการถูกติดตั้งครบถ้วน |
พัฒนาโครงการใหม่ (เช่น Laravel 11) | ระบุ PHP_VERSION=8.3 (หรือสูงกว่า) และอาจเพิ่ม NODE_VERSION=20 | สร้างเว็บไซต์ใหม่ ชี้ไปที่โฟลเดอร์ public เลือก PHP 8.3+ ตั้งโดเมนและเปิดใช้งาน HTTPS | ให้เวอร์ชัน PHP ของ CLI และ Web ตรงกันระหว่าง Composer, Artisan, Node, Web |
ทดสอบ PHP เวอร์ชันใหม่ | ระบุ PHP_VERSION=8.5 ในโฟลเดอร์รากโครงการ | สร้างเว็บไซต์ทดสอบ เลือก PHP 8.5 | เหมาะสำหรับทดสอบความเข้ากันของโค้ดกับเวอร์ชัน PHP ใหม่ |
ใช้งาน Composer ในคำสั่ง CLI | ตรวจสอบว่า .servbay.config ตั้ง PHP เวอร์ชันถูกต้อง | N/A (Composer ใช้บน CLI เป็นหลัก) | Composer จะใช้ PHP เวอร์ชันตามที่กำหนดในเทอร์มินัล |
หมายเหตุสำคัญ
- ความแตกต่างระหว่าง CLI และ Web: แม้จะใช้ PHP เวอร์ชันเดียวกัน แต่การตั้งค่าและโมดูลที่เปิดตามโหมด CLI (คำสั่งเทอร์มินัล) และโหมด PHP-FPM (สำหรับเว็บไซต์) อาจแตกต่างกัน เช่น extension
opcache
จะเปิดใน PHP-FPM เพื่อเร่งความเร็วแต่อาจปิดไว้ใน CLI หากพบพฤติกรรมต่างกัน ควรตรวจไฟล์php.ini
ของแต่ละเวอร์ชันที่ใช้และดูโมดูลที่เปิดอยู่ - อัปเดต ServBay Runtime: ควรอัปเดตแอปและ Runtime ServBay เป็นเวอร์ชันล่าสุดอยู่เสมอ ทีมงาน ServBay เพิ่มความสามารถใหม่และแพตช์ความปลอดภัยอย่างต่อเนื่อง การอัปเดตแอปจะทำให้ Runtime และแพ็คเกจ PHP ได้รับฟีเจอร์และการแก้ไขล่าสุดด้วย
คำถามที่พบบ่อย (FAQ)
ถาม: ถ้ามีการใช้ PHP เวอร์ชันต่างกันใน CLI กับเว็บไซต์จะเกิดปัญหาอะไรหรือไม่?
ตอบ: สภาพแวดล้อม CLI (ควบคุมด้วย .servbay.config
) และเว็บไซต์ (ควบคุมด้วย ServBay GUI) แยกอิสระกันโดยสิ้นเชิง ไฟล์ .servbay.config
จะเปลี่ยน PHP ในเทอร์มินัลเท่านั้น ส่วนเว็บไซต์จะใช้เวอร์ชัน PHP-FPM ที่ระบุไว้บน Web Server ทั้งคู่ไม่มีผลกันโดยตรง คุณสามารถกำหนดให้คำสั่ง Composer หรือ Artisan ใช้ PHP เวอร์ชันหนึ่งและเว็บไซต์ใช้เวอร์ชันอื่นก็ได้ แต่วิธีนี้ไม่แนะนำ ควรให้เวอร์ชันทั้งสองตรงกันเพื่อป้องกันปัญหาและให้สภาพแวดล้อมพัฒนาใกล้เคียง production ที่สุด
สรุป
ServBay ให้คุณจัดการเวอร์ชัน PHP ได้ทั้งผ่านไฟล์ .servbay.config
และหน้าต่างกราฟิก GUI ไม่ว่าจะต้องดูแลโครงการเก่าที่ใช้ PHP เวอร์ชันต่ำ หรือพัฒนาโครงการใหม่บนเวอร์ชัน PHP ล่าสุด ServBay จะช่วยให้คุณควบคุมสภาพแวดล้อมท้องถิ่นสำหรับแต่ละโครงการอย่างมืออาชีพ ใช้ฟีเจอร์นี้อย่างเหมาะสมเพื่อให้สภาพแวดล้อม local ตรงกับ production มากที่สุด เพิ่มความคล่องตัวในการพัฒนา และสร้างโครงการที่เสถียรปลอดภัย