Penyiapan lingkungan

Instalasi PHP, Composer, pilihan database, dan pembuatan proyek Laravel pertama.

Daftar isi

Topik ini memandu penyiapan lingkungan pengembangan Laravel dari awal, mulai dari pemeriksaan komponen yang sudah ada, instalasi PHP dan Composer apabila belum terpasang, pemilihan database, sampai pembuatan proyek Laravel pertama bernama aplikasi-catatan. Aplikasi catatan pribadi itu menjadi contoh kerja yang digunakan secara konsisten sepanjang jalur, sehingga namanya perlu dipertahankan apa adanya. Setelah langkah-langkahnya diikuti, proyek Laravel akan berjalan pada server pengembangan lokal dan siap menerima kode aplikasi pertama.

Komponen lingkungan pengembangan#

Lingkungan pengembangan Laravel tersusun atas empat komponen. PHP 8.3 ke atas menjalankan aplikasi, sedangkan Composer mengelola package-nya. Driver database menyediakan tempat penyimpanan data dengan SQLite sebagai bawaan proyek baru, dan Node.js beserta npm digunakan untuk mengompilasi aset frontend. Empat komponen itu perlu terpasang sebelum proyek pertama dibuat, dan ketersediaannya dapat diverifikasi satu per satu dari terminal.

Diagram berikut merangkum urutan penyiapannya. Setiap tahap memiliki perintah verifikasi singkat yang ditulis di dalam kotaknya, sehingga keberhasilan tiap langkah dapat dipastikan sebelum melanjutkan:

1Pasang PHPphp -v2Pasang Composercomposer --version3Buat proyekcreate-project4Jalankan serverphp artisan serve
Alur penyiapan lingkungan pengembangan Laravel
Perintah pada diagram bukan bagian dari instalasi, melainkan alat pemeriksa. Versi PHP yang terpasang di sandbox jalur ini dapat diperiksa dengan cara berikut:

bash
# menampilkan versi PHP yang dipakai terminal
php -v
text Keluaran
PHP 8.3.29 (cli) (built: Nov  3 2026 05:56:22) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.3.29, Copyright (c) Zend Technologies

Baris pertama keluaran memuat versi lengkapnya, yaitu PHP 8.3.29, dan angka itu sudah melewati versi minimum Laravel 13. Apabila terminal justru menampilkan pesan command not found, PHP belum terpasang dan instalasi pada bagian berikutnya perlu dilakukan lebih dahulu. Versi di atas 8.3, misalnya 8.4 atau 8.5, juga memenuhi syarat karena Laravel 13 mendukung PHP 8.3 sampai 8.5.

Instalasi PHP dan Composer#

Dokumentasi resmi menyediakan skrip pemasangan bernama php.new untuk macOS, Windows, dan Linux yang memasang PHP dan Composer sekaligus dalam satu langkah. Alternatif lainnya adalah Laravel Herd, yaitu lingkungan pengembangan native untuk macOS dan Windows yang memuat PHP, Nginx, serta alat baris perintah termasuk composer dan laravel. Keduanya mengunduh berkas dari internet, sehingga membutuhkan koneksi yang stabil dan waktu beberapa menit.

bash
# tidak-dijalankan
# memasang PHP dan Composer pada Linux melalui skrip resmi php.new
/bin/bash -c "$(curl -fsSL https://php.new/install/linux/8.5)"

Perintah di atas tidak dijalankan ulang di sandbox karena PHP dan Composer di lingkungan tersebut sudah terpasang. Setelah skrip php.new selesai, sesi terminal perlu dibuka ulang agar variabel PATH memuat lokasi PHP yang baru. Apabila PHP dan Composer sudah terpasang lebih dahulu, langkah pemasangan ini dapat dilewati.

Satu komponen lagi bersifat opsional pada tahap ini, yaitu Laravel Installer yang menyediakan perintah laravel new:

bash
# tidak-dijalankan
# memasang Laravel installer secara global melalui Composer
composer global require laravel/installer

Perintah itu tidak wajib dijalankan sekarang karena pembuatan proyek pada jalur ini menggunakan Composer secara langsung. Kehadiran Composer dapat dipastikan dengan perintah berikut:

bash
# menampilkan versi Composer yang terpasang
composer --version
text Keluaran
Composer version 2.11.1 2026-10-30 14:52:10
PHP version 8.3.29 (/home/kal/.local/bin/php)
Run the "diagnose" command to get more detailed diagnostics output.

Keluaran menunjukkan Composer versi 2.11.1, sedangkan baris kedua dan ketiganya menampilkan PHP yang digunakan Composer, yaitu PHP 8.3.29 pada lokasi /home/kal/.local/bin/php. Seri Composer 2 inilah yang digunakan seluruh contoh pada jalur ini, sehingga hasil setiap perintahnya konsisten.

Pilihan database#

Proyek Laravel baru menggunakan SQLite sebagai database bawaannya. Konfigurasinya ditulis pada berkas .env melalui variabel DB_CONNECTION=sqlite, sedangkan datanya disimpan pada satu berkas database/database.sqlite tanpa proses server tambahan. Dokumentasi resmi menyatakan berkas itu dibuat dan migration bawaannya dijalankan secara otomatis saat proyek dibuat, sehingga database langsung siap digunakan.

SQLite bukan pilihan satu-satunya, dan tabel berikut membandingkan ketiga pilihan yang paling umum:

DatabaseBentukCocok untuk
SQLiteberkas tunggal tanpa serverpengembangan lokal dan aplikasi kecil menengah
MySQLserver terpisahaplikasi dengan banyak akses serentak dan hosting umum
PostgreSQLserver terpisahaplikasi menengah besar dengan kebutuhan SQL yang kaya

Untuk aplikasi contoh jalur ini, SQLite cukup karena skemanya kecil dan beban aksesnya ringan. Peralihan ke MySQL atau PostgreSQL dilakukan dengan mengubah variabel DB_* pada .env, lalu menjalankan php artisan migrate untuk membuat tabel-tabelnya. Penundaan keputusan itu aman karena lapisan akses database Laravel menjaga kode aplikasi tetap sama di atas DBMS mana pun. SQLite juga tidak menambah beban penyiapan karena dukungannya sudah menyertai PHP melalui ekstensi pdo_sqlite, sedangkan MySQL dan PostgreSQL menuntut instalasi server tersendiri.

Membuat proyek pertama#

Dua cara resmi tersedia untuk membuat proyek. Cara pertama menggunakan Laravel Installer dengan perintah laravel new, sedangkan cara kedua menggunakan Composer secara langsung dengan composer create-project laravel/laravel. Keduanya mengunduh templat proyek resmi laravel/laravel beserta seluruh dependensinya dari Packagist. Jalur ini menggunakan cara kedua karena tidak membutuhkan instalasi alat tambahan.

bash
# tidak-dijalankan
# membuat proyek dengan Laravel installer (opsional)
laravel new aplikasi-catatan

Cara kedua, yang digunakan jalur ini, dijalankan dengan perintah berikut:

bash
# tidak-dijalankan
# membuat proyek Laravel pertama bernama aplikasi-catatan
composer create-project laravel/laravel aplikasi-catatan

Perintah tersebut tidak dieksekusi ulang pada bagian ini karena efek sampingnya besar dan prosesnya membutuhkan waktu beberapa menit. Keluaran berikut diambil dari eksekusi nyata perintah yang sama di sandbox, dengan direktori kerja sementara di /tmp dan sebagian baris tengahnya dipendekkan:

text Hasil perintah composer create-project
Creating a "laravel/laravel" project at "./aplikasi-catatan"
Installing laravel/laravel (v13.11.0)
Created project in /tmp/uji-laravel/aplikasi-catatan
Loading composer repositories with package information
Updating dependencies
Lock file operations: 111 installs, 0 updates, 0 removals
...
Writing lock file
Installing dependencies from lock file (including require-dev)
Package operations: 111 installs, 0 updates, 0 removals
...
Generating optimized autoload files
...
No security vulnerability advisories found.
> @php artisan key:generate --ansi

   INFO  Application key set successfully.

> @php -r "file_exists('database/database.sqlite') || touch('database/database.sqlite');"
> @php artisan migrate --graceful --ansi

   INFO  Preparing database.

  Creating migration table ....................................... 2.23ms DONE

   INFO  Running migrations.

  0001_01_01_000000_create_users_table ........................... 1.66ms DONE
  0001_01_01_000001_create_cache_table ........................... 0.84ms DONE
  0001_01_01_000002_create_jobs_table ............................ 1.44ms DONE

Keluaran itu menunjukkan tiga fase kerja Composer. Fase pertama mengunduh templat proyek laravel/laravel, fase kedua menulis composer.lock dan memasang 111 package, sedangkan fase ketiga menjalankan skrip pasca-instalasi milik Laravel, yaitu kunci aplikasi dibuat dengan key:generate, berkas database/database.sqlite disiapkan, dan migration bawaan membuat tabel users, cache, serta jobs. Hasilnya, proyek baru sudah memuat database yang siap digunakan tanpa satu pun perintah tambahan.

Hasil akhirnya dapat diverifikasi dari terminal:

bash
# memeriksa versi Laravel pada proyek yang baru dibuat
cd ~/aplikasi-catatan
php artisan --version
text Keluaran
Laravel Framework 13.39.0

Berkas database bawaan juga dapat dipastikan keberadaannya:

bash
# memastikan berkas database SQLite bawaan sudah ada
ls ~/aplikasi-catatan/database/database.sqlite
text Keluaran
/home/kal/aplikasi-catatan/database/database.sqlite

Menjalankan server pengembangan#

Menjalankan Laravel tidak membutuhkan penyetelan server web pada tahap ini karena Artisan menyediakan server pengembangan sendiri. Artisan adalah alat baris perintah milik Laravel yang dipanggil melalui berkas artisan pada akar proyek. Server yang dihasilkannya memang ditujukan untuk pengembangan dan bukan untuk produksi, tetapi untuk keperluan belajar, sifat itu justru yang dibutuhkan. Perintah berikut menjalankan server pengembangan pada http://localhost:8000:

bash
# tidak-dijalankan
# menjalankan server pengembangan Laravel (berjalan terus sampai dihentikan)
cd ~/aplikasi-catatan
php artisan serve

Perintah di atas ditandai tidak-dijalankan karena servernya berjalan terus dan tidak selesai dengan sendirinya. Selama berjalan, halaman pembuka Laravel dapat dibuka dari browser pada alamat http://localhost:8000, dan server dihentikan dengan menekan Ctrl+C di terminalnya. Dokumentasi resmi juga memuat contoh composer run dev, yang menjalankan server pengembangan, worker antrian, dan server Vite sekaligus setelah aset frontend di-build dengan npm. Untuk tahap pembelajaran sekarang, php artisan serve sudah cukup.

Kesalahan umum#

  • Versi PHP lebih tua dari 8.3 tetap digunakan. Composer menolak instalasi dengan pesan yang menyebut syarat php >=8.3 ketika versi terpasang tidak memenuhi syarat. Perbaikannya adalah memperbarui PHP melalui skrip php.new atau pengelola package milik sistem, lalu mengulangi pemeriksaan php -v.
  • Unduhan create-project terputus di tengah proses. Perintah composer create-project mengunduh ratusan package, sehingga koneksi yang tidak stabil membuatnya gagal sebelum selesai. Hapus direktori proyek yang setengah jadi, pastikan koneksi stabil, lalu jalankan ulang perintahnya dari awal.
  • Port 8000 sudah digunakan proses lain. Server menampilkan pesan kegagalan ketika php artisan serve dijalankan bersamaan dengan proses lain yang mendengarkan pada port yang sama. Gunakan port lain dengan php artisan serve --port=8001.
  • Berkas .env hilang pada proyek hasil salinan repository. Proyek yang disalin dari repository git tidak membawa .env maupun vendor/ karena keduanya memang tidak disertakan. Jalankan composer install, salin .env.example menjadi .env, lalu buat kunci aplikasi dengan php artisan key:generate.

Ringkasan#

  • Lingkungan minimum terdiri atas PHP 8.3 ke atas, Composer, driver database dengan SQLite sebagai bawaan, dan Node.js beserta npm untuk aset frontend.
  • SQLite adalah database bawaan proyek baru, yaitu berkas database/database.sqlite yang dibuat otomatis bersama migration bawaannya saat proyek dibuat.
  • Proyek dibuat dengan laravel new atau composer create-project laravel/laravel, dan prosesnya mengunduh templat, memasang dependensi, menghasilkan kunci aplikasi, serta menjalankan migration.
  • Server pengembangan dijalankan dengan php artisan serve dan diakses dari browser pada http://localhost:8000.

Referensi#