Table of Contents

Pengenalan

Setiap file konfigurasi laravel disimpan dalam folder config dimana setiap opsi configurasi telah disediakan panduannya untuk mempermudah dalam melakukan konfigurasi. Setiap file konfigurasi memungkinkan untuk mengkonfigurasi hal-hal seperti: konfigurasi database, konfigurasi email server, zona waktu, kunci enkrip dan lain sebagainya.

Overview Aplikasi

Secara cepat anda bisa mendapatkan overview singkat tentang konfigurasi, driver, dan lingkungan aplikasi Anda melalui perintah about Artisan:

				
					php artisan about
				
			

Atau jika anda hanya tertarik pada bagian tertentu dari keluaran overview aplikasi, Anda dapat memfilter bagian tersebut menggunakan opsi –only :

				
					php artisan about --only=environment
				
			
Server Environment
Konfigurasi

Untuk memudahkan dalam melakukan konfigurasi yang berbeda berdasarkan lingkungan/server, laravel menggunakan libray DotEnv PHP dimana pada saat baru pertamakali di install pada folder laravel akan terdapat file .env.example yang berisi variabel-variabel secara umum yang sering digunakan yang nantinya harus kita isi. File .env.example dapat secara otomatis tersalin menjadi .env. pada saat proses instalasi atau pengembang juga dapat menyalin file ini secara manual menjadi .env pada saat mengembangkan aplikasi di komputer local.

Konfigurasi file .env sebaiknya dibedakan pada saat proses pengembangan di komputer local dan pada saat di upload di web server untuk masalah faktor keamanan. Selain itu file .env.example sebaiknya terus disertakan pada saat mengembangkan aplikasi dalam tim dengan tujuan untuk memudahkan anggota tim lain melihat konfigurasi.

Keamanan File Environment

File .env tidak boleh dikomit ke kontrol sumber aplikasi (pada proses pengembangan aplikasi menggunakan git), karena setiap pengembang atau server kemungkinan besar memerlukan konfigurasi lingkungan yang berbeda. Selain itu, hal ini akan meningkatkan risiko keamanan apabila terdapat penyusup yang mendapatkan akses ke repositori kontrol sumber aplikasi, karena setiap informasi sensitif apa pun akan terekspos.

Tipe Variabel Environment

Seluruh variabel dalam file .env pada umumnya diuraikan dalam tipe string. Beberapa variabe mungkin akan diubah ke dalam tipe lain sesuai dengan fungsi dari konfigurasi .env() seperti true atau false akan di konversi menjadi tipe boolean. Jika nilai variabel environment mengandung spasi gunakan tanda petik dua (“) diawal dan diakhir variabel:

Pembacaan Konfigurasi Environment

Seluruh variabel dalam file konfigurasi pada folder config akan di muat dalam fungsi $_ENV PHP super-global pada saat aplikasi diakses dan untuk memudahkan dalam pengaturan kita dapat menggunakan bantuan dari env helper. Sebagai contoh dalam file app.php pada folder config terdapat pengaturan

				
					'debug' => (bool) env('APP_DEBUG', false),
				
			

Menunjukkan bahwa variabel ‘debug‘ akan mengambil nilai dari variable APP_DEBUG pada file .env terlebih dahulu, namun jika variable APP_DEBUG tidak ditemukan pada file .env maka nilainya akan manjadi false.

Enkripsi File Environment

File .env yang tidak terenkripsi tidak boleh disimpan di kontrol sumber. Namun, Laravel memungkinkan Anda untuk mengenkripsi file .env Anda sehingga dapat ditambahkan dengan aman ke kontrol sumber dengan sisa aplikasi Anda.

Enkripsi
				
					php artisan env:encrypt
				
			

Perintah env:encrypt akan mengenkripsi file .env Anda dan menempatkan konten terenkripsi dalam file .env.encrypted.

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 opsi –key saat menjalankan perintah:

				
					php artisan env:encrypt --key=3UVsEgGVK36XN82KKeyLFMhvosbZN1aF
				
			
Dekripsi
				
					php artisan env:decrypt
				
			

Atau, jika sebelumnya enkripsi menggunakan key maka ga dekripsi juga mengunakan key melalui opsi –key :

				
					php artisan env:decrypt --key=3UVsEgGVK36XN82KKeyLFMhvosbZN1aF
				
			

Ketika perintah env:decrypt dipanggil, Laravel akan mendekripsi konten file .env.encrypted dan menempatkan konten yang didekripsi di file .env.

Mengakses value Konfigurasi

Anda dapat dengan mudah mengakses nilai konfigurasi menggunakan fungsi konfigurasi 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 ada:

				
					$value = config('app.timezone');
 
// Retrieve a default value if the configuration value does not exist...
$value = config('app.timezone', 'Asia/Seoul');
				
			

Sementara untuk mengatur nilai konfigurasi saat runtime, lakukan dengan memberikan array ke fungsi config :

				
					config(['app.timezone' => 'America/Chicago']);
				
			
Konfigirasi Caching

Untuk mempercepat prosess/loading pada saat mengakses aplikasi atau website kita dapat menggunakan opsi config:chache pada peritah php artisan. Fungsi ini akan menggabungkan seluruh file konfigurasi menjadi satu file sehingga menjadi lebih cepat untuk diakses.

				
					php artisan config:chache 
				
			

Gunakan diatas pada saat aplikasi telah selesai dikembangkan dan diunggah diserver. Jangan gunakan perintah tersebut pada saat masih dalam tahap mengembangkan aplikasi karena kemungkinan besar konfigurasi akan terus berubah.

Untuk mengembalikan atau membatalkan peritah config:chache kita dapat menggunakan opsi clear:chache pada peritah php artisan.

				
					php artisan clear:chache
				
			
Debug Mode

Konfigurasi debug pada file config/app.php digunakan untuk menampilkan seberapa banyak informasi kesalahan akan ditampilkan kepada pengguna. Atur nilai variabel APP_DEBUG menjadi false atau true pada file .env. Pada saat pengembangan kita dapat menggunakan opsi true agar memudahkan dalam menelusuri kesalahan kode/error code pada saat pengembangan.

				
					APP_DEBUG=true 
				
			

Pada saat produksi ganti nilai variabel APP_DEBUG menjadi false terutama pada saat aplikasi sudah diupload di web server. Pastikan variabel APP_DEBUG tidak bernilai true pada saat produksi untuk mengurangi resiko terbukanya informasi sensitif kepada pengunjung aplikasi.

Maintenance Mode/Pemeliharaan

Pada saat pemeliharaan aplikasi, anda dapat menonaktifkan aplikasi dengan mengarahkan semua permintaan ke halaman tertentu untuk memudahkan dalam melakukan update atau perbaikan. Pada saat aplikasi dalam model perbaikan maka Symfony\Component\HttpKernel\Exception\HttpExceptionakan ditampilkan dengan kode status 503.

				
					php artisan down
				
			

Jika anda ingin mengirimkan perintah Refresh HTTP header pada semua halaman dalam mode pemeliharaan. Refresh akan berjalan pada page pemeliharaan di setiap detik tertentu .

Untuk menjalankannya anda dapat menambahkan opsi –refresh pada saat menjalankan perintah artisan down.

				
					php artisan down --refresh=15
				
			

Anda juga dapat memberikan opsi rentry pada perntah down yang akan mengirimkan perintah rentry-after HTTP Header.

				
					php artisan down --retry=60
				
			
Bypassing Maintenance Mode / Bypass Mode Pemeliharaan

Untuk melakukan bypass pada saat pemeliharaan kita dapat menggunakan opsi secret dengan menyertakan token/kode rahasia pada perintah down.

				
					php artisan down --secret="1630542a-246b-4b66-afa1-dd72a4c43515"
				
			

Setelah mejalankan peritah diatas, selanjutnya kita dapat mengakses aplikasi pada web browser dengan menggunakan token yang kita daftarkan sebelumnya agar laravel dapat membuat sebuah cookie bypass mode pemeliharaan.

				
					http://localhost/1630542a-246b-4b66-afa1-dd72a4c43515 
				
			
Redirect ke suatu Halaman saat Maintenance

Pada saat dalam mode pemeliharaan, semua url akan menampilkan halaman mode pemeliharaan. Namun kita ingin mengarahkan ke halaman tertentu kita dapat menambahkan opsi redirect. sebagai contoh misalnya kita ingin mengarahkan ke halaman /maintenance maka kita dapat menggunakan perintah:

				
					php artisan down --redirect=/maintenance
				
			
Menonaktifkan Mode Pemeliharaan

Untuk menonaktifkan mode pemeliharaan kita dapat menggunakan opsi up pada peritah down artisan.

				
					php artisan up
				
			

Pada saat dalam mode pemeliharaan, maka proses queuses akan berhenti dan akan bekerja kembali setelah mode pemeliharaan selesai.