Laravel 12 adalah versi framework PHP Laravel yang rilis 24 Februari 2025. Versi ini butuh PHP 8.2 sampai 8.5, dan cara paling aman untuk memasangnya adalah composer create-project laravel/laravel:^12.0 nama-project. Panduan ini membahas persyaratan, dua cara install (Laravel installer dan Composer), starter kit React, Vue, Svelte, dan Livewire, struktur folder, error yang paling sering muncul di Windows dan Linux, sampai langkah setelah project jalan. Semua perintah sudah kami uji di project Laravel 12 sungguhan, bukan sekadar disalin dari dokumentasi.
Satu hal penting sebelum mulai: per Oktober 2026, Laravel 13 sudah rilis (Maret 2026). Artinya perintah laravel new sekarang bisa memasang Laravel 13, bukan 12. Kalau kamu memang butuh Laravel 12, misalnya karena server kantor masih PHP 8.2 atau mengikuti kursus yang memakai versi 12, ikuti bagian Composer di bawah.
Laravel 12 Sekilas: Versi PHP, Masa Dukungan, dan Apa yang Baru
Data di tabel ini diambil dari halaman release notes resmi Laravel 12.
| Versi | PHP yang didukung | Rilis | Perbaikan bug sampai | Perbaikan keamanan sampai |
|---|---|---|---|---|
| Laravel 11 | 8.2 – 8.4 | 12 Maret 2024 | 3 September 2025 | 12 Maret 2026 |
| Laravel 12 | 8.2 – 8.5 | 24 Februari 2025 | 13 Agustus 2026 | 24 Februari 2027 |
| Laravel 13 | 8.3 – 8.5 | Q1 2026 (Maret 2026) | Q3 2027 | Q1 2028 |
Dari tabel itu ada dua kesimpulan praktis. Pertama, Laravel 12 sekarang hanya menerima perbaikan keamanan, sampai 24 Februari 2027. Untuk project baru yang akan hidup lama, Laravel 13 lebih masuk akal. Kedua, Laravel 12 masih pilihan yang wajar kalau server kamu belum bisa PHP 8.3, karena Laravel 13 minimal PHP 8.3.
Apa yang baru di Laravel 12? Tim Laravel sendiri menyebutnya rilis “maintenance”: fokusnya memperbarui dependency dan meminimalkan breaking change, sehingga kebanyakan aplikasi Laravel 11 bisa naik ke 12 tanpa mengubah kode. Perubahan yang paling terasa adalah starter kit baru untuk React, Svelte, Vue, dan Livewire. Laravel Breeze dan Jetstream tidak lagi mendapat pembaruan.
Persyaratan Sebelum Install Laravel 12
- PHP 8.2 atau lebih baru (maksimal 8.5 untuk Laravel 12).
- Ekstensi PHP: Ctype, cURL, DOM, Fileinfo, Filter, Hash, Mbstring, OpenSSL, PCRE, PDO, Session, Tokenizer, dan XML. Daftar ini dari dokumentasi deployment resmi. Untuk database bawaan (SQLite) kamu juga perlu
pdo_sqlite, dan untuk MySQL perlupdo_mysql. - Composer versi 2.
- Node.js dan npm (atau Bun) untuk membangun aset frontend dengan Vite.
- Database opsional. Laravel 12 memakai SQLite secara bawaan, jadi kamu bisa mulai tanpa memasang MySQL.
Cek versi yang terpasang:
php -v
composer -V
node -v
php -m
Perintah php -m menampilkan semua ekstensi yang aktif. Kalau ada yang belum muncul, aktifkan di php.ini (lihat bagian error di bawah).
Belum punya PHP sama sekali? Dokumentasi Laravel menyediakan skrip php.new yang memasang PHP, Composer, dan Laravel installer sekaligus:
# Linux
/bin/bash -c "$(curl -fsSL https://php.new/install/linux/8.4)"
# macOS
/bin/bash -c "$(curl -fsSL https://php.new/install/mac/8.4)"
Untuk Windows, jalankan PowerShell sebagai administrator lalu salin perintah dari halaman instalasi resmi. Alternatifnya, pakai Laravel Herd (Windows dan macOS) yang sudah berisi PHP, Composer, dan Nginx. Tutup lalu buka lagi terminal setelah instalasi.
Cara Install Laravel 12 via Composer (Versi Terkunci di 12)
Ini cara yang kami sarankan kalau tujuanmu khusus Laravel 12. Constraint ^12.0 memastikan Composer tidak mengambil Laravel 13.
composer create-project laravel/laravel:^12.0 toko-online
cd toko-online
php artisan --version
Hasil perintah terakhir akan berbunyi Laravel Framework 12.x.x. Saat kami menguji panduan ini pada Oktober 2026, versinya 12.70.0.
Composer tidak hanya mengunduh file. Skrip bawaan skeleton Laravel 12 otomatis menjalankan beberapa hal setelah project dibuat:
- Menyalin
.env.examplemenjadi.env. - Menjalankan
php artisan key:generateuntuk mengisiAPP_KEY. - Membuat file
database/database.sqlite. - Menjalankan migration bawaan (tabel
users,cache, danjobs).
Jadi kamu tidak perlu menjalankan key:generate manual seperti di tutorial lama, kecuali file .env kamu salin sendiri dari tempat lain.
Langkah berikutnya, pasang dependency frontend lalu jalankan server:
npm install
npm run build
composer run dev
composer run dev menjalankan empat proses sekaligus: php artisan serve, queue worker, log viewer (Pail), dan Vite. Buka http://localhost:8000 dan halaman welcome Laravel akan muncul. Kalau kamu hanya ingin server PHP saja, php artisan serve juga cukup.
Cara Install Laravel lewat Laravel Installer
Laravel installer adalah perintah laravel di terminal. Pasang sekali secara global:
composer global require laravel/installer
laravel new toko-online
Installer akan bertanya starter kit (tanpa starter kit, React, Svelte, Vue, atau Livewire), framework testing (Pest atau PHPUnit), dan database. Kalau sudah tahu pilihannya, kamu bisa memberi flag langsung, misalnya:
laravel new toko-online --livewire --pest --database=mysql
Perlu diingat: installer tidak punya opsi untuk memilih versi Laravel. Ia selalu memakai rilis terbaru laravel/laravel yang cocok dengan PHP kamu. Di PHP 8.3 ke atas hasilnya Laravel 13. Di PHP 8.2, Composer melewati Laravel 13 dan memasang Laravel 12 (kami cek langsung: pesan yang muncul Cannot use laravel/laravel's latest version v13.11.0 as it requires php ^8.3). Starter kit resmi versi terbaru juga sudah membutuhkan Laravel 13 dengan PHP 8.3. Flag seperti --using=laravel/12.x yang beredar di beberapa tutorial juga keliru. Opsi --using sebenarnya dipakai untuk memasang starter kit komunitas dari paket Composer, bukan untuk memilih versi. Kalau harus Laravel 12, kembali ke cara Composer di atas.
Starter Kit Laravel 12: React, Vue, Svelte, dan Livewire
Starter kit adalah kerangka aplikasi lengkap dengan login, registrasi, reset password, verifikasi email, dan halaman pengaturan profil. Semua kodenya masuk ke project kamu, jadi bebas diubah.
| Starter kit | Teknologi | Cocok untuk |
|---|---|---|
| React | Inertia 2, React 19, TypeScript, Tailwind, shadcn/ui | Tim yang sudah terbiasa React dan ingin terasa seperti SPA |
| Vue | Inertia, Vue Composition API, TypeScript, Tailwind, shadcn-vue | Tim Vue |
| Svelte | Inertia, Svelte 5, TypeScript, Tailwind, shadcn-svelte | Tim Svelte |
| Livewire | Livewire, Tailwind, Flux UI | Developer yang ingin UI interaktif cukup dengan PHP dan Blade |
Setiap starter kit juga punya varian WorkOS AuthKit untuk login sosial, passkey, dan SSO. Saat Laravel 12 rilis, starter kit Livewire memakai Laravel Volt untuk halaman-halamannya. Versi terbaru sudah beralih ke Livewire 4.
Bagaimana kalau kamu butuh starter kit tetapi harus tetap di Laravel 12? Rilis awal starter kit (versi 1.0.x, Februari 2025) masih menargetkan Laravel 12 dan bisa dipasang lewat Composer:
composer create-project laravel/livewire-starter-kit:^1.0 toko-online
# atau
composer create-project laravel/react-starter-kit:^1.0 toko-online
composer create-project laravel/vue-starter-kit:^1.0 toko-online
Kami sudah menguji varian Livewire: hasilnya Laravel 12 dengan Volt dan Flux, halaman login dan registrasi langsung jalan. Kekurangannya, kode starter kit versi ini adalah titik awal Februari 2025, jadi perbaikan yang masuk ke starter kit setelahnya tidak ikut. Starter kit Svelte tidak punya rilis bertag, jadi tidak bisa dikunci dengan cara ini.
Mengatur Database: SQLite Bawaan atau MySQL
File .env bawaan Laravel 12 berisi DB_CONNECTION=sqlite. Untuk belajar, ini sudah cukup. Kalau ingin MySQL atau MariaDB, buat database-nya dulu, lalu ubah bagian ini di .env:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=toko_online
DB_USERNAME=root
DB_PASSWORD=
Baris DB_HOST sampai DB_PASSWORD di file bawaan diberi tanda # di depannya. Hapus tanda itu, karena baris yang masih dikomentari tidak dibaca. Setelah itu jalankan:
php artisan migrate
Jangan pernah memasukkan file .env ke Git. File ini berisi password database dan kunci aplikasi.
Struktur Folder Project Laravel 12
Struktur Laravel 12 lebih ramping dibanding Laravel 10 ke bawah. Banyak tutorial lama masih menyebut app/Http/Kernel.php, folder app/Http/Middleware, dan routes/api.php. Di skeleton Laravel 12, ketiganya tidak ada secara bawaan.
app/
Http/Controllers/Controller.php # base controller (kosong)
Models/User.php
Providers/AppServiceProvider.php
bootstrap/
app.php # pengganti Kernel: routing, middleware, exception
providers.php # daftar service provider
config/
database/
migrations/ factories/ seeders/
public/ # document root web server
resources/
css/ js/ views/
routes/
web.php
console.php # command dan jadwal (scheduler)
storage/ # log, cache, file upload
tests/
Middleware sekarang didaftarkan di bootstrap/app.php. Kalau kamu butuh route API, jalankan php artisan install:api. Perintah ini membuat routes/api.php, memasang Laravel Sanctum, dan mendaftarkan file route tersebut.
Error yang Sering Muncul Saat Install Laravel 12
Di Windows
'composer' is not recognizedatau'laravel' is not recognized. Folder Composer belum masuk PATH. Untuk perintahlaravel, tambahkan folder hasilcomposer global config bin-dir --absoluteke PATH (biasanya%APPDATA%\Composer\vendor\bin), lalu buka terminal baru.Your requirements could not be resolved…requires php ^8.2. PHP yang terbaca di terminal masih versi lama, sering terjadi pada XAMPP lama. Cekphp -vdanwhere phpuntuk melihat PHP mana yang dipakai.could not find driver. Ekstensipdo_sqliteataupdo_mysqlbelum aktif. Bukaphp.ini(lokasinya terlihat diphp --ini), hapus titik koma di depanextension=pdo_sqliteatauextension=pdo_mysql.- Composer gagal mengekstrak paket. Aktifkan juga
extension=zipdanextension=fileinfodiphp.ini.
Di Linux (Ubuntu/Debian)
The stream or file "storage/logs/laravel.log" could not be opened. Folderstoragedanbootstrap/cachetidak bisa ditulis oleh web server. Perbaiki dengansudo chown -R $USER:www-data storage bootstrap/cachelaluchmod -R ug+rwx storage bootstrap/cache.laravel: command not found. Tambahkan folder bin global Composer ke PATH, contohnyaexport PATH="$(composer global config bin-dir --absolute --quiet):$PATH"di~/.bashrc.- Ekstensi kurang. Di Ubuntu, paket yang biasanya perlu dipasang:
php8.3-xml php8.3-mbstring php8.3-curl php8.3-sqlite3 php8.3-mysql php8.3-zip(sesuaikan angka versi PHP kamu).
Di semua sistem
Vite manifest not found. Aset frontend belum dibangun. Jalankannpm installlalunpm run build, atau biarkannpm run devberjalan.No application encryption key has been specified. Biasanya muncul setelah clone project dari Git. Salin.env.exampleke.env, lalu jalankanphp artisan key:generate.SQLSTATE[HY000] [1045] Access denied. Username atau password database di.envsalah. Setelah mengubah.env, jalankanphp artisan config:clearkalau sebelumnya pernahconfig:cache.
Langkah Setelah Laravel 12 Terinstall
- Pahami cara kerja URL dan database. Baca routing Laravel, migration Laravel, dan daftar perintah PHP Artisan yang paling sering dipakai.
- Buat route dan controller pertama. Ikuti panduan membuat controller di Laravel 12, mulai dari controller biasa sampai resource dan API controller.
- Kenali controller satu aksi. Untuk aksi tunggal seperti ekspor data, pelajari invokable controller.
- Kalau memilih Livewire, baca dulu apa itu Laravel Volt dan cara memasangnya, termasuk statusnya di Livewire 4.
- Lanjut ke fitur menengah seperti Policy dan Gate untuk hak akses, notification, dan job batching.
- Semua materi kami kumpulkan di halaman tutorial Laravel, berurutan dari dasar.
Masih memakai Laravel 11 di project lama? Panduannya ada di cara install Laravel 11.
Pertanyaan yang Sering Diajukan
Laravel 12 butuh PHP versi berapa?
Minimal PHP 8.2, dan resmi didukung sampai PHP 8.5. Laravel 13 sudah butuh minimal PHP 8.3, jadi Laravel 12 adalah versi terbaru yang masih jalan di PHP 8.2.
Kenapa laravel new memasang Laravel 13, bukan 12?
Laravel installer selalu mengambil rilis terbaru yang cocok dengan PHP kamu, dan tidak punya opsi pilih versi. Pakai composer create-project laravel/laravel:^12.0 nama-project untuk mengunci di Laravel 12.
Apakah Laravel 12 masih layak dipakai untuk project baru?
Masih bisa, tetapi pertimbangkan masa dukungannya. Perbaikan bug sudah berhenti pada 13 Agustus 2026, dan perbaikan keamanan berakhir 24 Februari 2027. Untuk aplikasi yang akan dipakai bertahun-tahun, mulai di Laravel 13 lebih hemat karena tidak perlu upgrade dalam waktu dekat.
Apakah Laravel Breeze masih bisa dipakai di Laravel 12?
Breeze tidak lagi mendapat pembaruan sejak starter kit baru diperkenalkan di Laravel 12. Untuk project baru, pakai starter kit React, Vue, Svelte, atau Livewire.
Apa beda php artisan serve dan composer run dev?
php artisan serve hanya menjalankan server PHP. composer run dev menjalankan server, queue worker, log viewer, dan Vite sekaligus dalam satu terminal.
Sedang membangun aplikasi bisnis dengan Laravel dan butuh tim yang mengerjakan dari analisis sampai server production? Tim Arrazy Inovasi di Purwokerto mengerjakan pembuatan sistem aplikasi custom, termasuk dengan stack Laravel.
