Laravel 12: Cara Install, Versi PHP, dan Starter Kit untuk Pemula

laravel

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 perlu pdo_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:

  1. Menyalin .env.example menjadi .env.
  2. Menjalankan php artisan key:generate untuk mengisi APP_KEY.
  3. Membuat file database/database.sqlite.
  4. Menjalankan migration bawaan (tabel users, cache, dan jobs).

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 recognized atau 'laravel' is not recognized. Folder Composer belum masuk PATH. Untuk perintah laravel, tambahkan folder hasil composer global config bin-dir --absolute ke 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. Cek php -v dan where php untuk melihat PHP mana yang dipakai.
  • could not find driver. Ekstensi pdo_sqlite atau pdo_mysql belum aktif. Buka php.ini (lokasinya terlihat di php --ini), hapus titik koma di depan extension=pdo_sqlite atau extension=pdo_mysql.
  • Composer gagal mengekstrak paket. Aktifkan juga extension=zip dan extension=fileinfo di php.ini.

Di Linux (Ubuntu/Debian)

  • The stream or file "storage/logs/laravel.log" could not be opened. Folder storage dan bootstrap/cache tidak bisa ditulis oleh web server. Perbaiki dengan sudo chown -R $USER:www-data storage bootstrap/cache lalu chmod -R ug+rwx storage bootstrap/cache.
  • laravel: command not found. Tambahkan folder bin global Composer ke PATH, contohnya export 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. Jalankan npm install lalu npm run build, atau biarkan npm run dev berjalan.
  • No application encryption key has been specified. Biasanya muncul setelah clone project dari Git. Salin .env.example ke .env, lalu jalankan php artisan key:generate.
  • SQLSTATE[HY000] [1045] Access denied. Username atau password database di .env salah. Setelah mengubah .env, jalankan php artisan config:clear kalau sebelumnya pernah config:cache.

Langkah Setelah Laravel 12 Terinstall

  1. Pahami cara kerja URL dan database. Baca routing Laravel, migration Laravel, dan daftar perintah PHP Artisan yang paling sering dipakai.
  2. Buat route dan controller pertama. Ikuti panduan membuat controller di Laravel 12, mulai dari controller biasa sampai resource dan API controller.
  3. Kenali controller satu aksi. Untuk aksi tunggal seperti ekspor data, pelajari invokable controller.
  4. Kalau memilih Livewire, baca dulu apa itu Laravel Volt dan cara memasangnya, termasuk statusnya di Livewire 4.
  5. Lanjut ke fitur menengah seperti Policy dan Gate untuk hak akses, notification, dan job batching.
  6. 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.

Diskusikan project Laravel kamu →

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *