Cara Mengatasi No Application Encryption Key pada Laravel
Apa Itu Error No Application Encryption Key?
Saat menjalankan aplikasi Laravel, Anda mungkin menemukan pesan error berikut:
Illuminate\Encryption\MissingAppKeyException
No application encryption key has been specified.
Pesan tersebut berarti Laravel tidak menemukan application key yang dibutuhkan untuk menjalankan sistem enkripsi.
Application key disimpan di dalam file .env pada bagian berikut:
APP_KEY=base64:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
Jika bagian APP_KEY kosong atau tidak terbaca, Laravel akan menampilkan error dan aplikasi tidak dapat dijalankan dengan normal.
Fungsi APP_KEY pada Laravel
APP_KEY merupakan salah satu konfigurasi keamanan penting dalam Laravel.
Nilai ini digunakan untuk membantu mengenkripsi berbagai data aplikasi, seperti:
Cookie aplikasi.
Data sesi tertentu.
Token terenkripsi.
Informasi yang diproses melalui fitur
Crypt.Data sensitif yang disimpan oleh aplikasi.
Fitur tambahan yang menggunakan sistem enkripsi Laravel.
Karena berhubungan dengan keamanan, setiap aplikasi Laravel harus memiliki APP_KEY yang unik.
Penyebab No Application Encryption Key
Berikut beberapa penyebab yang paling sering terjadi.
1. APP_KEY Masih Kosong
Buka file .env, kemudian periksa bagian berikut:
APP_KEY=
Jika masih kosong, berarti application key belum dibuat.
2. File .env Belum Tersedia
Project yang diambil dari repository seperti GitHub biasanya tidak menyertakan file .env.
Biasanya hanya tersedia file:
.env.example
File tersebut perlu disalin menjadi:
.env
3. File .env Berada di Folder yang Salah
File .env harus berada di folder utama project Laravel.
Posisinya harus sejajar dengan file dan folder berikut:
app
artisan
bootstrap
composer.json
config
public
resources
routes
storage
vendor
.env
Jangan meletakkan .env di dalam folder public atau public_html.
4. Cache Konfigurasi Masih Menggunakan Data Lama
Laravel dapat menyimpan konfigurasi ke dalam cache.
Jika APP_KEY baru saja ditambahkan tetapi cache belum dibersihkan, Laravel mungkin masih membaca konfigurasi lama.
5. Perintah Artisan Dijalankan di Folder yang Salah
Perintah Laravel harus dijalankan dari folder yang memiliki file artisan.
Jika dijalankan dari folder lain, biasanya muncul pesan:
Could not open input file: artisan
6. File .env Tidak Dapat Dibaca
Masalah permission atau ownership dapat menyebabkan server gagal membaca file .env.
Kasus ini sering terjadi setelah project dipindahkan ke hosting atau VPS.
Cara Mengatasi No Application Encryption Key
Ikuti langkah-langkah berikut secara berurutan.
Langkah 1: Masuk ke Folder Utama Laravel
Buka Terminal cPanel atau SSH, kemudian masuk ke folder project Laravel.
Contoh:
cd /home/username/OVLAWEB
Setelah itu, periksa isi folder:
ls
Pastikan terdapat file:
artisan
Jika file tersebut tersedia, berarti Anda sudah berada di folder yang benar.
Langkah 2: Periksa File .env
Gunakan perintah berikut:
ls -la
Pastikan terdapat file:
.env
Jika file .env belum tersedia, salin dari .env.example:
cp .env.example .env
Setelah itu, buka file .env dan periksa konfigurasi berikut:
APP_NAME=Laravel
APP_ENV=production
APP_KEY=
APP_DEBUG=false
APP_URL=https://domainanda.com
Langkah 3: Buat Application Key
Jalankan perintah berikut:
php artisan key:generate
Jika berhasil, terminal akan menampilkan pesan:
Application key set successfully.
Laravel akan mengisi bagian APP_KEY secara otomatis.
Contohnya:
APP_KEY=base64:AbCdEfGhIjKlMnOpQrStUvWxYz1234567890abcd=
Langkah 4: Bersihkan Cache Laravel
Setelah application key berhasil dibuat, jalankan:
php artisan optimize:clear
Perintah tersebut akan membersihkan beberapa cache Laravel sekaligus.
Anda juga dapat menjalankan perintah secara terpisah:
php artisan config:clear
php artisan cache:clear
Setelah aplikasi berjalan normal pada server production, Anda dapat membuat ulang cache konfigurasi:
php artisan config:cache
Urutan Perintah yang Disarankan
Untuk instalasi Laravel baru, gunakan urutan berikut:
cd /lokasi/project-laravel
cp .env.example .env
php artisan key:generate
php artisan optimize:clear
Jika project baru dipindahkan dari komputer lokal atau repository, jalankan:
composer install
cp .env.example .env
php artisan key:generate
php artisan optimize:clear
Setelah itu, sesuaikan konfigurasi database dan URL aplikasi di dalam file .env.
Cara Mengatasi di cPanel atau Shared Hosting
Pada shared hosting, source code Laravel dan folder website sering dipisahkan.
Contohnya:
/home/username/OVLAWEB
/home/username/public_html
Source code Laravel berada di:
/home/username/OVLAWEB
Sementara isi folder public Laravel ditempatkan di:
/home/username/public_html
Dalam kondisi tersebut, jalankan perintah Artisan dari folder source code:
cd /home/username/OVLAWEB
php artisan key:generate
php artisan optimize:clear
Jangan menjalankan perintah dari public_html jika tidak terdapat file artisan di dalamnya.
Jika Versi PHP Terminal Tidak Sesuai
Pada cPanel, versi PHP terminal terkadang berbeda dengan versi PHP yang digunakan website.
Periksa versi PHP dengan:
php -v
Jika Laravel membutuhkan PHP 8.3 atau PHP 8.4, Anda dapat menggunakan lokasi PHP khusus.
Contoh PHP 8.3:
/opt/cpanel/ea-php83/root/usr/bin/php artisan key:generate
Contoh PHP 8.4:
/opt/cpanel/ea-php84/root/usr/bin/php artisan key:generate
Setelah itu, bersihkan cache menggunakan versi PHP yang sama:
/opt/cpanel/ea-php84/root/usr/bin/php artisan optimize:clear
Sesuaikan ea-php84 dengan versi PHP pada hosting Anda.
Cara Membuat APP_KEY Tanpa Mengubah File .env
Jika Anda hanya ingin menampilkan key tanpa langsung menyimpannya, jalankan:
php artisan key:generate --show
Terminal akan menghasilkan key seperti:
base64:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
Salin key tersebut ke dalam file .env:
APP_KEY=base64:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
Setelah itu, bersihkan cache:
php artisan optimize:clear
Cara ini berguna jika terminal dapat menjalankan Artisan, tetapi tidak memiliki izin untuk mengubah file .env.
Cara Mengatasi Tanpa Terminal
Jika hosting tidak menyediakan Terminal atau SSH, Anda masih dapat membuat application key dari komputer lokal.
Masuk ke folder project Laravel pada komputer, kemudian jalankan:
php artisan key:generate --show
Salin hasil key tersebut.
Setelah itu, buka File Manager cPanel dan edit file .env:
APP_KEY=base64:key-yang-dihasilkan=
Jika error masih muncul, periksa file berikut:
bootstrap/cache/config.php
Hapus file config.php tersebut jika tersedia.
Jangan menghapus folder bootstrap/cache.
Jika APP_KEY Sudah Terisi tetapi Error Masih Muncul
Jika bagian APP_KEY sudah terisi tetapi error tetap muncul, lakukan pemeriksaan berikut.
Periksa Penulisan APP_KEY
Gunakan format berikut:
APP_KEY=base64:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
Hindari penulisan seperti:
APP_KEY = base64:xxxxxxxx
Sebaiknya jangan menambahkan spasi sebelum atau setelah tanda sama dengan.
Bersihkan Cache
Jalankan:
php artisan optimize:clear
Jika tidak memiliki terminal, hapus file:
bootstrap/cache/config.php
Periksa Lokasi File .env
Pastikan file .env yang diedit benar-benar berada di project Laravel yang sedang digunakan oleh website.
Pada hosting, terkadang terdapat lebih dari satu folder project Laravel.
Periksa Permission File
Anda dapat menggunakan permission berikut sebagai contoh:
chmod 640 .env
Namun, konfigurasi permission dapat berbeda tergantung server dan ownership akun hosting.
Periksa Konfigurasi config/app.php
Buka file:
config/app.php
Pastikan terdapat konfigurasi application key yang mengarah ke environment:
'key' => env('APP_KEY'),
Restart Layanan pada VPS
Jika menggunakan PHP-FPM, queue worker, Laravel Octane, atau service lain yang berjalan terus-menerus, service tersebut mungkin masih membaca konfigurasi lama.
Restart atau reload layanan setelah memperbarui .env.
Jangan Mengganti APP_KEY pada Aplikasi Production Sembarangan
Jika aplikasi sudah berjalan dan digunakan oleh pengguna, jangan langsung menjalankan:
php artisan key:generate
Mengganti application key dapat menyebabkan:
Pengguna keluar dari akun.
Cookie lama tidak dapat dibaca.
Token terenkripsi menjadi tidak valid.
Data terenkripsi gagal dibuka.
Fitur tertentu mengalami error.
Jika APP_KEY sebenarnya sudah tersedia, cukup bersihkan cache:
php artisan optimize:clear
Sebelum mengganti key pada aplikasi production, lakukan beberapa langkah berikut:
Backup file
.env.Simpan key lama dengan aman.
Periksa apakah aplikasi menyimpan data terenkripsi.
Lakukan pengujian terlebih dahulu.
Hindari mengganti key hanya untuk mengatasi cache.
Jangan Membagikan APP_KEY
File .env biasanya berisi informasi penting seperti:
Application key.
Password database.
Konfigurasi email.
API key.
Token layanan.
Informasi server.
Pastikan file .env tidak diunggah ke repository publik.
Periksa file .gitignore dan pastikan terdapat baris:
.env
Gunakan .env.example untuk membagikan contoh konfigurasi tanpa informasi rahasia.
Checklist Mengatasi Error APP_KEY
Gunakan checklist berikut agar lebih mudah melakukan pemeriksaan:
Pastikan file
.envtersedia.Pastikan file
.envberada di root Laravel.Pastikan bagian
APP_KEYterisi.Jalankan perintah dari folder yang memiliki file
artisan.Gunakan versi PHP yang sesuai.
Jalankan
php artisan optimize:clear.Periksa file
bootstrap/cache/config.php.Pastikan file
.envdapat dibaca server.Pastikan website menjalankan project yang benar.
Jangan mengganti key production tanpa backup.
Bantuan Pengembangan Laravel dari Ovla Media
Error No application encryption key has been specified umumnya dapat diselesaikan dengan membuat APP_KEY dan membersihkan cache konfigurasi.
Namun, deployment Laravel juga dapat mengalami masalah lain, seperti:
Vite manifest tidak ditemukan.
Halaman selain beranda menghasilkan error 404.
Storage link tidak berfungsi.
Database tidak terhubung.
Permission folder tidak sesuai.
Session tidak dapat disimpan.
Ekstensi PHP belum tersedia.
Domain tidak mengarah ke folder public.
Aplikasi error setelah pindah hosting.
Versi PHP tidak kompatibel.
Ovla Media menyediakan layanan pengembangan, deployment, perbaikan, dan pemeliharaan aplikasi Laravel yang dapat disesuaikan dengan kebutuhan bisnis.
Kesimpulan
Error “No application encryption key has been specified” terjadi karena Laravel tidak menemukan nilai APP_KEY pada file .env.
Untuk mengatasinya, jalankan:
php artisan key:generate
php artisan optimize:clear
Jika file .env belum tersedia, salin terlebih dahulu:
cp .env.example .env
Pada cPanel, pastikan perintah dijalankan dari folder utama Laravel yang memiliki file artisan, bukan dari folder public_html jika source code berada di lokasi berbeda.
Untuk aplikasi production yang sudah berjalan, jangan mengganti APP_KEY sembarangan karena dapat memengaruhi sesi pengguna dan data yang telah dienkripsi.
Artikel Terkait
Cara Integrasi WhatsApp Cloud API dengan Laravel
WhatsApp Cloud API memungkinkan aplikasi Laravel mengirim pesan, notifikasi, dan template WhatsApp melalui layanan resmi Meta. Integrasi ini dapat digunakan untuk konfirmasi pesanan, invoice, pengingat pembayaran, customer service, hingga chatbot. Artikel ini membahas konfigurasi token, pengiriman pesan, serta penerimaan webhook menggunakan Laravel.
Cara Membuat Sistem Multi-Cabang Menggunakan Laravel
Sistem multi-cabang memungkinkan beberapa lokasi usaha menggunakan satu aplikasi Laravel dengan data yang tetap terpisah. Setiap produk, transaksi, stok, pelanggan, dan pengguna dapat dihubungkan dengan cabang tertentu melalui kolom branch_id.
Cara Menjalankan Queue Worker Laravel di cPanel Tanpa Supervisor
Queue Worker Laravel digunakan untuk memproses pekerjaan di belakang layar, seperti pengiriman email, notifikasi, pembuatan laporan, sinkronisasi API, dan pemrosesan data. Pada VPS, worker biasanya dijaga menggunakan Supervisor. Namun, pada shared hosting cPanel yang tidak menyediakan Supervisor, queue tetap dapat dijalankan menggunakan Cron Job dan perintah queue:work --stop-when-empty.