Postgresql 17
Berikut adalah panduan lengkap dan to-the-point untuk menginstal PostgreSQL 17 di Ubuntu 24.04 dan mengkonfigurasinya agar siap digunakan dengan Laravel 12.
Laravel 12 kemungkinan besar berjalan optimal di PHP 8.3 atau PHP 8.4, jadi panduan ini juga mencakup instalasi driver PHP yang sesuai.
1. Menambahkan Repository PostgreSQL Resmi
Ubuntu 24.04 mungkin belum menyertakan PostgreSQL 17 secara default di repository utamanya. Kita akan menggunakan repository resmi PostgreSQL (PGDG) untuk mendapatkan versi terbaru dan stabil.
# 1. Install dependensi yang diperlukan
sudo apt update
sudo apt install curl gpg gnupg2 software-properties-common apt-transport-https lsb-release ca-certificates
# 2. Tambahkan GPG Key resmi PostgreSQL
curl -fsSL https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/postgresql.gpg
wget -qO- https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo tee /etc/apt/trusted.gpg.d/postgresql.asc
# 3. Tambahkan repository PostgreSQL ke source list
echo "deb [arch=$(dpkg --print-architecture)] http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" | sudo tee /etc/apt/sources.list.d/pgdg.list2. Install PostgreSQL 17 dan Ekstensi PHP
Setelah repository ditambahkan, update daftar paket dan install PostgreSQL 17 beserta driver PHP-nya.
# 1. Update package list
sudo apt update
# 2. Install PostgreSQL 17
sudo apt install postgresql-17 postgresql-client-17 -y
# 3. Install Driver PHP untuk PostgreSQL (Asumsi menggunakan PHP 8.3 untuk Laravel 12)
# Jika menggunakan PHP 8.4, ganti php8.3-pgsql menjadi php8.4-pgsql
sudo apt install php8.3-pgsqlVerifikasi: Pastikan service berjalan dengan perintah
systemctl status postgresql.
3. Membuat User dan Database untuk Laravel
PostgreSQL menggunakan konsep "Role". Kita perlu membuat user khusus untuk aplikasi Laravel agar tidak menggunakan user postgres (root-nya database) demi keamanan.
Masuk ke shell PostgreSQL:
sudo -u postgres psqlJalankan perintah SQL berikut di dalam shell (ganti password_rahasia dengan password aman Anda):
-- 1. Membuat Database
CREATE DATABASE app_laravel;
-- 2. Membuat User baru
CREATE USER akhmad WITH PASSWORD 'password_rahasia';
-- 3. Memberikan hak akses database ke user tersebut
GRANT ALL PRIVILEGES ON DATABASE app_laravel TO akhmad;
-- 4. (Opsional tapi Penting untuk Laravel 12/Postgres 15+)
-- Berikan izin user untuk membuat tabel di schema public
ALTER DATABASE app_laravel OWNER TO akhmad;
\c app_laravel
GRANT ALL ON SCHEMA public TO akhmad;
-- 5. Keluar
\q4. Konfigurasi Autentikasi (Opsional tapi Disarankan)
Secara default, PostgreSQL di Linux sering menggunakan autentikasi peer (login berdasarkan user OS). Agar Laravel bisa login menggunakan password, pastikan metode autentikasinya adalah scram-sha-256 atau md5.
Edit file konfigurasi:
sudo nano /etc/postgresql/17/main/pg_hba.confCari baris yang mengatur koneksi lokal IPv4/IPv6 dan ubah peer menjadi scram-sha-256 (atau md5):
# TYPE DATABASE USER ADDRESS METHOD
local all all scram-sha-256
host all all 127.0.0.1/32 scram-sha-256
host all all ::1/128 scram-sha-256Restart service setelah perubahan:
sudo systemctl restart postgresql5. Konfigurasi di Laravel 12 (.env)
Buka file .env di project Laravel Anda dan sesuaikan bagian database:
DB_CONNECTION=pgsql
DB_HOST=127.0.0.1
DB_PORT=5432
DB_DATABASE=app_laravel
DB_USERNAME=akhmad
DB_PASSWORD=password_rahasia6. Testing Koneksi
Terakhir, jalankan perintah migrasi dari terminal project Laravel Anda untuk memastikan koneksi berhasil:
php artisan migrateJika berhasil, tabel-tabel bawaan Laravel akan terbuat di database app_laravel.