XAMPP - Port 80 digunakan oleh "Tidak dapat membuka proses" dengan PID 4! 12

182

Saya telah mencoba mencari cara untuk memperbaiki masalah ini selama dua hari. Saya baru mengenal hal semacam ini sehingga saya akan sangat menghargainya jika seseorang dapat memberi tahu saya cara memperbaikinya.

Saya sudah mencoba menghapus skype tapi itu tidak berhasil, saya sudah mencoba mematikan world wide web off, IIS mati sepertinya tidak ada yang berhasil.

12:51:22 PM  [Apache]   Problem detected!
12:51:22 PM  [Apache]   Port 80 in use by "Unable to open process" with PID 4!
12:51:22 PM  [Apache]   Apache WILL NOT start without the configured ports free!
12:51:22 PM  [Apache]   You need to uninstall/disable/reconfigure the blocking application
12:51:22 PM  [Apache]   or reconfigure Apache and the Control Panel to listen on a different port
pengguna3097839
sumber
2
Tidak, saya harus mengetiknya di sini, tidak semua orang tahu segalanya tentang komputer. Saya meminta bantuan, saya telah mencarinya di Google dan semua yang dikatakan orang tidak berfungsi.
user3097839
Ah, ini lebih masuk akal sekarang. Coba petri.co.il/quickly_find_local_open_ports.htm untuk mencari tahu siapa yang memblokir port 80
Pekka
9
@Pekka Saya telah bekerja dengan komputer sejak tidak lama setelah saya berhenti buang air kecil di popok, saya sudah menjadi programmer juga selama hampir satu dekade, dan saya mencari pertanyaan ini di Google dan syukurlah karena orang-orang yang bertanya dan menjawab pertanyaan ini GUNAKAN ini situs, saya dengan cepat menemukan jawabannya. Meskipun ini mungkin harus dimigrasikan ke pengguna super, mendesak orang dan membuat mereka merasa bodoh karena mengajukan pertanyaan yang sah bertentangan dengan bagaimana fungsi komunitas ini. Saya sarankan Anda menemukan beberapa tujuan lain dalam hidup.
3
Ya saya tidak yakin di mana hasil ini dihasilkan selama pencarian Anda, tetapi dalam pencarian saya, terima kasih untuk utas ini, ini adalah daftar teratas. Itulah tepatnya yang ingin dicapai oleh komunitas ini, basis pengetahuan yang sangat terlihat dan terkenal untuk hal-hal semacam ini. Jadi, sementara saya menghargai apa yang Anda katakan, pada kenyataannya, misi tercapai berkat OP.
@ TechnikEmpire tetapi fakta bahwa pertanyaan ini sekarang adalah hasil Google peringkat tinggi adalah bagian dari masalah, bukan solusinya. Hasil Google sudah berisi jawaban yang bagus sebelum pertanyaan ini muncul - saya memeriksa sebelum membuat komentar, saya selalu melakukannya. Jawaban-jawaban itu mungkin sekarang telah didorong oleh pertanyaan ini, karena pengaruh SO yang sangat besar dengan Google. Lihat juga diskusi di sini: meta.stackexchange.com/questions/160565/…
Pekka

Jawaban:

354
  1. Buka prompt CMD sebagai administrator dan jalankan perintah berikut:

    net stop was /y
    
  2. Buka kotak dialog Run (tekan Win+ R), lalu ketik:services.msc

    Kemudian cari Layanan World Wide Web Publishing ( Layanan WWW-Publishing) dan Layanan Web Deployment Agent dan hentikan mereka. Anda juga harus menonaktifkannya.

  3. Mulai Apache lagi dengan XAMPP :)

Tautan Ref: https://www.sitepoint.com/unblock-port-80-on-windows-run-apache/

Vo Quoc Cuong
sumber
15
Saya tidak dapat menemukan world wide web
Mohammad Kermani
4
Cara lain untuk mendapatkan akses ke layanan - pergi keControl Panel > System and Security > Administrative tools > Services
Al.G.
28
"SQL Server Reporting Service (MSSQLSERVER)" juga menggunakan port 80 dan karena itu harus dihentikan jika MS-SQL sever di komputer Anda.
johnkarka
1
Adakah yang tahu mengapa ini bisa terjadi? Apakah Windows douchey, atau seseorang meretas mesin saya?
Stan Quinn
5
Saya mematikan Layanan Penerbitan Web Wide Dunia dan masalahnya teratasi! Terima kasih.
Mike Stratton
139

Pilihan lain yang sangat mudah adalah dengan hanya mengatur Apache untuk mendengarkan pada port yang berbeda. Ini dapat dilakukan dengan mengklik tombol "Config" pada baris yang sama dengan modul "Apache", pilih file "httpd.conf" di dropdown, lalu ubah baris "Listen 80" menjadi "Listen 8080". Simpan file dan tutup.

Sekarang ia menghindari Port 80 dan menggunakan Port 8080 sebagai gantinya tanpa masalah. Satu-satunya hal tambahan yang perlu Anda lakukan adalah memastikan untuk localhost:8080masuk ke browser sehingga browser tahu untuk melihat Port 8080. Jika tidak, default ke Port 80 dan tidak akan menemukan situs lokal Anda.

Ini juga akan mengharuskan Anda untuk me-restart Apache agar perubahan diterapkan.

Voila! Tetap.

gtr1971
sumber
Saya mendapatkan kekuatan yang ditingkatkan ke Windows 10 dan itu merusak instalasi XAMP saya, jawaban ini memperbaikinya untuk saya. Terima kasih!
Ian
Ini bekerja untuk saya juga, kecuali saya keluar dari segalanya, mengklik xampp_start C:/xamppdan kemudian mengubahnya ke port 81. 8080 tidak bekerja untuk saya.
user3553260
1
Saya merekomendasikan solusi Anda. Dalam kasus saya, saya perlu mengembangkan ASP .NET Application dan PHP. Jika saya berhenti World Wide Web Publishing Servicesaya tidak dapat bekerja pada aplikasi ASP saya. SO mengubah port adalah solusi bagi saya. Terima kasih!
mihkov
3
Selain file httpd.conf, Anda mungkin juga perlu mengubah port dari "Config"> "Layanan dan Pengaturan Port". Pada tab "Apache", ubah nilai "Main Port" ke port baru
Ian A
42

Di httpd.conf ubah baris berikut dan kemudian restart aplikasi:

  • Listen 80 untuk Listen 8080
  • ServerName localhost:80 untuk ServerName localhost:8080

Ketika Anda menekan "Mulai" aplikasi masih dapat mengatakan bahwa Anda memiliki kesalahan seperti "Port 80 digunakan oleh" Tidak dapat membuka proses "dengan PID ..." tetapi masih akan berfungsi.

Jika kesalahan termasuk "Port 443 digunakan oleh" Tidak dapat membuka proses "dengan PID ..." Anda harus mengubah httpd.conf dan httpd-ssl.conf.

Dalam perubahan httpd-ssl.conf:

  • Listen 443 untuk Listen 4433
  • <VirtualHost _default_:443> untuk <VirtualHost _default_:4433>
  • ServerName www.example.com:443 untuk ServerName www.example.com:4433
Ogglas
sumber
Saya akhirnya harus melakukan ini pada masalah saya. kebaikan! PID itu oleh sistem.
mzimhle
42

Diambil dari artikel ini :

  1. Buka perintah jalankan Anda dan masukkan:

    netstat -o -n -a | findstr 0.0:80

Nomor terakhir di sini adalah ID proses yang menggunakannya. Ini paling sering adalah IIS atau web lain yang berhubungan dengan layanan dan mudah untuk diselesaikan, tetapi sering kali (sangat sering kelihatannya mencari-cari di google) tampaknya PID 4 - yang menurut Windows Task Manager adalah NT Kernel dan Sistem. Tidak sangat membantu mengingat membunuh ini akan menghasilkan layar biru kematian.

Hal yang memonopoli port 80 tidak ada hubungannya dengan IIS atau web apa pun, itu SQL Server Reporting Services. Matikan segala sesuatu yang menyerupai Layanan SQL Server dan mulai Apache lagi, tidak perlu reboot.

Jadi masalah dengan PID 4 mendengarkan port 80? Periksa layanan SQL Anda dan matikan.

UPDATE - Komentar dari @sangam:

Bekerja pada kesempatan. Dalam kasus saya, ternyata layanan pelaporan SQL server. Saya menghentikan layanan untuk semua instal yang terinstal, dan itu berhasil (tanpa mesin reboot).

chridam
sumber
7
Bekerja pada kesempatan. Dalam kasus saya, ternyata layanan pelaporan SQL server. Saya menghentikan layanan untuk semua instal yang terinstal, dan itu berhasil (tanpa mesin reboot). Terima kasih.
sangam
1
Sangat membantu .. sebelum ini, saya mengubah port skype. dan penutupan layanan sql membantu saya banyak. Terima kasih banyak
Waqar
2
akhirnya, dalam kasus saya itu juga MSSQL
Tom Sarduy
1
menghentikan SQL Server Reporting Services (MSSQLSERVER) bekerja untuk saya
Ganggu
1
Terima kasih, inilah jawabannya untuk saya.
balron
34

Jadi saya menghadapi masalah yang sama ketika mencoba memulai layanan Apache dan saya ingin berbagi solusi saya dengan Anda. Berikut adalah beberapa catatan tentang layanan atau program yang mungkin menggunakan port 80:

  1. Skype : Skype menggunakan port 80/443 secara default. Anda dapat mengubah Tools -> Options -> Advanced -> Connectionsdan menonaktifkan kotak centang "gunakan port 80 dan 443 untuk koneksi masuk tambahan" .

  2. IIS : IIS menggunakan port 80 sebagai default sehingga Anda harus mematikannya. Anda dapat menggunakan dua perintah berikut: net stop w3svc, net stop iisadmin.

  3. Layanan Pelaporan SQL Server : Anda harus menghentikan layanan ini karena mungkin memerlukan port 80 jika IIS tidak berjalan. Pergi ke layanan lokal dan hentikan.

  4. VMware Workstation : Jika Anda menjalankan VMware Workstation, Anda harus menghentikan server VMware Workstation - port 443 juga.

Opsi-opsi ini sangat membantu saya dan saya dapat memulai layanan Apache tanpa kesalahan.

Pilihan lainnya adalah mengubah port Apache mendengarkan dari httpd.conf dan mengatur nomor port lain.

Semoga solusi ini membantu siapa saja yang menghadapi masalah yang sama lagi.

Peter T.
sumber
4
Milik saya adalah layanan pelaporan SQL Server. Terima kasih!
Jayanga Kaushalya
menghentikan w3svc memperbaiki masalah saya di windows 10. Jawaban yang bagus.
Nox
Bagaimana Anda bisa tahu layanan mana yang menggunakan port 80? (Windows 10)
Chris Nielsen
Bagi saya ini bekerja "IIS: IIS menggunakan port 80 menjadi default sehingga Anda perlu mematikannya. Anda dapat menggunakan dua perintah berikut: net stop w3svc, net stop iisadmin"
Ravindra Singh
33

Anda mungkin harus menghentikan "Layanan Agen Penyebaran Web"

Tekan Win + R dan ketik services.msc

Klik kanan pada Layanan Agen Penyebaran Web dan pilih "Stop"

Mulai ulang XAMPP

Juga setelah mengklik dua kali "Layanan Agen Penempatan Web" Anda dapat membuat jenis Startup menjadi Manual, sehingga "Layanan Agen Penempatan Web" tidak akan mulai secara otomatis

Stephen Burrows
sumber
1
Apakah mungkin ada masalah dengan menonaktifkan layanan itu?
Muhammad Muazzam
6
  1. Buka Task Manager (Ctrl + Alt + Delete).
  2. Buka tab "Detail".
  3. Urutkan berdasarkan nomor PID.
  4. Akhiri proses yang menggunakan nomor PID yang ditunjukkan dalam kesalahan.
  5. Mulai ulang XAMPP.
wmcnally
sumber
2
Dalam kasus saya, itu adalah sistem yang menggunakan PID4. Karena itu ini bisa berbahaya.
Fusion
bekerja untuk saya karena port digunakan oleh server saya yang lain. Dan pertimbangkan juga komentar @ Fusion
Varshaan
6

Karena ada komentar oleh @johnkarka pada pertanyaan, port ini juga digunakan oleh layanan pelaporan SQL Server. Setelah menghentikan ini, Apache mulai baik-baik saja.

  1. Pergi ke "Manajer Konfigurasi SQL Server"
  2. Klik pada "Layanan Pelaporan SQL Server" dan hentikan

masukkan deskripsi gambar di sini

Yang lucu adalah IIS bekerja dengan baik dalam konfigurasi yang sama tetapi tidak Apache, harus menghentikan layanan Pelaporan SQL untuk membuatnya berfungsi pada port default (80).

Hammad Khan
sumber
4

Apa yang berhasil bagi saya adalah menghentikan Layanan Informasi Internet (IIS). Jika Anda menggunakan Windows 7, klik tombol Start Anda dan di kotak pencarian Anda, ketik "iis". Klik pada "Manajer Layanan Informasi Internet (IIS)". Saat jendela muncul, dan dengan anggapan Anda tidak memiliki ikon yang dipilih, Anda seharusnya bisa mengklik Stop di panel tindakan kanan. Apache XAMPP saya mulai tepat. Semoga semuanya berhasil untuk Anda.

midoriha_senpai
sumber
3

Di windows 10, untuk membebaskan port 80:

dalam kasus saya, saya membuka "Layanan" dari "Cari Windows" (di sudut kiri pada layar), lalu hentikan semua layanan SQL server MSSQLSERVER dan berfungsi lagi

NP
sumber
3

Saya punya masalah ini juga dan menghentikan layanan menggunakan port 80 tidak membantu. Saya mengatasinya dengan mengikuti prosedur ini (ditemukan pada papan Perancis ):

  1. Luncurkan RegEdit
  2. HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ HTTP
  3. Ubah nilai "mulai" ke 4 (dinonaktifkan)
  4. Nyalakan ulang komputer Anda

Tidak yakin bagaimana ini memengaruhi layanan lain, tetapi ini memecahkan masalah secara permanen dan sejauh ini saya tidak melihat masalah apa pun.

Menggunakan Windows 10.

Vard
sumber
2

Jika Anda telah SQLServer Reporting Services berjalan secara lokal maka Anda harus menghentikannya juga ..

Senthil
sumber
2

Saya memiliki masalah yang sama, tetapi dalam kasus saya Apache sudah berjalan dan untuk beberapa alasan alat konfigurasi XAMPP tidak menunjukkan itu. Itu terjadi setelah saya memulai XAMPP untuk pertama kalinya setelah instalasi. Setelah menabrak instance Apache lainnya semua baik-baik saja dan port 80 dan 443 bebas lagi.

Jadi sebelum membuat perubahan pada systeem Anda, pastikan sesuatu yang sejelas di atas tidak terjadi.

magnetronnie
sumber
2

"SQL Server Reporting Service" menyebabkan masalah di sistem saya, setelah menghentikannya, Apache mulai bekerja dengan baik

yadavr
sumber
2

Saya memiliki masalah yang sama, saya memecahkan masalah, hanya dinonaktifkan

"Layanan BranchCache" dalam layanan.

Entah bagaimana windows diperbarui, layanan ini dipicu pada startup, dan menggunakan 80 port. Ketika Anda memeriksa melalui netstat Anda bisa melihat sistem digunakan ini tetapi tidak bisa memahami layanan mana yang digunakan.

Günay Gültekin
sumber
1
Menonaktifkan layanan ini setelah setiap pembaruan windows 10 menyelesaikan masalah
Matt
2

Setelah mengubah port utama 80 menjadi 8080 Anda harus memperbarui port di panel kontrol: masukkan deskripsi gambar di sini Kemudian klik di sini: masukkan deskripsi gambar di sini Dan di sini: masukkan deskripsi gambar di sini Kemudian simpan dan mulai ulang.

Zeke
sumber
1

Klik layanan pada panel kontrol Xampp (nama file adalah services.msc, info tambahan).

Pertama, cari IIS, jika sedang berjalan. Hentikan (hentikan opsi layanan ini di sebelah kiri setelah mengklik nama layanan.) Kemudian, ini adalah masalah utama, Carilah Layanan penyebaran Web (bukan nama yang tepat meskipun memiliki penyebaran Web di awal.). Hentikan layanan ini juga. Coba lagi dan Apache akan berfungsi.

Jika Anda menjalankan Skype, keluarlah juga, jalankan Apache, lalu luncurkan Skype

ytpillai
sumber
Biasanya, Skype menghabiskan port 80 tetapi lebih pintar dari XAMPP dan akan menggunakan port yang berbeda setelah menyadari bahwa 80 milik Apache Server
ytpillai
1

Saya memiliki masalah yang sama, ketika saya menginstal MS WebMatrix, IIS Server diblokir port 80 yang menjalankan XAMPP. Saya mencoba menemukan Layanan Penerbitan World Wide Web dan menghentikannya, tetapi tidak dapat menemukannya pada daftar. Cara terbaik adalah mengubah port.

Silakan merujuk dengan ref tautan ini
.

rango
sumber
1

Bagi mereka yang memiliki ASP.NET, C # atau memiliki pengguna SQL Server, Jika Anda menggunakan SQlServer ATAU Visual Studio Port Anda mungkin menemui. Hal termudah yang mungkin ingin Anda lakukan adalah pada Command> servies.msc dan kemudian temukan Layanan Pelaporan SQl Server dan kemudian hentikan.

Sumanstm21
sumber
0

jika layanannya adalah http.sys

Anda perlu mengubah alamat IP yang diikat untuk http.sys

http netsh add iplisten ipaddress = ::

Bekerja dengan baik tanpa me-restart os.

mik3fly-4steri5k
sumber
0

Layanan Agen Penyebaran Web digunakan dengan WebMatrix dan merupakan penyebab kesengsaraan saya. Ini juga dapat didistribusikan dengan aplikasi lain yang diinstal menggunakan Pemasang Platform Web Microsoft.

Copot pemasangannya memecahkan masalah saya!

brunodotcom
sumber
Tidak, ubah saja port yang didengarkan server.
rango
0

Bagi saya biasanya berfungsi: - Matikan Skype - Matikan semua proses SQL Server yang ditampilkan di services.msc - Matikan World Wide Web Publishing di services.msc

Iwona Kubowicz
sumber
0

Biasanya berfungsi setelah Anda menghentikan IIS Server dan Skype

NA
sumber
0

XAMPP - Port 80 digunakan oleh "Tidak dapat membuka proses" dengan PID 4! 12

jalankan komentar di cmd tasklist

dan temukan PID dan nama proses yang terkait dengan task manager window yang sekarang terbuka ini

Anda juga dapat membuka window task manager dengan menggunakan CTRL + ALT + DEL

sekarang klik pada tab proses dan temukan nama yang menggunakan PID dan klik kanan pada itu dan proses akhir

sekarang kembali restart xampp

Surendra Kumar Ahir
sumber
0

Saya memiliki masalah yang sama. Setelah beberapa googling tiba ke halaman ini. Karena saya kira kesalahan ini mungkin memiliki berbagai alasan, jadi dengarkan pengalaman saya:

Log garis merah xampp:

12:53:54 PM  [Apache] Problem detected!
12:53:54 PM  [Apache]   Port 443 in use by "Unable to open process" with PID 3908!
...

Akhirnya ternyata saya memiliki baris kode ini dalam kode php saya:

$res = file_get_contents("http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]");

Tujuan dari kode ini adalah untuk mendapatkan mirror dari hasil php dari suatu tempat di server saya. Tapi itu hanya terhenti dalam satu lingkaran yang mendapatkan kontennya sendiri!

Saya memperbaiki kode:

$res = file_get_contents(str_replace("my_uri.php" , "mirror_uri.php" , "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]"));

Lalu saya restart apache ... dan kesalahan apache itu tidak pernah terjadi lagi.

Jadi kadang-kadang mencari kemungkinan poin penghentian dalam kode Anda adalah pendekatan yang baik.

Hossein Khalesi
sumber
0

Di Ubuntu secara default, sistem tidak akan memungkinkan Anda untuk menempati port istimewa [0 hingga 1023], selain menentukan port sebagai 80, Anda perlu menjalankan XAMP dengan sudo.

Arun Joshla
sumber
-1

Saya menulis ini, karena saya tidak dapat menemukan jawaban untuk pertanyaan yang sama. Dalam kasus saya PID adalah 2484.

  1. Anda harus menemukan proses atau layanan dengan PID ini: buka cmd (di Windows) dan tulis:

    tasklist
    
  2. Temukan PID Anda dalam daftar ini dan baca nama proses atau layanan.

  3. Sekarang Anda dapat mematikan ini menggunakan Task Manager

  4. temukan nama ini di daftar Proses

  5. klik Akhiri Proses.

Itu kasus saya. Mungkin Anda harus membuka services.msc dan menghentikan Layanan dengan PID Anda.

Di komputer saya xampp bekerja dengan baik :)

Marcin Bąk
sumber