การตั้งค่าสภาพแวดล้อมระดับโปรเจกต์ด้วยไฟล์ .servbay.config
ภาพรวม
ServBay คือเครื่องมือสําหรับสภาพแวดล้อมการพัฒนาเว็บแบบโลคอลที่ทรงพลัง ซึ่งช่วยให้นักพัฒนาสามารถกำหนดสภาพแวดล้อมแยกแต่ละโปรเจกต์ได้ ฟีเจอร์สำคัญคือสามารถสร้างไฟล์ชื่อ .servbay.config ในแต่ละไดเรกทอรีของโปรเจกต์
ไฟล์ .servbay.config ช่วยให้คุณระบุเวอร์ชันของภาษา (เช่น PHP, Node.js, Python, Go, Java ฯลฯ) และตั้งค่าตัวจัดการแพ็คเกจของ Node.js (เช่น NPM, Yarn) สำหรับแต่ละโปรเจกต์ได้อย่างง่ายดาย รวมถึงตำแหน่งแคชและแอดเดรสรีจีสทรี การควบคุมระดับโปรเจกต์นี้ช่วยเพิ่มประสิทธิภาพการทำงาน ลดปัญหาเวอร์ชันชนกัน และรับรองว่าแต่ละโปรเจกต์จะใช้งานในสภาพแวดล้อมที่เหมาะสมที่สุด
วิธีการทำงานของไฟล์ .servbay.config
เมื่อ ServBay เปิดหรือรีโหลดเว็บไซต์ จะตรวจสอบว่าในโฟลเดอร์รากของเว็บไซต์มีไฟล์ .servbay.config หรือไม่ ถ้ามี ServBay จะอ่านการตั้งค่าในไฟล์นี้แล้วนำไปใช้กำหนดสภาพแวดล้อมของเว็บไซต์นั้น การตั้งค่าแบบนี้จะมีผลเหนือกว่าการตั้งค่าระดับโกลบอลของ ServBay ในกรณีที่ไม่มีไฟล์นี้ หรือไม่มีระบุค่าบางอย่าง ServBay จะใช้ค่าเริ่มต้นจากการตั้งค่าโกลบอลแทน
ด้วยกลไกนี้ จึงสามารถสลับไปมาระหว่างโปรเจกต์ได้อย่างไร้รอยต่อ—แต่ละโปรเจกต์พกสภาพแวดล้อมของตัวเองแบบอิสระ
วิธีสร้างและตั้งค่าไฟล์ .servbay.config
วิธีสร้างและตั้งค่าไฟล์ .servbay.config ทำได้อย่างง่ายดาย
ตำแหน่งไฟล์
ให้สร้างไฟล์ชื่อ .servbay.config ไว้ในโฟลเดอร์รากของโปรเจกต์ โดยปกติแล้ว โฟลเดอร์โปรเจกต์จะอยู่ในไดเรกทอรีเว็บไซต์ของ ServBay เช่น /Applications/ServBay/www/ชื่อโปรเจกต์ของคุณ/
รูปแบบการตั้งค่า
ไฟล์ .servbay.config ใช้รูปแบบ KEY=VALUE ง่ายๆ สำหรับแต่ละบรรทัด สามารถเขียนคอมเมนต์ด้วยเครื่องหมาย # เพื่ออธิบายแต่ละบรรทัดได้
ตัวอย่างการตั้งค่า
ด้านล่างคือตัวอย่างไฟล์ .servbay.config แสดงวิธีกำหนดเวอร์ชันและตั้งค่าตัวจัดการแพ็คเกจต่างๆ:
bash
# ตัวอย่างไฟล์ .servbay.config
# กำหนดเวอร์ชัน PHP ที่ใช้ ตรวจสอบให้แน่ใจว่าได้ติดตั้งใน ServBay แล้ว
PHP_VERSION=8.5
# กำหนดเวอร์ชัน Node.js ที่ใช้ ตรวจสอบให้แน่ใจว่าได้ติดตั้งใน ServBay แล้ว
NODE_VERSION=20
# ตั้งค่าที่อยู่ registry ของ Yarn เพื่อเพิ่มความเร็ว
YARN_CONFIG_REGISTRY=https://npmreg.proxy.ustclug.org/
# ตั้งค่าที่อยู่ registry ของ NPM เพื่อเพิ่มความเร็ว
NPM_CONFIG_REGISTRY=https://npmreg.proxy.ustclug.org/
# กำหนดไดเรกทอรีแคชของ NPM (เส้นทางนี้สัมพันธ์กับไดเรกทอรีติดตั้งของ ServBay)
NPM_CONFIG_CACHE=/Applications/ServBay/tmp/npm/cache
# กำหนดไดเรกทอรีแคชของ Yarn (เส้นทางนี้สัมพันธ์กับไดเรกทอรีติดตั้งของ ServBay)
YARN_CONFIG_CACHE=/Applications/ServBay/tmp/yarn/cache
# กำหนดเวอร์ชัน Ruby ที่ใช้ ตรวจสอบให้แน่ใจว่าได้ติดตั้งใน ServBay แล้ว
RUBY_VERSION=2.7
# กำหนดเวอร์ชัน Java (OpenJDK) ที่ใช้ ตรวจสอบให้แน่ใจว่าได้ติดตั้งใน ServBay แล้ว
JAVA_VERSION=21
# กำหนดเวอร์ชัน Python ที่ใช้ ตรวจสอบให้แน่ใจว่าได้ติดตั้งใน ServBay แล้ว
PYTHON_VERSION=3.11
# กำหนดเวอร์ชัน .NET ที่ใช้ ตรวจสอบให้แน่ใจว่าได้ติดตั้งใน ServBay แล้ว
DOTNET_VERSION=5.0
# กำหนดเวอร์ชัน Go ที่ใช้ ตรวจสอบให้แน่ใจว่าได้ติดตั้งใน ServBay แล้ว
GO_VERSION=1.12
# ตั้งค่า Go module proxy server เพื่อเร่งความเร็วในการดาวน์โหลดโมดูล
GOPROXY=https://goproxy.cn,direct1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
หมายเหตุ: หมายเลขเวอร์ชันต่างๆ (PHP_VERSION=8.5, NODE_VERSION=20 ฯลฯ) ในตัวอย่างนี้เป็นเพียงตัวอย่างเท่านั้น คุณควรกรอกค่าจริงตามความต้องการของโปรเจกต์และเวอร์ชันที่ติดตั้งและรองรับบน ServBay หากระบุเวอร์ชันที่ไม่ได้ติดตั้งไว้ อาจเกิดข้อผิดพลาดหรือกลับไปใช้เวอร์ชันเริ่มต้นได้
ประเภทของการตั้งค่าที่รองรับ
จากตัวอย่างด้านบน ในไฟล์ .servbay.config รองรับประเภทการตั้งค่าหลักๆ ดังนี้:
การระบุเวอร์ชันของสภาพแวดล้อม:
PHP_VERSION: กำหนดเวอร์ชัน PHPNODE_VERSION: กำหนดเวอร์ชัน Node.jsRUBY_VERSION: กำหนดเวอร์ชัน RubyJAVA_VERSION: กำหนดเวอร์ชัน Java (OpenJDK)PYTHON_VERSION: กำหนดเวอร์ชัน PythonDOTNET_VERSION: กำหนดเวอร์ชัน .NETGO_VERSION: กำหนดเวอร์ชัน Go- (โปรดอ่านคู่มือหรือเช็คชื่อชี้ตัวแปรจากหน้าต่างแอปพลิเคชัน ServBay เพื่อดูรายละเอียดสภาพแวดล้อมและ key ที่รองรับ)
การตั้งค่าตัวจัดการแพ็คเกจ (Node.js):
YARN_CONFIG_REGISTRY: ที่อยู่ Yarn registryNPM_CONFIG_REGISTRY: ที่อยู่ NPM registryNPM_CONFIG_CACHE: ไดเรกทอรีแคชของ NPMYARN_CONFIG_CACHE: ไดเรกทอรีแคชของ Yarn
การตั้งค่า Go module proxy:
GOPROXY: ที่อยู่ Go module proxy server
การตั้งค่าเหล่านี้ช่วยให้แต่ละโปรเจกต์มีสภาพแวดล้อมแยกอิสระโดยไม่ยุ่งเกี่ยวกัน
การใช้งานจริงและการตรวจสอบผล
หลังจากตั้งค่าไฟล์ .servbay.config แล้ว ให้แน่ใจว่า ServBay โหลดโปรเจกต์ของคุณไว้แล้ว (โปรเจกต์ควรแสดงอยู่ในรายการ "เว็บไซต์" ของแอปฯ ServBay) ServBay จะอ่านค่าจากไฟล์นี้ทุกครั้งที่โหลดหรือรีโหลดเว็บไซต์
วิธีตรวจสอบว่าไฟล์ .servbay.config มีผลกับโปรเจกต์:
ดูบนแอปฯ ServBay: ในหน้าเว็บไซต์หรือรายละเอียดต่างๆ อาจแสดงเวอร์ชันของสภาพแวดล้อมที่ใช้งาน
ตรวจสอบผ่าน Terminal: เปิด Terminal บน ServBay และเปลี่ยน directory ไปยังโฟลเดอร์โปรเจกต์ จากนั้นรันคำสั่งตรวจสอบเวอร์ชัน เช่น:
- ตรวจสอบเวอร์ชัน PHP:
php -v - ตรวจสอบเวอร์ชัน Node.js:
node -v - ตรวจสอบเวอร์ชัน Yarn:
yarn -v - ตรวจสอบเวอร์ชัน NPM:
npm -v - ตรวจสอบเวอร์ชัน Python:
python -Vหรือpython3 -V - ตรวจสอบเวอร์ชัน Go:
go version - ตรวจสอบเวอร์ชัน Java:
java -version - ตรวจสอบเวอร์ชัน .NET:
dotnet --version - ตรวจสอบเวอร์ชัน Ruby:
ruby -vตรวจสอบว่าเวอร์ชันที่แสดงตรงกับที่ระบุในไฟล์.servbay.configหรือไม่
- ตรวจสอบเวอร์ชัน PHP:
ตรวจสอบผ่านหน้าเว็บ (เหมาะกับ PHP): สร้างไฟล์ PHP ชื่อ
info.phpในโฟลเดอร์โปรเจกต์ แล้วใส่เนื้อหา<?php phpinfo(); ?>จากนั้นเปิดผ่านเบราว์เซอร์เช่นhttp://your-project.servbay.demo/info.phpแล้วตรวจสอบในหน้าผลลัพธ์ phpinfo ว่าเป็นเวอร์ชันที่คุณกำหนดจากไฟล์.servbay.configหรือไม่
ด้านล่างคือตัวอย่างหน้าจอจาก ServBay ที่แสดงผลการตั้งค่าระดับโปรเจกต์:

(โปรดดูผลลัพธ์จริงจากการใช้งาน ServBay ของคุณเพื่อยืนยันการตั้งค่า)
ข้อควรระวัง
- ชื่อไฟล์ต้องเป็น
.servbay.configเป๊ะ ห้ามสะกดผิด - ต้องวางไฟล์ไว้ที่โฟลเดอร์รากของโปรเจกต์เท่านั้น
- เวอร์ชันที่ระบุจะต้องติดตั้งและรองรับใน ServBay แล้ว
- การตั้งค่าต้องแยกบรรทัดละ 1
KEY=VALUE - การพิมพ์ผิดหรือไวยากรณ์ผิด อาจทำให้ไฟล์ไม่ถูกอ่าน หรือการตั้งค่าใช้งานไม่ได้บางส่วน
- การตั้งค่าใน
.servbay.configจะ override การตั้งค่าระดับโกลบอลบน ServBay และใช้ได้กับโปรเจกต์นั้นเท่านั้น
คำถามที่พบบ่อย (FAQ)
ถาม: ถ้าโฟลเดอร์โปรเจกต์ไม่มีไฟล์ .servbay.config จะเกิดอะไรขึ้น?
ตอบ: ServBay จะใช้ค่าการตั้งค่าสภาพแวดล้อมโกลบอลที่ตั้งไว้ในแอปพลิเคชันโดยอัตโนมัติ
ถาม: ถ้าตั้งค่าเวอร์ชันที่ไม่ได้ติดตั้งใน ServBay ไว้ในไฟล์ .servbay.config จะเป็นอย่างไร?
ตอบ: ServBay จะแจ้งเตือนข้อผิดพลาด การทำงานจริงขึ้นอยู่กับเวอร์ชันและการตั้งค่า ServBay คุณควรติดตั้งเวอร์ชันที่ต้องการก่อนเท่านั้น
ถาม: หลังจากแก้ไขไฟล์ .servbay.config ต้องรีสตาร์ท ServBay หรือไม่?
ตอบ: โดยปกติไม่ต้องรีสตาร์ทแอปฯ ใหม่ทั้งตัว แค่รีโหลดหรือหยุดแล้วสตาร์ทเว็บไซต์ที่ได้รับผลกระทบใหม่ในแอปฯ ServBay ก็พอ
ถาม: ค่าการตั้งค่าในไฟล์ .servbay.config จะมีผลกับโปรเจกต์อื่นหรือไม่?
ตอบ: ไม่ส่งผลกับโปรเจกต์อื่น การตั้งค่าไฟล์นี้มีผลเฉพาะในโฟลเดอร์เว็บไซต์ของโปรเจกต์นั้นเท่านั้น
สรุป
ไฟล์ .servbay.config ช่วยให้นักพัฒนาควบคุมสภาพแวดล้อมการพัฒนาของแต่ละโปรเจกต์ได้อย่างอิสระ ไม่ว่าจะเป็นโปรเจกต์เก่าที่ต้องใช้เวอร์ชันเฉพาะ หรือโปรเจกต์ใหม่ที่ใช้เทคโนโลยีล่าสุด ก็สามารถสลับสภาพแวดล้อมและแยกการทำงานได้รวดเร็ว ช่วยเพิ่มประสิทธิภาพและความยืดหยุ่นของสภาพแวดล้อมโลคอลให้มากขึ้น ใช้ฟีเจอร์นี้เพื่อทำให้การพัฒนาของคุณง่ายขึ้น และมี workflow ที่ราบรื่นกว่าเดิม
