Membuat dan Menjalankan Proyek Laravel di ServBay
Ringkasan
ServBay adalah lingkungan pengembangan web lokal yang kuat, dirancang khusus untuk macOS, dan terintegrasi dengan berbagai paket populer seperti PHP, Node.js, Python, Go, Java, beragam database (MySQL, PostgreSQL, MongoDB), layanan cache (Redis, Memcached), serta server web (Caddy, Nginx, Apache).
Dokumen ini akan memandu Anda langkah demi langkah dalam membuat, mengonfigurasi, dan menjalankan proyek Laravel di lingkungan ServBay. Kita akan memanfaatkan PHP bawaan ServBay, manajer paket Composer, dan fitur manajemen situs (sebelumnya disebut “host”) yang canggih untuk menyederhanakan seluruh proses.
Apa itu Laravel?
Laravel adalah framework aplikasi web PHP open source yang sangat populer, diciptakan oleh Taylor Otwell. Laravel mengikuti arsitektur MVC (Model-View-Controller) dan menyediakan berbagai fitur siap pakai untuk menyederhanakan tugas-tugas umum pengembangan web seperti autentikasi, routing, manajemen sesi, cache, dan operasi database. Laravel dikenal berkat sintaksisnya yang elegan, fitur lengkap, serta dukungan komunitas yang solid, menjadikannya pilihan ideal untuk membangun aplikasi web modern yang terstruktur dan mudah dipelihara.
Fitur dan Keunggulan Utama Laravel
- Sintaksis Elegan: Kode yang bersih dan ekspresif, meningkatkan efisiensi dan keterbacaan.
- Eloquent ORM: Implementasi ActiveRecord yang kuat untuk interaksi database yang intuitif dan sederhana.
- Konsol Artisan: Berisi banyak perintah CLI bermanfaat untuk migrasi database, pembuatan kode, testing, dan sebagainya.
- Mesin Template Blade: Sintaksis templating yang ringkas, memudahkan pembuatan tampilan dinamis.
- Ekosistem Kaya: Didukung berbagai paket resmi dan eksternal, mudah diintegrasikan lewat Composer.
- Komunitas Solid: Komunitas aktif yang menyediakan banyak sumber daya, panduan, dan solusi.
Keuntungan Mengembangkan Proyek Laravel dengan ServBay
ServBay memberikan banyak kemudahan bagi pengembang Laravel:
- Lingkungan Terintegrasi: ServBay telah dilengkapi beberapa versi PHP, Composer, serta database dan layanan cache umum—tanpa perlu instalasi manual.
- Mudah Dikelola: Melalui antarmuka grafis ServBay, Anda dapat dengan mudah mengganti versi PHP, mengelola konfigurasi situs, dan memulai/menghentikan layanan.
- Server Web Pra-konfigurasi: ServBay secara default menggunakan Caddy, dengan konfigurasi telah dioptimalkan untuk framework PHP populer—termasuk Laravel, memudahkan setup server web.
- Dukungan HTTPS: ServBay otomatis mengonfigurasi sertifikat SSL oleh ServBay User CA untuk domain
.local
dan mengaktifkan HTTPS secara default, memberikan pengalaman develop lokal yang lebih aman dan mendekati produksi.
Membuat Proyek Laravel
ServBay merekomendasikan agar semua proyek web Anda diletakkan di direktori /Applications/ServBay/www
untuk menjaga struktur file yang rapi dan memudahkan pengelolaan.
Pastikan Composer Terinstall
ServBay sudah menyertakan Composer, jadi Anda tidak perlu instalasi terpisah. Verifikasi dari terminal:
bashcomposer --version
1Jika perintah ini menampilkan nomor versi, Composer sudah siap digunakan.
Buat Proyek Laravel Baru
Buka terminal, arahkan ke direktori yang direkomendasikan ServBay, lalu gunakan Composer untuk membuat proyek Laravel baru. Misal kita beri nama direktori proyek
servbay-laravel-app
:bashcd /Applications/ServBay/www # Membuat direktori proyek mkdir servbay-laravel-app # Masuk ke direktori proyek cd servbay-laravel-app # Buat proyek Laravel di dalam direktori saat ini composer create-project --prefer-dist laravel/laravel .
1
2
3
4
5
6
7Composer akan mengunduh dan menginstal Laravel beserta seluruh dependensinya.
Masuk ke Direktori Proyek
Pastikan posisi terminal Anda sekarang di direktori root Laravel yang baru:
bashcd /Applications/ServBay/www/servbay-laravel-app
1
Konfigurasi Awal
Generate App Key
Laravel memerlukan application key untuk melindungi session dan mengenkripsi data. Di dalam root proyek (
/Applications/ServBay/www/servbay-laravel-app
), jalankan perintah Artisan berikut:bashphp artisan key:generate
1Perintah ini akan membuat dan mengisi
APP_KEY
di file.env
Anda.Konfigurasi Environment Variable (
.env
)Laravel menggunakan file
.env
untuk pengaturan environment, termasuk koneksi database dan URL aplikasi. Buka.env
pada root proyek, sesuaikan sesuai kebutuhan Anda. Pastikan pengaturan dasar berikut sudah benar:dotenvAPP_NAME=ServBay Laravel Demo APP_ENV=local APP_KEY=base64:... # Nilai ini di-generate oleh php artisan key:generate APP_DEBUG=true APP_URL=https://servbay-laravel-test.local LOG_CHANNEL=stack # Contoh konfigurasi (MySQL) DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=servbay_laravel_app # Nama database yang Anda gunakan DB_USERNAME=root # User DB bawaan ServBay DB_PASSWORD=password # Password default ServBay # Contoh konfigurasi cache/queue (Redis) CACHE_STORE=redis REDIS_HOST=127.0.0.1 REDIS_PASSWORD=null # Redis ServBay default tanpa password REDIS_PORT=6379 # Contoh konfigurasi cache/queue (Memcached) # CACHE_STORE=memcached # MEMCACHED_HOST=127.0.0.1 # MEMCACHED_PORT=11211
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26Catatan: Anda mungkin perlu menyesuaikan pengaturan
DB_*
,REDIS_*
, atauMEMCACHED_*
sesuai layanan yang dipakai. Username dan password database bawaan ServBay bisa dilihat di panel ServBay.
Konfigurasi Server Web (Menambahkan Website di ServBay)
Gunakan fitur manajemen situs ServBay untuk mengonfigurasi server web dan arahkan domain ke direktori public
dari proyek Laravel Anda.
Buka Panel Kontrol ServBay
Jalankan aplikasi ServBay lalu buka panel kontrolnya.
Tambah Website Baru
Navigasi ke bagian ‘Website’ di panel ServBay. Klik tombol tambah (biasanya ikon
+
atau serupa) untuk menambah website baru.Isi Informasi Website
Isilah konfigurasi situs seperti contoh berikut:
- Nama:
My First Laravel Dev Site
(sesuaikan sesuai preferensi) - Domain:
servbay-laravel-test.local
(domain yang Anda ingin akses di browser) - Tipe Situs:
PHP
- Versi PHP: Pilih versi PHP yang cocok, misalkan
8.3
- Root Situs:
/Applications/ServBay/www/servbay-laravel-app/public
(Penting: harus menunjuk ke subdirektoripublic
milik proyek Laravel)
Untuk langkah dan opsi detail lainnya, silakan lihat panduan resmi ServBay tentang Menambah Website Pertama (cari tautan versi bahasa Inggris).
- Nama:
Simpan dan Terapkan Perubahan
Simpan pengaturan situs Anda. ServBay otomatis memperbarui konfigurasi server web-nya (default: Caddy). Jika diminta untuk restart server web, lakukan sesuai petunjuk.
Verifikasi Akses Dasar
Setelah langkah di atas, proyek Laravel Anda harusnya bisa diakses melalui domain yang sudah dikonfigurasi.
Buka Browser
Masukkan domain yang Anda konfigurasikan, misal
https://servbay-laravel-test.local
, di browser Anda.Lihat Hasil
Jika semua konfigurasi benar, Anda akan melihat halaman selamat datang Laravel.
Menambahkan Kode Contoh Sederhana
Agar validasi lebih jelas, kita bisa menambahkan satu route di file routes/web.php
yang akan menampilkan "Hello ServBay!".
Cari file routes/web.php
dalam direktori proyek dan tambahkan/ubah berikut ini:
php
<?php
use Illuminate\Support\Facades\Route;
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Di sini Anda dapat meregistrasi web routes aplikasi Anda. Route ini akan
| dimuat oleh RouteServiceProvider dalam group yang berisi group middleware "web". Untuk memulai sesuatu yang hebat!
|
*/
Route::get('/', function () {
return 'Hello ServBay!'; // Ubah atau tambahkan baris ini
});
// ... route lainnya
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Setelah menyimpan file, akses kembali https://servbay-laravel-test.local
. Sekarang browser Anda akan menampilkan Hello ServBay!
.
Contoh Integrasi Database
Laravel menawarkan database abstraction layer dan ORM (Eloquent) yang sangat mudah digunakan. ServBay telah menyediakan MySQL, PostgreSQL, MongoDB, Redis, dan Memcached sehingga Anda bisa langsung testing.
Contoh Database NoSQL
ServBay telah mengintegrasikan Redis dan Memcached secara default dengan PHP extension yang sudah siap.
Contoh Memcached
Konfigurasi
.env
Tambahkan konfigurasi koneksi Memcached ke file
.env
(bila belum diatur):dotenvCACHE_STORE=memcached MEMCACHED_HOST=127.0.0.1 MEMCACHED_PORT=11211 # Port default Memcached ServBay
1
2
3Menggunakan Memcached
Gunakan facade cache Laravel dalam route atau controller untuk akses Memcached:
Tambahkan route di
routes/web.php
:phpuse Illuminate\Support\Facades\Cache; Route::get('/memcached-test', function () { // Simpan data ke cache untuk 10 menit (600 detik) Cache::put('servbay_memcached_key', 'Hello from Memcached on ServBay!', 600); // Ambil data dari cache $value = Cache::get('servbay_memcached_key'); if ($value) { return "Data Memcached: " . $value; } else { return "Data Memcached tidak ditemukan atau sudah expired."; } });
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15Akses
https://servbay-laravel-test.local/memcached-test
untuk tes.
Contoh Redis
Konfigurasi
.env
Tambahkan konfigurasi koneksi Redis di
.env
(bila belum disetel):dotenvCACHE_STORE=redis REDIS_HOST=127.0.0.1 REDIS_PASSWORD=null # Redis ServBay default tanpa password REDIS_PORT=6379 # Port default Redis ServBay
1
2
3
4Catatan: Jika Anda mengatur Memcached dan Redis dalam
.env
, pastikan hanya salah satu aktif dengan mengomentari barisCACHE_STORE
yang tak digunakan.Menggunakan Redis
Manfaatkan Redis facade atau Cache facade Laravel dalam route/controller:
Tambahkan kode berikut pada
routes/web.php
:phpuse Illuminate\Support\Facades\Redis; // Atau gunakan Cache facade jika CACHE_STORE=redis // use Illuminate\Support\Facades\Cache; Route::get('/redis-test', function () { // Menggunakan Redis facade Redis::set('servbay_redis_key', 'Hello from Redis on ServBay!'); $value_redis = Redis::get('servbay_redis_key'); // Atau gunakan Cache facade (jika CACHE_STORE=redis) // Cache::put('servbay_redis_key', 'Hello from Redis on ServBay!', 600); // $value_cache = Cache::get('servbay_redis_key'); return "Data Redis: " . $value_redis; });
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15Buka
https://servbay-laravel-test.local/redis-test
di browser untuk mengecek.
Contoh Database Relasional (MySQL & PostgreSQL)
ServBay menyertakan server MySQL dan PostgreSQL. Laravel Eloquent ORM memudahkan integrasi dengan keduanya.
Pertama, buatlah database, misalnya servbay_laravel_app
, melalui alat manajemen database (phpMyAdmin, Adminer, pgAdmin, dll yang bisa diakses lewat ServBay) atau memakai terminal.
Selanjutnya, mari gunakan fitur migrasi Laravel untuk membuat tabel.
Buat File Migrasi
Di root proyek, jalankan:
bashphp artisan make:migration create_accounts_table --create=accounts
1File migrasi akan tercipta di direktori
database/migrations
.Edit File Migrasi
Buka file migrasi baru (misal
YYYY_MM_DD_HHMMSS_create_accounts_table.php
), lalu atur methodup
seperti berikut:php<?php use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; return new class extends Migration { /** * Jalankan migrasi. */ public function up(): void { Schema::create('accounts', function (Blueprint $table) { $table->id(); $table->string('name'); $table->string('email')->unique(); $table->timestamps(); // Tambahkan kolom created_at dan updated_at }); } /** * Balikkan migrasi. */ public function down(): void { Schema::dropIfExists('accounts'); } };
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29Simpan file migrasi.
Jalankan Migrasi
Masih di root proyek, jalankan:
bashphp artisan migrate
1Jika pengaturan database sudah benar dan database
servbay_laravel_app
sudah ada, perintah ini akan membuat tabelaccounts
serta tabel default lain Laravel sepertiusers
,password_reset_tokens
,failed_jobs
,cache
,cache_locks
,jobs
,job_batches
, dsb.
Contoh MySQL
Konfigurasi
.env
untuk MySQLPastikan file
.env
sudah mengarah ke MySQL:dotenvDB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 # Port MySQL default ServBay DB_DATABASE=servbay_laravel_app DB_USERNAME=root DB_PASSWORD=password # Password MySQL default ServBay
1
2
3
4
5
6Tambah Data Contoh
Tambahkan route berikut di
routes/web.php
untuk memasukkan data ke tabelaccounts
:phpuse Illuminate\Support\Facades\DB; Route::get('/mysql-add-account', function () { DB::table('accounts')->insert([ 'name' => 'ServBay Demo User', 'email' => '[email protected]', 'created_at' => now(), 'updated_at' => now(), ]); return 'Account ditambahkan ke MySQL!'; });
1
2
3
4
5
6
7
8
9
10
11Kunjungi
https://servbay-laravel-test.local/mysql-add-account
untuk menambah data.Baca Data Contoh
Tambahkan route berikut untuk membaca data dari tabel
accounts
:phpuse App\Models\Account; // Jika Anda membuat model Account // Atau langsung gunakan DB facade Route::get('/mysql-accounts', function () { // Dengan DB facade $accounts = DB::table('accounts')->get(); // Atau gunakan Eloquent ORM (jika sudah punya model Account) // $accounts = Account::all(); return $accounts; });
1
2
3
4
5
6
7
8
9
10
11
12Buka
https://servbay-laravel-test.local/mysql-accounts
untuk melihat data di tabelaccounts
.
Contoh PostgreSQL
Konfigurasi
.env
untuk PostgreSQLJika ingin menggunakan PostgreSQL, edit
.env
sebagai berikut:dotenvDB_CONNECTION=pgsql DB_HOST=127.0.0.1 DB_PORT=5432 # Port PostgreSQL default ServBay DB_DATABASE=servbay_laravel_app DB_USERNAME=root # User default ServBay PostgreSQL DB_PASSWORD=password # Password default PostgreSQL ServBay
1
2
3
4
5
6Catatan: Jika Anda beralih database, jalankan
php artisan migrate:refresh
atauphp artisan migrate
untuk setup struktur tabel di PostgreSQL.Tambah Data Contoh (PostgreSQL)
Tambahkan route berikut untuk menyisipkan data ke
accounts
:phpuse Illuminate\Support\Facades\DB; Route::get('/pgsql-add-account', function () { DB::table('accounts')->insert([ 'name' => 'ServBay PG Demo User', 'email' => '[email protected]', 'created_at' => now(), 'updated_at' => now(), ]); return 'Account ditambahkan ke PostgreSQL!'; });
1
2
3
4
5
6
7
8
9
10
11Akses
https://servbay-laravel-test.local/pgsql-add-account
untuk tambahkan data.Baca Data Contoh (PostgreSQL)
Tambahkan route berikut untuk membaca data dari
accounts
:phpuse Illuminate\Support\Facades\DB; Route::get('/pgsql-accounts', function () { $accounts = DB::table('accounts')->get(); return $accounts; });
1
2
3
4
5
6Kunjungi
https://servbay-laravel-test.local/pgsql-accounts
untuk melihat data tabel.
Kesimpulan
Dengan ServBay, Anda bisa dengan mudah membangun lingkungan pengembangan lokal untuk membuat dan menjalankan proyek Laravel di macOS. Integrasi PHP, Composer, server web Caddy, dan berbagai database serta layanan cache yang telah disediakan, sangat menyederhanakan proses setup. Hanya melalui beberapa langkah sederhana, Anda dapat membuat proyek Laravel baru, mengonfigurasi server web, lalu mulai pengembangan, sekaligus menguji integrasi database dan cache dengan mudah. ServBay berkomitmen memberikan pengalaman pengembangan lokal yang efisien dan nyaman bagi para developer.
Jika Anda menemui kendala, silakan merujuk ke dokumentasi resmi ServBay atau berdiskusi dengan komunitas pengguna.