Aplikasi Laravel yang baru dibuat belum bisa dibuka di browser hanya dengan berdiri di direktori proyek — kita perlu menjalankan proses yang menerima HTTP request dan mengembalikan response. Laravel menyediakan dua pintu untuk itu: perintah php artisan serve yang ringan dan sederhana, serta composer run dev yang menjalankan seluruh proses pengembangan sekaligus. Pada chapter ini kita akan mencoba keduanya, memahami perbedaannya, dan melihat bagaimana aplikasi dilayani di server produksi nantinya.

php artisan serve #

Cara paling cepat menjalankan aplikasi adalah satu perintah berikut dari direktori proyek:

bash
php artisan serve

Perintah tersebut membungkus built-in web server milik PHP dan menampilkan pesan bahwa server berjalan di http://127.0.0.1:8000 — cukup buka alamat itu di browser untuk melihat halaman selamat datang Laravel. Proses ini berjalan di depan terminal kita: tekan Ctrl+C untuk menghentikannya, dan setiap perubahan kode PHP langsung terlihat pada refresh berikutnya tanpa perlu memulai ulang server.

Perintah serve juga menerima beberapa opsi yang berguna. Kita bisa memeriksa daftar lengkapnya lewat layar bantuan:

bash
php artisan serve --help

Output yang Dihasilkan:

text
Description:
  Serve the application on the PHP development server

Usage:
  serve [options]

Options:
      --host[=HOST]     The host address to serve the application on [default: "127.0.0.1"]
      --port[=PORT]     The port to serve the application on
      --tries[=TRIES]   The max number of ports to attempt to serve from [default: "10"]
      --no-reload       Do not reload the development server on .env file changes

Opsi --port mengubah port bila 8000 sudah dipakai proses lain — misalnya php artisan serve --port=8080 — sedangkan --host=0.0.0.0 membuat server bisa diakses dari perangkat lain di jaringan lokal, berguna saat mengetes tampilan ponsel. Perilaku menarik lainnya terlihat dari opsi --no-reload: secara bawaan, server ini memulai ulang dirinya sendiri setiap kali berkas .env berubah.

composer run dev #

Aplikasi modern jarang cukup dilayani server PHP saja: kita juga butuh proses queue worker untuk pekerjaan tertunda, tampilan log secara langsung, dan Vite untuk kompilasi aset frontend. Laravel 13 menyatukan semuanya lewat perintah php artisan dev, yang oleh proyek bawaan sudah dijadikan Composer script bernama dev:

json
"scripts": {
    "dev": [
        "Composer\\Config::disableProcessTimeout",
        "@php artisan dev"
    ]
}

Karena script tersebut, perintah composer run dev sama dengan menjalankan php artisan dev. Sesuai dokumentasi Artisan , perintah ini menjalankan empat proses sekaligus dalam satu jendela terminal. Daftar prosesnya bisa kita lihat tanpa menjalankannya:

bash
php artisan dev:list

Output yang Dihasilkan:

text
  server php artisan serve  Illuminate\Foundation\Providers\ArtisanServicePro…
  queue  php artisan queue:listen --tries=1 --timeout=0  Illuminate\Foundatio…
  logs   php artisan pail --timeout=0  Illuminate\Foundation\Providers\Artisa…
  vite   npm run dev  Illuminate\Foundation\Providers\ArtisanServiceProvider@…

                                                      Showing [4] dev commands

Empat baris tersebut adalah proses bawaan: server PHP, queue worker, log tailing dengan Pail, dan kompilasi aset dengan Vite. Tampilan perintah dev berupa antarmuka bertab dengan output setiap proses diberi label dan kode warna, dan proses yang mogok dimulai ulang secara otomatis. Perintah ini membutuhkan Node 22.13 atau lebih baru, serta npm install yang sudah dijalankan sekali di awal proyek.

Kapan Memakai yang Mana #

Aspekphp artisan servecomposer run dev
Proses yang berjalanServer PHP sajaServer + queue + log + Vite
PrasyaratPHP sajaPHP + Node.js + npm install
Cocok untukChapter awal, API murni, mesin tanpa NodeAplikasi dengan frontend Vite dan queue

Sepanjang bagian awal Course ini, php artisan serve sudah lebih dari cukup karena kita fokus pada routing, controller, dan database yang tidak menyentuh aset frontend. Begitu kita mulai memakai Vite dan queue di bagian Frontend Laravel, beralihlah ke composer run dev agar semua proses berjalan berdampingan.

Development vs Produksi #

Penting dipahami bahwa kedua perintah di atas adalah alat pengembangan, bukan cara melayani aplikasi bagi pengguna sungguhan. Server bawaan PHP berjalan satu proses dan tidak dioptimalkan untuk banyak request serentak, sehingga di produksi aplikasi Laravel dilayani oleh web server seperti Nginx atau Apache yang meneruskan request PHP ke proses PHP-FPM, sebagaimana dibahas dokumentasi deployment . Proses queue worker sendiri di produksi dikelola supervisor, bukan terminal kita.

Dengan server yang kini bisa berjalan, kita butuh alat untuk berinteraksi dengan aplikasi dari terminal: membuat berkas, menjalankan migrasi, hingga mengeksekusi kode. Semua itu adalah ranah Artisan, yang kita bedah di chapter berikutnya.