Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon ตัวแปรสภาพแวดล้อมทั่วไปที่ใช้ใน Laravel Sail คืออะไร


ตัวแปรสภาพแวดล้อมทั่วไปที่ใช้ใน Laravel Sail คืออะไร


Laravel Sail สภาพแวดล้อมการพัฒนาสำหรับ Laravel โดยใช้ Docker อาศัยตัวแปรสภาพแวดล้อมที่กำหนดไว้เป็นหลักในไฟล์ `.env` ที่รากของโครงการ ตัวแปรสภาพแวดล้อมเหล่านี้กำหนดค่าแอปพลิเคชันและบริการของมันทำให้การประสานงานของคอนเทนเนอร์และการปรับแต่งการตั้งค่าที่เหมาะสมสำหรับการพัฒนาในท้องถิ่น

ตัวแปรสภาพแวดล้อมทั่วไปที่ใช้ใน Laravel Sail สามารถจัดกลุ่มตามวัตถุประสงค์ของพวกเขา: การกำหนดค่าแอปพลิเคชันการกำหนดค่าฐานข้อมูลพอร์ตบริการและการผูกการตั้งค่าผู้ใช้คอนเทนเนอร์และการปรับแต่งเฉพาะเรือ

ตัวแปรการกำหนดค่าแอปพลิเคชัน

- `app_name`: กำหนดชื่อของแอปพลิเคชัน Laravel
- `app_env`: ตั้งค่าประเภทสภาพแวดล้อมโดยทั่วไป` ท้องถิ่น 'สำหรับการแล่นเรือ
- `app_key`: คีย์การเข้ารหัส Base64-encoded ที่ใช้โดย Laravel สำหรับการเข้ารหัสและความปลอดภัยของเซสชัน
- `app_debug`: ธงบูลีนเพื่อเปิดใช้งานข้อความแสดงข้อผิดพลาดโดยละเอียดและคุณสมบัติการดีบัก (` true` หรือ `false ')
- `app_url`: URL ที่แอปพลิเคชันสามารถเข้าถึงได้ในเครื่องมักจะตั้งค่าเป็น` http: // localhost`

ตัวแปรการเชื่อมต่อฐานข้อมูล

เพื่อ orchestrate คอนเทนเนอร์ฐานข้อมูล (บริการ mysql`) Sail ใช้ตัวแปรที่กำหนดการเชื่อมต่อกับคอนเทนเนอร์ฐานข้อมูล MySQL:

- `db_connection`: ระบุไดรเวอร์ฐานข้อมูลโดยทั่วไป` mysql`
- `db_host`: ชื่อโฮสต์สำหรับเซิร์ฟเวอร์ฐานข้อมูลมักจะเป็นชื่อของคอนเทนเนอร์ MySQL เช่น` mysql`
- `db_port`: พอร์ตเริ่มต้นสำหรับการเชื่อมต่อ MySQL มักจะ` 3306`
- `db_database`: ชื่อของฐานข้อมูลที่ใช้ภายในคอนเทนเนอร์
- `db_username`: ชื่อผู้ใช้เพื่อเข้าถึงฐานข้อมูล
- `db_password`: รหัสผ่านสำหรับผู้ใช้ฐานข้อมูล

การกำหนดค่า Redis

SAIL เป็นทางเลือกสนับสนุน REDIS สำหรับการแคชหรือการจัดการเซสชั่น ตัวแปรเหล่านี้กำหนดค่าการเชื่อมต่อ Redis:

- `redis_host`: ชื่อโฮสต์สำหรับเซิร์ฟเวอร์ Redis มักจะ` redis` เพื่อให้ตรงกับคอนเทนเนอร์ Redis
- `redis_password`: รหัสผ่านสำหรับ Redis ถ้ามี
- `redis_port`: พอร์ต Redis ฟังบ่อย` 6379`

ตัวแปรการส่งต่อพอร์ตบริการ

เพื่อหลีกเลี่ยงความขัดแย้งกับบริการที่ทำงานอยู่บนพอร์ตทั่วไปในระบบโฮสต์ Sail อนุญาตให้ปรับแต่งพอร์ตที่ส่งต่อสำหรับบริการ:

- `forward_db_port`: พอร์ตเครื่องท้องถิ่นที่ส่งต่อไปยังพอร์ตมาตรฐานของ MySQL 3306 ในคอนเทนเนอร์ (เช่นคุณสามารถตั้งค่าได้หากพอร์ต 3306 ถูกครอบครอง)
- `forward_redis_port`: พอร์ตท้องถิ่นส่งต่อไปยังพอร์ตเริ่มต้น Redis 6379
- `forward_mailhog_port`: พอร์ตท้องถิ่นส่งต่อไปยังพอร์ตบริการ Mailhog โดยทั่วไปจะใช้สำหรับการทดสอบอีเมล
- ตัวแปรอื่น ๆ `forward_*` มีอยู่สำหรับบริการเช่น phpmyadmin หรือบริการเรือใบอื่น ๆ หากกำหนดค่า

ผู้ใช้คอนเทนเนอร์และตัวแปรการอนุญาต

Sail รันคอนเทนเนอร์โดยใช้ผู้ใช้ที่ตรงกับผู้ใช้โฮสต์ในพื้นที่เพื่อให้แน่ใจว่าสิทธิ์ไฟล์ยังคงสอดคล้องกันระหว่างโฮสต์และคอนเทนเนอร์ ตัวแปรเหล่านี้ควบคุม ID ผู้ใช้:

- `wwwuser`: ตั้งค่ารหัสผู้ใช้ภายในคอนเทนเนอร์ที่สอดคล้องกับรหัสผู้ใช้ของโฮสต์ของเครื่อง
- `wwwgroup`: ตั้งค่า ID กลุ่มภายในคอนเทนเนอร์เพื่อให้ตรงกับโฮสต์

ตัวแปรการปรับแต่งใบเรือ

- `app_service`: อนุญาตให้เปลี่ยนชื่อคอนเทนเนอร์แอปพลิเคชัน Laravel หลักภายใน` docker-compose.yml` สิ่งนี้มีประโยชน์สำหรับการกำหนดค่าขั้นสูง
- `sail_files`: ให้คุณระบุ Docker เพิ่มเติมเขียนไฟล์แทนที่ที่จะโหลดควบคู่ไปกับไฟล์ SAIL มาตรฐาน นี่คือการปรับแต่งหรือขยายสภาพแวดล้อมการแล่นเรือ
- `supervisor_php_command`: ใช้ในการปรับแต่งคำสั่ง PHP เริ่มต้นภายในคอนเทนเนอร์ Laravel Sail หลักมีประโยชน์เมื่อรวมเครื่องมือเช่น Laravel ออกเทน
- `supervisor_php_user`: ตั้งค่าผู้ใช้ที่ทำงาน PHP ในกระบวนการหัวหน้างานภายในคอนเทนเนอร์

ตัวแปรบริการเมล

Laravel Sail มาพร้อมกับคอนเทนเนอร์ Mailhog สำหรับการจับอีเมลที่ส่งระหว่างการพัฒนา ตัวแปรเหล่านี้กำหนดค่าการตั้งค่าจดหมาย:

- `mail_mailer`: ตั้งค่าเป็น` smtp` หรือไดรเวอร์ Mailer อื่น
- `mail_host`: ชื่อโฮสต์สำหรับเซิร์ฟเวอร์เมลโดยปกติแล้ว` mailhog`
- `mail_port`: พอร์ตสำหรับ SMTP โดยทั่วไป` 1025` สำหรับ Mailhog
- `mail_username` และ` mail_password`: ข้อมูลรับรองหากจำเป็น (ว่างเปล่าโดยทั่วไปในการพัฒนา)

คิวและไดรเวอร์แคช

ค่าเริ่มต้นของ Sail `.env` สามารถตั้งค่าเหล่านี้:

- `queue_connection`: กำหนดไดรเวอร์คิวเช่น` sync`, 'ฐานข้อมูล' หรือ `redis '
- `cache_driver`: กำหนดไดรเวอร์แคชมักจะ` ไฟล์ 'หรือ `redis'

ตัวแปรสภาพแวดล้อมการบริการอื่น ๆ

- `xdebug_config`: กำหนดค่าโดยอัตโนมัติโดย Sail สำหรับการดีบักด้วย xdebug มักจะตั้งค่า` client_host = host.docker.internal` สำหรับ Mac และ Windows
- `puid` และ` pgid`: บางครั้งเห็นในการกำหนดค่าการแล่นเรือใบที่กำหนดเองเพื่อตั้งค่ารหัสผู้ใช้และกลุ่มอย่างชัดเจนสำหรับการจับคู่การรับส่งสัญญาณของผู้ใช้

บทสรุปของบทบาทตัวแปรสภาพแวดล้อมในการแล่นเรือ

ตัวแปรสภาพแวดล้อมเหล่านี้ส่วนใหญ่กำหนดไว้ในไฟล์ `.env` ให้บริการเพื่อ:

- กำหนดค่าพื้นฐานแอปพลิเคชัน Laravel (ชื่อ, สภาพแวดล้อม, โหมดการดีบัก, URL)
- เชื่อมต่อคอนเทนเนอร์แอปพลิเคชัน Laravel เข้ากับฐานข้อมูลและบริการแคชภายใน Docker
- แผนที่พอร์ตจากคอนเทนเนอร์ไปยังเครื่องโฮสต์หลีกเลี่ยงความขัดแย้งของพอร์ตในท้องถิ่น
- ตรวจสอบสิทธิ์ของผู้ใช้และกลุ่มที่เหมาะสมระหว่างระบบโฮสต์และคอนเทนเนอร์
- ปรับแต่งคอนเทนเนอร์และกระบวนการของ Laravel Sail Conventrices สำหรับการใช้งานขั้นสูง

ตัวแปรสภาพแวดล้อมไฟล์ `.env` ตัวแปรควบคุมพฤติกรรมของคอนเทนเนอร์ที่กำหนดไว้ใน 'Docker-compose.yml' ของ Sail โดยตรงและไฟล์ประกอบการเขียนใด ๆ ที่ระบุโดย` Sail_files ' การปรับตัวแปรเหล่านี้และการเริ่มต้นใหม่ (โดยใช้คำสั่งเช่น `./vendor/bin/sail down` และ` ./vendor/bin/sail up -d`) ใช้การเปลี่ยนแปลงการกำหนดค่า

การตั้งค่านี้ช่วยให้ Laravel Sail สามารถจัดหาสภาพแวดล้อมการพัฒนาในท้องถิ่นที่แยกได้