Cara Setup Multiple Aplikasi Web PHP di Docker Lokal Tanpa Bentrok Port (2026 Guide)
Akhirnya saya bikin struktur folder baru bernama web-apps yang rapi, pisah per project, pakai port berbeda (misal 8001, 8081), dan tetap bisa akses phpMyAdmin masing-masing.
Tutorial ini hasil pengalaman real: dari folder lama xampp-docker (absensi) sampai project baru presensirapat-gtk. Cocok buat developer lokal yang pakai Docker di Linux (Arch/Manjaro dkk).
Alat yang Dibutuhkan
Docker & Docker Compose terinstall
Folder kerja di
/home/user/web-appsAkses terminal
Langkah 1: Buat Struktur Folder Rapi Buat folder utama supaya semua project terorganisir:
mkdir -p ~/web-apps
cd ~/web-apps
mkdir presensirapat-gtk
cd presensirapat-gtkIni hasilnya:
~/web-apps/absensi→ project lama (rename dari xampp-docker nanti)~/web-apps/presensirapat-gtk→ project baru
Langkah 2: Copy Template Docker dari Project Lama Copy Dockerfile & docker-compose.yml dari project absensi:
cp ~/xampp-docker/Dockerfile .
cp ~/xampp-docker/docker-compose.yml .Langkah 3: Edit docker-compose.yml (Kunci Utama!)
Buka file dengan nano docker-compose.yml, ubah jadi seperti ini (port & nama unik):
version'3.8'
services
php
build.
container_namephp-apache-presensirapat
ports
"8001:80" # Port app baru
volumes
./htdocs:/var/www/html
restartunless-stopped
mariadb
imagemariadb11
container_namemariadb-presensirapat
environment
MYSQL_ROOT_PASSWORDroot123
MYSQL_DATABASEpresensirapat_db
ports
"3307:3306"
volumes
mariadb_presensirapat_data:/var/lib/mysql
phpmyadmin
imagephpmyadminlatest
container_namephpmyadmin-presensirapat
environment
PMA_HOSTmariadb
PMA_ARBITRARY1 # Penting agar bisa pilih host manual
ports
"8081:80"
depends_on
mariadbLangkah 4: Buat Folder htdocs & Jalankan
mkdir htdocs
docker compose up -d --buildLangkah 5: Akses Hasilnya
Aplikasi kamu → http://localhost:8001
phpMyAdmin → http://localhost:8081 (login root / root123, pilih host: mariadb kalau perlu)
Tips Tambahan
Kalau error port sudah dipakai → cek
sudo netstat -tulnp | grep 8001lalu stop container lama.Mau tanpa port? Nanti tambah Caddy/Traefik di folder proxy terpisah.
Backup rutin:
cp -r htdocs htdocs_backup_$(date +%Y%m%d)
Dengan cara ini, kamu bisa jalankan puluhan aplikasi web PHP di satu komputer tanpa bentrok! Struktur web-apps ini scalable, bersih, dan best practice 2026 untuk developer self-hosted.

Posting Komentar