Semua file konfigurasi untuk framework Laravel disimpan di direktori
APP_NAME="My Application"
8. Setiap opsi didokumentasikan, jadi silakan melihat-lihat file dan membiasakan diri dengan opsi yang tersedia untuk AndaFile konfigurasi ini memungkinkan Anda mengonfigurasi hal-hal seperti informasi koneksi database, informasi server email, serta berbagai nilai konfigurasi inti lainnya seperti zona waktu aplikasi dan kunci enkripsi
Ikhtisar Aplikasi
Terburu-buru?
Jika Anda hanya tertarik pada bagian tertentu dari keluaran ikhtisar aplikasi, Anda dapat memfilter bagian tersebut menggunakan opsi
'debug' => env('APP_DEBUG', false),
0php artisan about --only=environment
Konfigurasi Lingkungan
Seringkali bermanfaat untuk memiliki nilai konfigurasi yang berbeda berdasarkan lingkungan tempat aplikasi berjalan. Misalnya, Anda mungkin ingin menggunakan driver cache yang berbeda secara lokal daripada yang Anda lakukan di server produksi
Untuk membuatnya mudah, Laravel menggunakan pustaka DotEnv PHP. Dalam instalasi Laravel baru, direktori root aplikasi Anda akan berisi file
'debug' => env('APP_DEBUG', false),
1 yang mendefinisikan banyak variabel lingkungan umum. Selama proses instalasi Laravel, file ini akan secara otomatis disalin ke'debug' => env('APP_DEBUG', false),
2File
'debug' => env('APP_DEBUG', false),
_2 default Laravel berisi beberapa nilai konfigurasi umum yang mungkin berbeda berdasarkan apakah aplikasi Anda berjalan secara lokal atau di server web produksi. Nilai-nilai ini kemudian diambil dari berbagai file konfigurasi Laravel dalam direktoriAPP_NAME="My Application"
8 menggunakan fungsi'debug' => env('APP_DEBUG', false),
5 LaravelJika Anda mengembangkan dengan tim, Anda mungkin ingin terus menyertakan file
'debug' => env('APP_DEBUG', false),
1 dengan aplikasi Anda. Dengan menempatkan nilai placeholder dalam file konfigurasi contoh, developer lain di tim Anda dapat dengan jelas melihat variabel lingkungan mana yang diperlukan untuk menjalankan aplikasi AndaCatatan
Variabel apa pun dalam file'debug' => env('APP_DEBUG', false),
2 Anda dapat diganti oleh variabel lingkungan eksternal seperti variabel lingkungan tingkat server atau tingkat sistem
Keamanan File Lingkungan
File
'debug' => env('APP_DEBUG', false),
_2 Anda tidak boleh dikomit ke kontrol sumber aplikasi Anda, karena setiap pengembang/server yang menggunakan aplikasi Anda mungkin memerlukan konfigurasi lingkungan yang berbeda. Selain itu, ini akan menjadi risiko keamanan jika penyusup mendapatkan akses ke repositori kontrol sumber Anda, karena kredensial sensitif apa pun akan terungkapNamun, dimungkinkan untuk mengenkripsi file lingkungan Anda menggunakan bawaan Laravel. File lingkungan terenkripsi dapat ditempatkan di kontrol sumber dengan aman
File Lingkungan Tambahan
Sebelum memuat variabel lingkungan aplikasi Anda, Laravel menentukan apakah variabel lingkungan
'debug' => env('APP_DEBUG', false),
9 telah disediakan secara eksternal atau jika argumen CLIuse Illuminate\Support\Facades\App;
$environment = App::environment();
0 telah ditentukan. Jika demikian, Laravel akan mencoba memuat fileuse Illuminate\Support\Facades\App;
$environment = App::environment();
1 jika ada. Jika tidak ada, file'debug' => env('APP_DEBUG', false),
_2 default akan dimuatJenis Variabel Lingkungan
Semua variabel dalam file
'debug' => env('APP_DEBUG', false),
2 Anda biasanya diuraikan sebagai string, jadi beberapa nilai yang dicadangkan telah dibuat untuk memungkinkan Anda mengembalikan rentang jenis yang lebih luas dari fungsiuse Illuminate\Support\Facades\App;
$environment = App::environment();
4'debug' => env('APP_DEBUG', false),
2 Nilaiuse Illuminate\Support\Facades\App;
$environment = App::environment();
4 Nilaitrue(bool) true(true)(bool) truefalse(bool) false(false)(bool) falseempty(string) ''(kosong)(string) ''null(null) null(null)(null) nullJika Anda perlu mendefinisikan variabel lingkungan dengan nilai yang berisi spasi, Anda dapat melakukannya dengan mengapit nilai dalam tanda kutip ganda
APP_NAME="My Application"
Mengambil Konfigurasi Lingkungan
Semua variabel yang tercantum dalam file
'debug' => env('APP_DEBUG', false),
2 akan dimuat ke dalamuse Illuminate\Support\Facades\App;
$environment = App::environment();
8 PHP super-global saat aplikasi Anda menerima permintaan. Namun, Anda dapat menggunakan fungsi'debug' => env('APP_DEBUG', false),
5 untuk mengambil nilai dari variabel ini di file konfigurasi Anda. Faktanya, jika Anda meninjau file konfigurasi Laravel, Anda akan melihat banyak opsi sudah menggunakan fungsi ini'debug' => env('APP_DEBUG', false),
Nilai kedua yang diteruskan ke fungsi
'debug' => env('APP_DEBUG', false),
_5 adalah "nilai default". Nilai ini akan dikembalikan jika tidak ada variabel lingkungan untuk kunci yang diberikanMenentukan Lingkungan Saat Ini
Lingkungan aplikasi saat ini ditentukan melalui variabel
'debug' => env('APP_DEBUG', false),
'debug' => env('APP_DEBUG', false),
2 Anda. Anda dapat mengakses nilai ini melalui metodeif (App::environment('local')) {
// The environment is local
if (App::environment(['local', 'staging'])) {
// The environment is either local OR staging...
3 pada fasadif (App::environment('local')) {
// The environment is local
if (App::environment(['local', 'staging'])) {
// The environment is either local OR staging...
4use Illuminate\Support\Facades\App;
$environment = App::environment();
Anda juga dapat meneruskan argumen ke metode
if (App::environment('local')) {
// The environment is local
if (App::environment(['local', 'staging'])) {
// The environment is either local OR staging...
3 untuk menentukan apakah lingkungan cocok dengan nilai yang diberikan. Metode ini akan mengembalikanif (App::environment('local')) {
// The environment is local
if (App::environment(['local', 'staging'])) {
// The environment is either local OR staging...
6 jika lingkungan cocok dengan salah satu nilai yang diberikanif (App::environment('local')) {
// The environment is local
if (App::environment(['local', 'staging'])) {
// The environment is either local OR staging...
Catatan
Deteksi lingkungan aplikasi saat ini dapat diganti dengan menentukan variabel lingkungan'debug' => env('APP_DEBUG', false),
9 tingkat server
Mengenkripsi File Lingkungan
File lingkungan yang tidak terenkripsi tidak boleh disimpan di kontrol sumber. Namun, Laravel memungkinkan Anda untuk mengenkripsi file lingkungan Anda sehingga dapat ditambahkan dengan aman ke kontrol sumber dengan sisa aplikasi Anda
Enkripsi
Untuk mengenkripsi file lingkungan, Anda dapat menggunakan perintah
if (App::environment('local')) {
// The environment is local
if (App::environment(['local', 'staging'])) {
// The environment is either local OR staging...
8Menjalankan perintah
if (App::environment('local')) {
// The environment is local
if (App::environment(['local', 'staging'])) {
// The environment is either local OR staging...
_8 akan mengenkripsi file'debug' => env('APP_DEBUG', false),
2 Anda dan menempatkan konten terenkripsi dalam filephp artisan env:encrypt --key=3UVsEgGVK36XN82KKeyLFMhvosbZN1aF
1. Kunci dekripsi disajikan dalam output perintah dan harus disimpan di pengelola kata sandi yang aman. Jika Anda ingin memberikan kunci enkripsi Anda sendiri, Anda dapat menggunakan opsiphp artisan env:encrypt --key=3UVsEgGVK36XN82KKeyLFMhvosbZN1aF
2 saat menjalankan perintahphp artisan env:encrypt --key=3UVsEgGVK36XN82KKeyLFMhvosbZN1aF
Catatan
Panjang kunci yang diberikan harus sesuai dengan panjang kunci yang dibutuhkan oleh cipher enkripsi yang digunakan. Secara default, Laravel akan menggunakan sandiphp artisan env:encrypt --key=3UVsEgGVK36XN82KKeyLFMhvosbZN1aF
3 yang membutuhkan kunci 32 karakter. Anda bebas menggunakan sandi apa pun yang didukung oleh enkripsi Laravel dengan meneruskan opsiphp artisan env:encrypt --key=3UVsEgGVK36XN82KKeyLFMhvosbZN1aF
4 saat menjalankan perintah
Jika aplikasi Anda memiliki beberapa file lingkungan, seperti
'debug' => env('APP_DEBUG', false),
2 danphp artisan env:encrypt --key=3UVsEgGVK36XN82KKeyLFMhvosbZN1aF
use Illuminate\Support\Facades\App;
$environment = App::environment();
0php artisan env:encrypt --env=staging
Dekripsi
Untuk mendekripsi file lingkungan, Anda dapat menggunakan perintah
php artisan env:encrypt --key=3UVsEgGVK36XN82KKeyLFMhvosbZN1aF
8. Perintah ini memerlukan kunci dekripsi, yang akan diambil Laravel dari variabel lingkunganphp artisan env:encrypt --key=3UVsEgGVK36XN82KKeyLFMhvosbZN1aF
9Atau, kunci dapat diberikan langsung ke perintah melalui opsi
php artisan env:encrypt --key=3UVsEgGVK36XN82KKeyLFMhvosbZN1aF
2php artisan env:decrypt --key=3UVsEgGVK36XN82KKeyLFMhvosbZN1aF
Ketika perintah
php artisan env:encrypt --key=3UVsEgGVK36XN82KKeyLFMhvosbZN1aF
_8 dipanggil, Laravel akan mendekripsi konten filephp artisan env:encrypt --key=3UVsEgGVK36XN82KKeyLFMhvosbZN1aF
1 dan menempatkan konten yang didekripsi di file'debug' => env('APP_DEBUG', false),
2Opsi
php artisan env:encrypt --key=3UVsEgGVK36XN82KKeyLFMhvosbZN1aF
_4 dapat diberikan ke perintahphp artisan env:encrypt --key=3UVsEgGVK36XN82KKeyLFMhvosbZN1aF
8 untuk menggunakan cipher enkripsi kustomphp artisan env:decrypt --key=qUWuNRdfuImXcKxZ --cipher=AES-128-CBC
Jika aplikasi Anda memiliki beberapa file lingkungan, seperti
'debug' => env('APP_DEBUG', false),
2 danphp artisan env:encrypt --key=3UVsEgGVK36XN82KKeyLFMhvosbZN1aF
_6, Anda dapat menentukan file lingkungan yang harus didekripsi dengan memberikan nama lingkungan melalui opsiuse Illuminate\Support\Facades\App;
$environment = App::environment();
0php artisan env:decrypt --env=staging
Untuk menimpa file lingkungan yang ada, Anda dapat memberikan opsi
php artisan env:encrypt --env=staging
9 ke perintahphp artisan env:encrypt --key=3UVsEgGVK36XN82KKeyLFMhvosbZN1aF
8APP_NAME="My Application"
0Mengakses Nilai Konfigurasi
Anda dapat dengan mudah mengakses nilai konfigurasi Anda menggunakan fungsi
APP_NAME="My Application"
8 global dari mana saja di aplikasi Anda. Nilai konfigurasi dapat diakses menggunakan sintaks "dot", yang menyertakan nama file dan opsi yang ingin Anda akses. Nilai default juga dapat ditentukan dan akan dikembalikan jika opsi konfigurasi tidak adaAPP_NAME="My Application"
_1Untuk menyetel nilai konfigurasi saat runtime, teruskan larik ke fungsi
APP_NAME="My Application"
8APP_NAME="My Application"
_2Caching Konfigurasi
Untuk meningkatkan kecepatan aplikasi Anda, Anda harus meng-cache semua file konfigurasi Anda ke dalam satu file menggunakan perintah
php artisan env:decrypt --key=3UVsEgGVK36XN82KKeyLFMhvosbZN1aF
3 Artisan. Ini akan menggabungkan semua opsi konfigurasi untuk aplikasi Anda ke dalam satu file yang dapat dimuat dengan cepat oleh frameworkBiasanya Anda harus menjalankan perintah
php artisan env:decrypt --key=3UVsEgGVK36XN82KKeyLFMhvosbZN1aF
_4 sebagai bagian dari proses penerapan produksi. Perintah tidak boleh dijalankan selama pengembangan lokal karena opsi konfigurasi sering perlu diubah selama pengembangan aplikasi AndaPeringatan
Jika Anda menjalankan perintahphp artisan env:decrypt --key=3UVsEgGVK36XN82KKeyLFMhvosbZN1aF
3 selama proses penerapan, Anda harus yakin bahwa Anda hanya memanggil fungsi'debug' => env('APP_DEBUG', false),
5 dari dalam file konfigurasi Anda. Setelah konfigurasi di-cache, file'debug' => env('APP_DEBUG', false),
2 tidak akan dimuat;
Mode Debug
Opsi
php artisan env:decrypt --key=3UVsEgGVK36XN82KKeyLFMhvosbZN1aF
_9 di file konfigurasiphp artisan env:decrypt --key=qUWuNRdfuImXcKxZ --cipher=AES-128-CBC
0 Anda menentukan berapa banyak informasi tentang kesalahan yang sebenarnya ditampilkan kepada pengguna. Secara default, opsi ini disetel untuk menghormati nilai variabel lingkunganphp artisan env:decrypt --key=qUWuNRdfuImXcKxZ --cipher=AES-128-CBC
1, yang disimpan di file'debug' => env('APP_DEBUG', false),
2 AndaUntuk pengembangan lokal, Anda harus menyetel variabel lingkungan ________56______1 ke
if (App::environment('local')) {
// The environment is local
if (App::environment(['local', 'staging'])) {
// The environment is either local OR staging...
6. Di lingkungan produksi Anda, nilai ini harus selaluphp artisan env:decrypt --key=qUWuNRdfuImXcKxZ --cipher=AES-128-CBC
5. Jika variabel disetel keif (App::environment('local')) {
// The environment is local
if (App::environment(['local', 'staging'])) {
// The environment is either local OR staging...
_6 dalam produksi, Anda berisiko mengekspos nilai konfigurasi sensitif ke pengguna akhir aplikasi AndaModus Pemeliharaan
Saat aplikasi Anda dalam mode pemeliharaan, tampilan khusus akan ditampilkan untuk semua permintaan ke dalam aplikasi Anda. Hal ini memudahkan untuk "menonaktifkan" aplikasi Anda saat memperbarui atau saat Anda melakukan pemeliharaan. Pemeriksaan mode pemeliharaan disertakan dalam tumpukan middleware default untuk aplikasi Anda. Jika aplikasi dalam mode pemeliharaan, instance
php artisan env:decrypt --key=qUWuNRdfuImXcKxZ --cipher=AES-128-CBC
7 akan dilempar dengan kode status 503Untuk mengaktifkan mode pemeliharaan, jalankan perintah
php artisan env:decrypt --key=qUWuNRdfuImXcKxZ --cipher=AES-128-CBC
8 ArtisanJika Anda ingin header HTTP
php artisan env:decrypt --key=qUWuNRdfuImXcKxZ --cipher=AES-128-CBC
_9 dikirim dengan semua respons mode pemeliharaan, Anda dapat memberikan opsiphp artisan env:decrypt --env=staging
0 saat menjalankan perintahphp artisan env:decrypt --key=qUWuNRdfuImXcKxZ --cipher=AES-128-CBC
8. Headerphp artisan env:decrypt --key=qUWuNRdfuImXcKxZ --cipher=AES-128-CBC
_9 akan menginstruksikan browser untuk menyegarkan halaman secara otomatis setelah jumlah detik yang ditentukanAPP_NAME="My Application"
_3Anda juga dapat memberikan opsi
php artisan env:decrypt --env=staging
_3 ke perintahphp artisan env:decrypt --key=qUWuNRdfuImXcKxZ --cipher=AES-128-CBC
8, yang akan ditetapkan sebagai nilai header HTTPphp artisan env:decrypt --env=staging
5, meskipun browser biasanya mengabaikan header iniMelewati Mode Pemeliharaan
Untuk mengizinkan mode pemeliharaan dilewati menggunakan token rahasia, Anda dapat menggunakan opsi
php artisan env:decrypt --env=staging
6 untuk menentukan token pintasan mode pemeliharaanAPP_NAME="My Application"
_4Setelah menempatkan aplikasi dalam mode pemeliharaan, Anda dapat menavigasi ke URL aplikasi yang cocok dengan token ini dan Laravel akan mengeluarkan cookie bypass mode pemeliharaan ke browser Anda
APP_NAME="My Application"
5Saat mengakses rute tersembunyi ini, Anda kemudian akan dialihkan ke rute
php artisan env:decrypt --env=staging
7 dari aplikasi. Setelah cookie dikeluarkan ke browser Anda, Anda akan dapat menjelajahi aplikasi secara normal seolah-olah tidak dalam mode pemeliharaanCatatan
Rahasia mode perawatan Anda biasanya terdiri dari karakter alfanumerik dan, opsional, tanda hubung. Anda harus menghindari penggunaan karakter yang memiliki arti khusus di URL sepertiphp artisan env:decrypt --env=staging
8
Pra-Render Tampilan Mode Pemeliharaan
Jika Anda menggunakan perintah
php artisan env:decrypt --env=staging
9 selama penerapan, pengguna Anda terkadang masih mengalami kesalahan jika mereka mengakses aplikasi saat dependensi Composer Anda atau komponen infrastruktur lainnya sedang diperbarui. Hal ini terjadi karena sebagian besar framework Laravel harus melakukan booting untuk menentukan aplikasi Anda dalam mode pemeliharaan dan merender tampilan mode pemeliharaan menggunakan mesin templatingUntuk alasan ini, Laravel memungkinkan Anda melakukan pra-render tampilan mode pemeliharaan yang akan dikembalikan di awal siklus permintaan. Tampilan ini dirender sebelum salah satu dependensi aplikasi Anda dimuat. Anda dapat melakukan pra-render template pilihan Anda menggunakan opsi
php artisan env:decrypt --key=qUWuNRdfuImXcKxZ --cipher=AES-128-CBC
8 perintahAPP_NAME="My Application"
01APP_NAME="My Application"
_6Mengarahkan Permintaan Mode Pemeliharaan
Saat dalam mode pemeliharaan, Laravel akan menampilkan tampilan mode pemeliharaan untuk semua URL aplikasi yang coba diakses pengguna. Jika mau, Anda dapat menginstruksikan Laravel untuk mengalihkan semua permintaan ke URL tertentu. Ini dapat dilakukan dengan menggunakan opsi
APP_NAME="My Application"
_02. Misalnya, Anda mungkin ingin mengalihkan semua permintaan kephp artisan env:decrypt --env=staging
7 URIAPP_NAME="My Application"
_7Menonaktifkan Mode Pemeliharaan
Untuk menonaktifkan mode pemeliharaan, gunakan perintah
APP_NAME="My Application"
04Catatan
Anda dapat menyesuaikan template mode pemeliharaan default dengan menentukan template Anda sendiri diAPP_NAME="My Application"
05
Mode Pemeliharaan & Antrean
Saat aplikasi Anda dalam mode pemeliharaan, tidak ada tugas antrean yang akan ditangani. Pekerjaan akan terus ditangani seperti biasa setelah aplikasi keluar dari mode pemeliharaan
Alternatif Untuk Mode Pemeliharaan
Karena mode pemeliharaan mengharuskan aplikasi Anda mengalami downtime beberapa detik, pertimbangkan alternatif seperti Laravel Vapor dan Envoyer untuk menyelesaikan penerapan zero-downtime dengan Laravel