Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Apa variabel lingkungan umum yang digunakan dalam Laravel Sail


Apa variabel lingkungan umum yang digunakan dalam Laravel Sail


Laravel Sail, lingkungan pengembangan untuk Laravel menggunakan Docker, sangat bergantung pada variabel lingkungan yang didefinisikan terutama dalam file `.env` pada akar proyek. Variabel lingkungan ini mengkonfigurasi aplikasi dan layanannya, memungkinkan orkestrasi wadah yang mulus dan penyetelan pengaturan yang cocok untuk pengembangan lokal.

Variabel lingkungan umum yang digunakan dalam Laravel Sail dapat dikelompokkan sesuai dengan tujuannya: konfigurasi aplikasi, konfigurasi basis data, port layanan dan binding, pengaturan pengguna kontainer, dan kustomisasi khusus layar.

Variabel konfigurasi aplikasi ###

- `app_name`: Menentukan nama aplikasi Laravel.
- `app_env`: Mengatur jenis lingkungan, biasanya` lokal` untuk berlayar.
- `APP_KEY`: Kunci enkripsi yang dikodekan Base64 yang digunakan oleh Laravel untuk keamanan enkripsi dan sesi.
- `app_debug`: bendera boolean untuk mengaktifkan pesan kesalahan terperinci dan fitur debugging (` true` atau `false`).
- `app_url`: URL tempat aplikasi dapat diakses secara lokal, sering diatur ke` http: // localhost`.

Variabel koneksi basis data ###

Untuk mengatur wadah basis data (`layanan mysql`), Sail menggunakan variabel yang menentukan koneksi ke wadah database MySQL:

- `db_connection`: Menunjukkan driver database, biasanya` mysql`.
- `db_host`: nama host untuk server database, biasanya nama wadah mysql, seperti` mysql`.
- `db_port`: Port default untuk konektivitas mysql, biasanya` 3306`.
- `db_database`: Nama database yang digunakan di dalam wadah.
- `db_username`: Nama pengguna untuk mengakses database.
- `db_password`: Kata sandi untuk pengguna database.

Konfigurasi

Redis

Sail secara opsional mendukung Redis untuk caching atau penanganan sesi. Variabel -variabel ini mengkonfigurasi konektivitas redis:

- `redis_host`: nama host untuk server redis, sering` redis` untuk mencocokkan wadah redis.
- `redis_password`: Kata sandi untuk redis, jika ada.
- `redis_port`: port redis mendengarkan, sering` 6379`.

Variabel penerusan port layanan ###

Untuk menghindari konflik dengan layanan yang sudah berjalan di port umum pada sistem host, Sail memungkinkan penyesuaian port yang diteruskan untuk layanannya:

- `forward_db_port`: Port mesin lokal diteruskan ke port standar MySQL 3306 di wadah (mis., Anda dapat mengatur ini jika port 3306 ditempati).
- `forward_redis_port`: Port lokal diteruskan ke redis port default 6379.
- `forward_mailhog_port`: Port lokal diteruskan ke port layanan Mailhog, biasanya digunakan untuk pengujian email.
- Variabel lain `forward_*` ada untuk layanan seperti phpMyadmin atau layanan layar lainnya jika dikonfigurasi.

Variabel Pengguna dan Izin Kontainer ###

Sail menjalankan kontainer menggunakan pengguna yang cocok dengan pengguna host lokal untuk memastikan bahwa izin file tetap konsisten antara host dan wadah. Variabel -variabel ini mengontrol ID pengguna:

- `wwwuser`: Mengatur ID pengguna di dalam wadah yang sesuai dengan ID pengguna mesin host, memastikan izin file yang cocok.
- `wwwgroup`: Mengatur ID grup di dalam wadah agar sesuai dengan host.

Variabel kustomisasi ###

- `app_service`: Memungkinkan mengubah nama wadah layanan aplikasi Laravel primer di dalam` docker-compose.yml`. Ini bisa berguna untuk konfigurasi lanjutan.
- `sail_files`: Memungkinkan Anda menentukan file docker tambahan tambahan untuk dimuat di samping file layar standar. Ini untuk menyesuaikan atau memperluas lingkungan layar.
- `supervisor_php_command`: Digunakan untuk menyesuaikan perintah startup PHP di dalam wadah layar Laravel utama, berguna saat mengintegrasikan alat seperti Laravel Octane.
- `supervisor_php_user`: Mengatur pengguna yang menjalankan PHP dalam proses pengawas di dalam wadah.

Variabel layanan

surat

Laravel Sail dilengkapi dengan wadah Mailhog untuk menangkap email yang dikirim selama pengembangan. Variabel -variabel ini mengkonfigurasi pengaturan email:

- `Mail_mailer`: Setel ke` smtp` atau driver surat lainnya.
- `mail_host`: nama host untuk server email, biasanya` mailhog`.
- `mail_port`: port untuk smtp, biasanya` 1025` untuk mailhog.
- `mail_username` dan` mail_password`: kredensial jika diperlukan (biasanya dibiarkan kosong dalam pengembangan).

antrian dan pengemudi cache

Default Sail `.env` dapat mengatur ini:

- `queue_connection`: Menentukan driver antrian, seperti` sync`, `database`, atau` redis`.
- `Cache_Driver`: Menentukan driver cache, sering` file` atau `redis`.

Variabel Lingkungan Layanan Lainnya

- `xdebug_config`: Dikonfigurasi secara otomatis dengan berlayar untuk debugging dengan xDebug, sering mengatur` client_host = host.docker.internal` untuk mac dan windows.
- `PUID` dan` PGID`: Kadang-kadang terlihat dalam konfigurasi layar khusus untuk secara eksplisit mengatur ID pengguna dan grup untuk pencocokan penggunaan pengguna.

Ringkasan Peran Variabel Lingkungan di Layar

Variabel lingkungan ini, sebagian besar didefinisikan dalam file `.env`, berfungsi untuk:

- Mengkonfigurasi Dasar -Dasar Aplikasi Laravel (Nama, Lingkungan, Mode Debug, URL).
- Hubungkan wadah aplikasi Laravel ke basis data dan layanan cache di dalam Docker.
- Peta port dari wadah ke mesin host, menghindari konflik port lokal.
- Pastikan izin pengguna dan grup yang tepat antara sistem host dan kontainer.
- Kustomisasi wadah dan proses lingkungan Laravel Sail untuk penggunaan lanjutan.

Variabel lingkungan file `.env` secara langsung mengontrol perilaku wadah yang ditentukan dalam` Docker-compose.yml` Sail dan setiap file yang ditunjukkan oleh `sail_files`. Menyesuaikan variabel -variabel ini dan memulai kembali layar (menggunakan perintah seperti `./vendor/bin/sail Down` dan` ./vendor/bin/sail up -d`) menerapkan perubahan konfigurasi.

Pengaturan ini memungkinkan Laravel Sail untuk menyediakan lingkungan pengembangan lokal yang terisolasi, namun dapat dikonfigurasi menggunakan Docker, mencerminkan perilaku produksi di mana pun praktis sambil mempertahankan kenyamanan dan fleksibilitas pengembang.