ป้ายกำกับ: ความยืดหยุ่น

.env คืออะไร ?.env คืออะไร ?

ไฟล์ .env คือหัวใจสำคัญของการจัดการการตั้งค่า ( Configuration ) ในการพัฒนาซอฟต์แวร์ยุคใหม่ ไฟล์ .env ( ย่อมาจาก Environment ) เป็นไฟล์ข้อความธรรมดา ( Plain Text ) ที่ใช้เก็บ Environment Variables หรือตัวแปรสภาพแวดล้อมของโปรเจกต์ โดยมีรูปแบบการเก็บข้อมูลเป็น KEY=VALUE

จุดประสงค์หลักคือการแยก “การตั้งค่า” ออกจาก “โค้ด” เพื่อให้โปรแกรมสามารถรันในสภาพแวดล้อมที่ต่างกัน ( เช่น เครื่อง Dev, Server Test หรือ Server จริง ) ได้โดยไม่ต้องแก้ไขโค้ดด้านใน


ทำไมต้องใช้ .env ?

  1. Security ( ความปลอดภัย ): ป้องกันการหลุดของข้อมูลสำคัญ เช่น API Keys, รหัสผ่าน Database หรือ Token ต่างๆ เข้าไปยัง Git Repository
  2. Flexibility ( ความยืดหยุ่น ): เปลี่ยนการตั้งค่าได้ง่ายตามสภาพแวดล้อม เช่น
  3. Local: ต่อ Database ในเครื่องตัวเอง ( localhost )
  4. Production: ต่อ Database บน Cloud
  5. Standardization: เป็นมาตรฐานที่ใช้กันทั่วโลก ไม่ว่าจะเป็น Node.js, Python, PHP, หรือ Docker

โครงสร้างและการใช้งาน

  1. การสร้างไฟล์
    สร้างไฟล์ชื่อ .env ไว้ที่ Root Directory ของโปรเจกต์ ( โฟลเดอร์นอกสุด ) แล้วใส่ข้อมูลลงไปดังนี้
    PORT=3000
    DB_HOST=localhost
    DB_USER=root
    DB_PASS=123456
    STRIPE_API_KEY=sk_test_4eC39HqLyjWDarjtT1zdp7dc
    
  2. การเรียกใช้งาน ( ตัวอย่าง Node.js )
    สร้างไฟล์ชื่อ .env ไว้ที่ Root Directory ของโปรเจกต์ ( โฟลเดอร์นอกสุด ) แล้วใส่ข้อมูลลงไปดังนี้
    require('dotenv').config();
    
    console.log(process.env.PORT); // ผลลัพธ์: 3000
    console.log(process.env.DB_HOST); // ผลลัพธ์: localhost
    

ข้อควรระวังที่สำคัญ ( Best Practices )

❌ ห้าม Push ไฟล์ .env ขึ้น Git เด็ดขาด!

นี่คือข้อผิดพลาดที่ร้ายแรงที่สุด ให้เพิ่มชื่อไฟล์ .env ลงในไฟล์ .gitignore เสมอ เพื่อไม่ให้ข้อมูลความลับถูกอัปโหลดขึ้น GitHub หรือ GitLab

✅ สร้างไฟล์ .env.example

เนื่องจากเราไม่ Push ไฟล์จริงขึ้น Git เพื่อนร่วมทีมจะไม่รู้ว่าต้องตั้งค่าตัวแปรอะไรบ้าง วิธีแก้คือสร้างไฟล์ .env.example ที่ใส่เฉพาะชื่อ Key แต่ไม่มี Value จริง

# .env.example
PORT=
DB_HOST=
DB_PASS=

✅ การตั้งชื่อ Variable

  • ควรเป็นตัวพิมพ์ใหญ่ทั้งหมด ( UPPER_CASE )
  • ใช้ Under score ( _ ) เชื่อมคำ
  • ไม่ควรมีช่องว่างรอบเครื่องหมาย =

สรุป

การใช้ .env ช่วยให้โปรเจกต์ของคุณมีความปลอดภัยและจัดการง่ายขึ้น แต่อย่าลืมว่าไฟล์นี้เปรียบเสมือนกุญแจบ้าน ห้ามทำหลุดไปในที่สาธารณะ และควรมีการสำรองข้อมูลการตั้งค่าเหล่านี้ไว้ในที่ปลอดภัยเสมอครับ ( เช่น ใน Password Manager ของทีม หรือระบบ Secret Management ของ Cloud )


อ่านเพิ่มเติม