Memasang Laravel
Laravel 13 butuh PHP 8.3 ke atas. Pemasangannya cepat; yang perlu dipahami adalah apa yang sebenarnya terjadi setelah perintah itu selesai.
Intisari
- Laravel 13 rilis 17 Maret 2026, mendukung PHP 8.3โ8.5, dengan perbaikan bug 18 bulan dan keamanan 2 tahun.
laravel newlalucomposer run devโ server, queue worker, dan Vite menyala bersama.- Default database-nya SQLite, berkas
database/database.sqlite, migrasinya sudah dijalankan. - Aplikasi wajib dilayani dari folder
public/, bukan dari root proyek โ ini soal keamanan, bukan selera. APP_KEYdibuat otomatis saat instalasi; kehilangan kunci itu berarti kehilangan semua data terenkripsi.
Jalur tercepat
# PHP + Composer + installer sekaligus (macOS / Linux)
/bin/bash -c "$(curl -fsSL https://php.new/install/linux/8.5)"
# kalau PHP dan Composer sudah ada
composer global require laravel/installer
# bikin aplikasi
laravel new toko
cd toko
npm install && npm run build
composer run dev
Buka http://localhost:8000. composer run dev menjalankan tiga proses sekaligus
โ server PHP, queue listener, dan Vite โ jadi kamu tidak perlu tiga terminal untuk pekerjaan sehari-hari.
| Lingkungan | Pilihan yang masuk akal | Catatan |
|---|---|---|
| macOS / Windows, ingin cepat | Laravel Herd | PHP + Nginx terpasang grafis; versi Pro menambah MySQL, Postgres, Redis lokal |
| Linux, sudah nyaman terminal | php.new + laravel new | Paling ringan, paling sedikit lapisan |
| Tim yang butuh seragam | Laravel Sail (Docker) | Satu docker-compose.yml; sama persis di semua laptop |
| Sudah tahu akan pakai worker mode | Sail + Octane | Dibahas di Fase 8 โ belum perlu sekarang |
Yang terjadi di balik laravel new
- Kerangka
laravel/laraveldiunduh, lalucomposer installmengisivendor/. .env.exampledisalin jadi.env.php artisan key:generatemengisiAPP_KEY.database/database.sqlitedibuat danphp artisan migratedijalankan.- Repositori git diinisialisasi dengan satu commit awal.
APP_KEY itu bukan basa-basi. Ia dipakai untuk mengenkripsi session, cookie, dan kolom
yang kamu tandai terenkripsi. Menggantinya di produksi = semua pengguna ter-logout dan semua data terenkripsi
jadi sampah yang tidak bisa dibaca lagi. Simpan seperti kredensial database.
Pindah dari SQLite
SQLite bagus untuk memulai dan untuk tes. Begitu kamu perlu MySQL atau PostgreSQL, ubah .env:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=toko
DB_USERNAME=root
DB_PASSWORD=
php artisan migrate
Pilih sekarang, bukan nanti. Perbedaan SQLite dan MySQL bocor ke tempat-tempat kecil: penanganan
kolom JSON, ketatnya tipe, perilaku ALTER TABLE, dan sensitivitas huruf besar-kecil saat
membandingkan string. Kalau produksi akan memakai MySQL atau Postgres, pakai yang sama sejak hari pertama โ
Sail menyediakannya dalam satu perintah.
Kenapa harus dari public/
Document root web server harus menunjuk ke public/. Kalau ia menunjuk ke root proyek,
maka .env, storage/logs/laravel.log, dan seluruh vendor/ bisa diunduh siapa
saja lewat URL. Ini satu-satunya kesalahan konfigurasi yang bisa membocorkan seluruh kredensial aplikasimu dalam
satu permintaan HTTP.
Konsekuensinya nanti: di Fase 9, setiap konfigurasi kontainer yang kita tulis akan menyebutkan
/app/public sebagai root โ dan alasannya adalah paragraf ini.
Kebijakan versi
| Versi | PHP | Rilis | Perbaikan bug | Perbaikan keamanan |
|---|---|---|---|---|
| 11 | 8.2 โ 8.4 | 12 Mar 2024 | 3 Sep 2025 | 12 Mar 2026 |
| 12 | 8.2 โ 8.5 | 24 Feb 2025 | 13 Agu 2026 | 24 Feb 2027 |
| 13 | 8.3 โ 8.5 | 17 Mar 2026 | Q3 2027 | 17 Mar 2028 |
Untuk aplikasi enterprise, dua kolom terakhir adalah yang menentukan jadwal upgrade โ dan alasannya dibahas tuntas di Fase 10.
Latihan: buat aplikasi baru bernama toko, jalankan composer run dev, dan
pastikan halaman sambutan terbuka. Lalu buka .env, catat nilai APP_KEY di tempat aman,
dan jawab: kalau kamu meng-commit .env ke repositori publik, apa saja yang bocor?
Rangkuman ini sengaja dipangkas ke bagian yang dipakai di roadmap. Buka sumber aslinya saat kamu butuh detail lengkap atau referensi parameter.