Ada yang nanya soal ini kemarin, jadi gue bahas di sini.
Kali ini kita bahas sesuatu yang lumayan sering ditanya juga: gimana sih bikin project Laravel 12 tapi database-nya pakai SQL Server?
Biasanya Laravel identik sama MySQL atau PostgreSQL. Tapi sebenarnya Laravel juga bisa banget jalan bareng SQL Server, asal driver PHP-nya dipasang dengan benar.
Di artikel ini kita bakal bikin environment pakai Docker, jadi setup-nya lebih rapi dan gak bikin Windows atau Linux kita berantakan.
Santai aja bro, kita jalanin step-by-step.
Di tutorial ini kita bakal:
Install PHP + SQL Server driver
Setup Docker environment
Jalanin Laravel di container
Hubungkan Laravel ke SQL Server
Kalau semuanya benar, Laravel kamu sudah bisa query database SQL Server tanpa drama.
1. Buat Dockerfile
Pertama kita buat dulu Dockerfile untuk environment PHP.
File ini nanti akan berisi:
- PHP 8.4
- Driver SQL Server
- Extension PHP yang dibutuhkan Laravel
- Composer
Buat file dengan nama Dockerfile
FROM php:8.4-fpm
# Install dependencies
RUN apt-get update && apt-get install -y \
gnupg \
curl \
unixodbc-dev \
libzip-dev \
zip \
unzip \
git \
libonig-dev \
libicu-dev \
&& rm -rf /var/lib/apt/lists/*
# Install SQL Server Driver (fixed for Debian 11)
RUN curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > /etc/apt/trusted.gpg.d/microsoft.gpg \
&& curl https://packages.microsoft.com/config/debian/11/prod.list -o /etc/apt/sources.list.d/mssql-release.list \
&& apt-get update \
&& ACCEPT_EULA=Y apt-get install -y msodbcsql18 \
&& rm -rf /var/lib/apt/lists/*
# Install PHP extensions
RUN pecl install sqlsrv pdo_sqlsrv \
&& docker-php-ext-enable sqlsrv pdo_sqlsrv \
&& docker-php-ext-install mbstring bcmath intl zip
# Install Composer
COPY --from=composer:latest /usr/bin/composer /usr/bin/composer
WORKDIR /var/www
Yang paling penting di sini adalah bagian:
pecl install sqlsrv pdo_sqlsrv
Itu yang bikin PHP bisa connect ke SQL Server. Tanpa driver ini, PHP sebenarnya sama sekali gak ngerti cara komunikasi sama SQL Server, meskipun secara teori Laravel udah support banyak jenis database lewat abstraksi query builder-nya. Driver sqlsrv dan pdo_sqlsrv ini yang jadi jembatan komunikasi level rendah antara PHP dan SQL Server, jadi wajib banget ada sebelum lanjut ke step berikutnya.

2. Buat File docker-compose.yml
Sekarang kita bikin docker compose supaya container bisa langsung jalan.
Buat file dengan nama docker-compose.ym.:
Isi dengan konfigurasi berikut:
version: '3.8'
services:
app:
build:
context: .
dockerfile: Dockerfile
container_name: laravel_app
restart: unless-stopped
working_dir: /var/www
volumes:
- "D:/PROJECT/api-laravel:/var/www"
ports:
- "8000:8000"
command: php artisan serve --host=0.0.0.0 --port=8000
Penjelasan singkat:
- volumes folder project Laravel di komputer kamu
- port 8000 akses Laravel dari browser
- command artisan serve menjalankan Laravel server
Nanti Laravel bisa diakses lewat:
http://localhost:8000

3. Download Laravel 12
Sekarang download Laravel.
Cara paling gampang:
- Download Laravel dari Github atau via Composer
- Extract project Laravel
- Simpan di folder yang sama dengan Dockerfile dan docker-compose.yml
Contoh struktur folder:
project-laravel
│
├── Dockerfile
├── docker-compose.yml
├── app
├── bootstrap
├── config
├── database
├── routes
└── vendor
Kalau sudah rapi seperti ini, kita bisa lanjut build Docker.
4. Build dan Jalankan Docker
Sekarang jalankan perintah berikut di terminal:
docker compose up --build
Docker akan melakukan beberapa hal:
- Build image PHP
- Install driver SQL Server
- Install extension PHP
- Menjalankan container Laravel
Tunggu sampai prosesnya selesai.
Kalau sukses, Laravel bisa diakses di:
http://localhost:8000
Mantap, berarti Laravel kamu sudah jalan di Docker.

5. Konfigurasi Database SQL Server
Sekarang kita hubungkan Laravel ke SQL Server.
Buka file:
config/database.php
Tambahkan atau pastikan konfigurasi sqlsrv seperti ini:
'sqlsrv' => [
'driver' => 'sqlsrv',
'url' => env('DB_URL'),
'host' => env('DB_HOST', 'localhost'),
'port' => env('DB_PORT', '1433'),
'database' => env('DB_DATABASE', 'laravel'),
'username' => env('DB_USERNAME', 'root'),
'password' => env('DB_PASSWORD', ''),
'charset' => env('DB_CHARSET', 'utf8'),
'prefix' => '',
'prefix_indexes' => true,
// 'encrypt' => env('DB_ENCRYPT', 'yes'),
'trust_server_certificate' => env('DB_TRUST_SERVER_CERTIFICATE', 'false'),
],

6. Edit File .env
Sekarang buka file .env.
Ubah konfigurasi database jadi seperti ini:
DB_CONNECTION=sqlsrv
DB_HOST=127.0.0.1
DB_PORT=1433
DB_DATABASE=laravel
DB_USERNAME=sa
DB_PASSWORD=password
7. Test Koneksi Database
Untuk memastikan Laravel berhasil connect ke SQL Server, jalankan:
php artisan migrate
Kalau tidak ada error, berarti koneksi database sudah berhasil.
Laravel sekarang sudah bisa:
Query SQL Server
Migration
Eloquent ORM
API development
Kendala yang Sering Muncul
- Error “could not find driver” pas migrate
Biasanya driver sqlsrv/pdo_sqlsrv belum keinstall sukses di image. Cek lagi log pasdocker compose up --build, pastikan gak ada error di step install driver. - Connection timeout ke SQL Server
Kalau SQL Server-nya jalan di luar container (misalnya di Windows host), pastikanDB_HOSTdi.envdiisihost.docker.internal, bukan127.0.0.1, karena127.0.0.1di dalam container itu ngarah ke container itu sendiri, bukan ke host. - Login failed for user
Cek ulang username dan password SQL Server di.env, dan pastikan SQL Server Authentication mode-nya udah diaktifkan (bukan cuma Windows Authentication), soalnya default-nya kadang cuma Windows Authentication doang. - SSL/TLS certificate error
Kalau muncul error terkait certificate, coba setDB_TRUST_SERVER_CERTIFICATE=truedi.envbuat development lokal (jangan dipakai di production tanpa certificate yang valid).
Penutup
Nah bro, sekarang kamu sudah tahu cara bikin project Laravel 12 dengan database SQL Server menggunakan Docker.
Dengan setup seperti ini:
Environment lebih rapi
Install driver SQL Server jadi gampang
Laravel bisa langsung jalan di container
Metode ini juga enak banget buat development team karena semua orang bisa pakai environment yang sama tanpa ribet install manual.
Semoga tutorial santai ini bisa bantu kamu yang lagi setup Laravel + SQL Server. Happy coding bro.


























