Apache XAMPP tidak jalan karena port 80 atau 443 dipakai
Klik Start di XAMPP, lalu muncul “Problem detected! Port 80 in use by "Unable to open process" with PID 4! Apache WILL NOT start without the configured ports free!” Apache hanya bisa jalan kalau port 80 dan 443 sedang tidak dipakai program lain. Di Windows, biasanya yang memakainya adalah IIS atau layanan Windows lain di balik proses System, Skype versi lama, layanan shared VM milik VMware, atau stack lokal lain. Panduan ini menunjukkan cara mencari pelakunya, membebaskan port atau memindahkan Apache, dan apa yang perlu dicek kalau Apache masih berhenti.
- Platform
- Windows 10/11 dengan XAMPP di C:\xampp
- Waktu
- Sekitar 10 menit
- Yang Anda perlukan
- XAMPP terpasang di C:\xampp (sesuaikan path kalau lokasinya lain)
- Command Prompt atau PowerShell yang dijalankan sebagai administrator, untuk melihat dan menghentikan layanan
Path XAMPP mengikuti instalasi default di C:\xampp. Detail EnvKit diperiksa pada versi 0.33.0-beta.56 (2026-10-29). EnvKit tersedia dalam Bahasa Indonesia; nama menu ditulis seperti di antarmuka Indonesia, dengan nama bahasa Inggrisnya di dalam kurung.
Langkah 1: Baca pesan error Apache
XAMPP Control Panel menampilkan baris “Problem detected!” berisi nomor port dan PID (ID proses) program yang memakainya. Kalau yang muncul hanya “Apache shutdown unexpectedly”, klik Logs di samping Apache lalu buka
error.log(ada diC:\xampp\apache\logs). Bentrok port terlihat seperti ini:(OS 10048)Only one usage of each socket address (protocol/network address/port) is normally permitted. : AH00072: make_sock: could not bind to address [::]:80.Kalau barisnya berakhir dengan
:443, berarti port HTTPS yang terpakai. Apache butuh dua-duanya, jadi cek keduanya.Langkah 2: Cari proses yang memakai port
Klik Netstat di Control Panel, atau jalankan perintah di bawah.
OwningProcessadalah PID-nya, danGet-Processmenampilkan nama programnya. Di Command Prompt,netstat -ano | findstr LISTENINGmemberi hasil yang sama dengan PID di kolom terakhir, lalutasklist /FI "PID eq 1234"menyebutkan nama programnya.PowerShell Get-NetTCPConnection -LocalPort 80,443 -State Listen -ErrorAction SilentlyContinue | Select-Object LocalAddress, LocalPort, OwningProcess Get-Process -Id 1234 # angka OwningProcess dari perintah di atasLangkah 3: PID 4 (System): layanan Windows lewat HTTP.sys
PID 4 adalah Windows sendiri. Port itu dipegang atas nama layanan yang memakai HTTP.sys, komponen web bawaan Windows, jadi tidak ada jendela program yang bisa ditutup. Di prompt administrator,
netsh http show servicestatemenampilkan URL yang terdaftar beserta proses di baliknya.Yang paling sering: IIS (World Wide Web Publishing Service,
W3SVC), Web Deployment Agent Service (MsDepSvc), SQL Server Reporting Services dan BranchCache. Hentikan yang tidak Anda pakai dan ubah ke Manual supaya tidak jalan lagi setelah restart. Kalau Anda tidak pernah memakai IIS, menghapusnya lewat Turn Windows features on or off juga bisa.Command Prompt (administrator) netsh http show servicestate net stop W3SVC sc config W3SVC start= demandLangkah 4: Program biasa: Skype, VMware atau stack lain
Skype desktop versi lama memakai port 80 dan 443 sebagai cadangan. Di versi itu, hilangkan centang “Use port 80 and 443 for additional incoming connections” di Tools → Options → Advanced → Connection.
Di VMware Workstation versi yang masih punya fitur shared VM, layanan VMware Workstation Server memakai port 443. Matikan berbagi VM di Edit → Preferences → Shared VMs, atau ubah layanan itu ke Manual.
Penyebab lain yang sering muncul adalah stack lokal kedua: WampServer, Laragon, Apache atau nginx lain, atau Docker Desktop yang membuka container di port 80. Hentikan dulu sebelum menjalankan XAMPP, karena dua web server tidak bisa memakai port yang sama.
Langkah 5: Atau pindahkan Apache ke port lain
Kalau program lain itu tetap harus jalan, beri Apache port yang berbeda. Klik Config di samping Apache dan buka
httpd.conf: gantiListen 80menjadiListen 8080danServerName localhost:80menjadiServerName localhost:8080. Dihttpd-ssl.conf(menu yang sama), gantiListen 443,<VirtualHost _default_:443>dan barisServerNameke 4433.Setelah itu klik Config di kanan atas Control Panel, buka Service and Port Settings, lalu isi angka yang sama di tab Apache supaya panel mengecek port yang benar. Situs Anda sekarang ada di http://localhost:8080.
C:\xampp\apache\conf\httpd.conf Listen 8080 ServerName localhost:8080Langkah 6: Jalankan Apache dan cek konfigurasinya
Klik Start di samping Apache. Kalau masih berhenti, tes konfigurasinya.
Syntax OKberarti file konfigurasi tidak bermasalah dan penyebabnya ada dierror.log; selain itu, pesan yang keluar menyebutkan file dan baris yang perlu diperbaiki.Command Prompt C:\xampp\apache\bin\httpd.exe -tLangkah 7: Atau jalankan proyek Anda di EnvKit
EnvKit adalah aplikasi gratis yang menjalankan nginx atau Apache, PHP, MySQL atau MariaDB dan phpMyAdmin, dan menyajikan setiap proyek di https://<folder>.test dengan sertifikat tepercaya. EnvKit juga butuh port 80 dan 443, jadi hentikan dulu Apache dan MySQL di XAMPP sebelum menginstalnya.
Atau instal dari terminalirm https://envkit.net/install.ps1?c=id-guide | iexLangkah 8: Yang dilakukan EnvKit saat port terpakai
EnvKit tidak menjalankan web server-nya di port yang sedang dipegang program lain. Pesan error-nya menyebutkan nama program dan PID-nya; untuk PID 4, pesannya menjelaskan bahwa HTTP.sys ada di baliknya dan menyarankan
netsh http show servicestate. Saat pengaturan awal, kasus yang sama muncul sebagai “Program lain sedang memakai port 80 atau 443”.Di halaman web server di Layanan (Services), Diagnosis & perbaiki (Diagnose & repair) menyebutkan proses yang memakai port dan, setelah Anda setujui, menghentikannya lalu menjalankan web server lagi. Kalau program lain itu ingin tetap dipakai, ganti port web server di Pengaturan → Port (Settings → Ports).
Jika ada yang tidak berjalan
- Port 80 sudah bebas, tapi Apache masih berhenti
- Cek juga port 443, lalu baca
error.log. Salah ketik dihttpd.confatau file sertifikat yang hilang dihttpd-ssl.confjuga membuat Apache berhenti, danhttpd.exe -tmenyebutkan file serta barisnya. - Port terpakai lagi setiap kali Windows restart
- Layanan yang memakainya diatur untuk jalan otomatis. Ubah ke Manual atau Disabled di services.msc (atau dengan
sc config <nama> start= demand) daripada menghentikannya setiap kali. - Link rusak setelah Apache pindah ke 8080
- Aplikasi yang menyimpan alamatnya sendiri masih memakai alamat lama. Untuk WordPress, ubah
siteurldanhomedi tabelwp_options(atauWP_HOMEdanWP_SITEURLdiwp-config.php) ke alamat dengan:8080.