Skip to content

Public beta — free forever, no account required Download now →

Panduan

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.

  1. 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 di C:\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.

  2. Langkah 2: Cari proses yang memakai port

    Klik Netstat di Control Panel, atau jalankan perintah di bawah. OwningProcess adalah PID-nya, dan Get-Process menampilkan nama programnya. Di Command Prompt, netstat -ano | findstr LISTENING memberi hasil yang sama dengan PID di kolom terakhir, lalu tasklist /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 atas
  3. Langkah 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 servicestate menampilkan 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= demand
  4. Langkah 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.

  5. 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: ganti Listen 80 menjadi Listen 8080 dan ServerName localhost:80 menjadi ServerName localhost:8080. Di httpd-ssl.conf (menu yang sama), ganti Listen 443, <VirtualHost _default_:443> dan baris ServerName ke 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:8080
  6. Langkah 6: Jalankan Apache dan cek konfigurasinya

    Klik Start di samping Apache. Kalau masih berhenti, tes konfigurasinya. Syntax OK berarti file konfigurasi tidak bermasalah dan penyebabnya ada di error.log; selain itu, pesan yang keluar menyebutkan file dan baris yang perlu diperbaiki.

    Command Prompt
    C:\xampp\apache\bin\httpd.exe -t
  7. Langkah 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 terminal
    irm https://envkit.net/install.ps1?c=id-guide | iex
  8. Langkah 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 di httpd.conf atau file sertifikat yang hilang di httpd-ssl.conf juga membuat Apache berhenti, dan httpd.exe -t menyebutkan 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 siteurl dan home di tabel wp_options (atau WP_HOME dan WP_SITEURL di wp-config.php) ke alamat dengan :8080.