Hampir semua masalah "aplikasi tidak jalan" setelah unduh source code bermuara pada satu file: .env. File ini menyimpan pengaturan yang berbeda antar-lingkungan (komputer Anda, server produksi) sehingga tidak boleh ditulis langsung ke dalam kode. Memahami isinya membuat Anda jauh lebih cepat memperbaiki error.
Mengapa .env Terpisah dari Kode
Kredensial database dan kunci rahasia berbeda di setiap tempat. Dengan menaruhnya di .env, kode yang sama bisa dijalankan di laptop, server staging, dan produksi tanpa diubah. Karena itu .env tidak pernah ikut di-commit ke Git (tercantum di .gitignore), dan Anda diberi .env.example sebagai cetakan.
Baris Aplikasi
APP_NAME="Aplikasi Saya"
APP_ENV=local
APP_KEY=base64:xxxxxxxxxxxxxxxxxxxxxxxx
APP_DEBUG=true
APP_URL=http://127.0.0.1:8000
APP_KEYwajib terisi — jalankanphp artisan key:generate.APP_ENV=localsaat mengembangkan,productionsaat live.APP_DEBUG=truemenampilkan detail error (bagus saat ngoprek), tetapi wajibfalsedi produksi agar tidak membocorkan informasi sensitif.APP_URLmemengaruhi tautan, aset, dan email. Sesuaikan dengan domain sebenarnya di produksi.
Baris Database
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=aplikasi_saya
DB_USERNAME=root
DB_PASSWORD=
Inilah bagian yang paling sering salah. Perhatikan:
DB_DATABASEharus sudah dibuat lebih dulu — Laravel tidak membuat database secara otomatis, hanya tabelnya.- Di banyak instalasi lokal,
DB_USERNAME=rootdanDB_PASSWORDkosong. Di produksi, gunakan user khusus dengan password kuat. - Bila memakai socket khusus (mis. beberapa setup macOS),
DB_HOSTbisa perlu diganti menjadilocalhost.
Setelah Mengubah .env, Bersihkan Cache
Laravel sering meng-cache konfigurasi. Jika perubahan .env Anda seolah tidak berpengaruh, jalankan:
php artisan config:clear
php artisan cache:clear
Di produksi, sebaliknya, Anda justru menjalankan php artisan config:cache untuk mempercepat aplikasi — tetapi ingat mengulanginya setiap kali .env berubah.
Menguji Koneksi Database
Cara paling gampang memastikan koneksi benar adalah menjalankan migrasi:
php artisan migrate
Bila muncul "SQLSTATE[HY000] [1045] Access denied", berarti username/password salah. Bila muncul "Unknown database", berarti nama database di .env tidak cocok atau belum dibuat. Pesan error ini justru membantu — bacalah dengan tenang, karena hampir selalu menunjuk baris .env tertentu.
Baris Lain yang Sering Dipakai
MAIL_MAILER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
FILESYSTEM_DISK=public
QUEUE_CONNECTION=database
Untuk pengembangan, layanan seperti Mailtrap menampung email uji agar tidak benar-benar terkirim. Setelah memahami peta ini, file .env berubah dari sumber kebingungan menjadi papan kendali yang Anda kuasai.