Apache Server (xampp) ไม่ทำงานบน Windows 10 (พอร์ต 80)


84

ฉันได้ติดตั้งโปรแกรม Windows 10 Insider ทุกอย่างใช้งานได้ยกเว้น Apache พอลองสตาร์ทมันขึ้นว่าพอร์ต 80 ถูกบล็อก มีวิธีปลดบล็อกหรือบอกให้ Apache ใช้พอร์ตอื่นแทนหรือไม่?

ฉันใช้ Windows 7 มาก่อน ฉันมีปัญหากับพอร์ต 80 ด้วย skype แต่ฉันได้ปิดการใช้งาน


PID คือ 4 กระบวนการคือระบบ (NT Kernel & System)
Aloso

ระวังยี่ห้อคอมพิวเตอร์ของคุณ: พบว่าคอมพิวเตอร์ของฉันมีบริการที่กำหนดเองซึ่งขัดขวางพอร์ต ฉันต้องปิดการใช้งานบริการทั้งหมดทีละรายการเพื่อที่จะคิดออกในที่สุด ...
Jean-François Savard


คำตอบ:


208

ฉันมีปัญหาเดียวกันใน windows 10, IIS / 10.0 ใช้พอร์ต 80

วิธีแก้ปัญหานั้น:

  • ค้นหาบริการ "W3SVC"
  • ปิดการใช้งานหรือตั้งค่าเป็น "manual"

ชื่อภาษาฝรั่งเศสคือ: " Service de publication World Wide Web "

ชื่อภาษาอังกฤษคือ: " World Wide Web Publishing Service "

ชื่อภาษาเยอรมันคือ: "WWW-Publishingdienst" - ขอบคุณ @fiffy

ชื่อภาษาโปแลนด์คือ "Usługa publikowania w sieci WWW" - ขอบคุณ @KrzysDan

ชื่อภาษารัสเซียคือ "Службавеб-публикаций" - ขอบคุณ @Kreozot

ชื่อภาษาอิตาลีคือ "Servizio Pubblicazione sul Web" - ขอบคุณ @ Claudio-Venturini

ชื่อEspañolคือ "Servicio de publicación World Wide Web" - ขอบคุณ @ Daniel-Santarriaga

ชื่อภาษาโปรตุเกส (บราซิล) คือ "Serviço de publicação da World Wide Web" - ขอบคุณ @ thiago-born


ทางเลือก:


แก้ไข 07 ต.ค. 2558: สำหรับรายละเอียดเพิ่มเติมโปรดดูคำตอบของ Matthew Stumphy Apache Server (xampp) ไม่ทำงานบน Windows 10 (พอร์ต 80)


2
น่ากลัว ... เป็นปัญหากับ Windows 10 โดยค่าเริ่มต้น
user3658423

3
บริการสามารถใช้งานที่เริ่มต้นจากการเปิดและเลือกAdministrative Tools Servicesหน้าต่างจะปรากฏขึ้นชื่อบริการ แล้วหาคลิกขวาและเลือกWorld Wide Web Publishing Services Propertiesเปลี่ยนStartup Typeเป็นManualและคลิกApply
zgr024

3
ผู้อื่นสามารถค้นหาชื่อที่แสดงได้โดยโทรsc getdisplayname W3SVC
Honza Kuchař

มีเหตุผลใดบ้างที่ W3SVC จะทำงานบนคอมพิวเตอร์ปกติที่ไม่ทำหน้าที่เหมือนเว็บเซิร์ฟเวอร์
DaedalusAlpha

จะดีกว่าไหมหากลบ World Wide Web Publishing Service ออกจากรายการส่วนประกอบของ Windows ที่ติดตั้งไว้ จากนั้นไม่จำเป็นต้องปิดใช้งานบริการเนื่องจากไม่สามารถติดตั้งได้อีกต่อไป
Arnoud Sietsema

31

คำตอบนี้มีไว้เพื่อเป็นภาคผนวกของคำตอบที่ได้รับคะแนนสูงสุดในชุดข้อความนี้โดย paaacman ฉันแค่อยากจะเพิ่มรายละเอียดที่เป็นประโยชน์สำหรับผู้ใช้เช่นตัวฉันเองที่ไม่รู้วิธีการใช้ Windows 10 เช่นกัน

Windows 10 เรียกใช้ IIS (Internet Information Services, ซอฟต์แวร์เว็บเซิร์ฟเวอร์ของ Microsoft) โดยอัตโนมัติระหว่างการเริ่มต้นบนพอร์ต 80 ในการใช้ Apache Server บนพอร์ตนั้นต้องหยุด IIS

การตอบสนองของ paaacman อ้างถึงเซิร์ฟเวอร์ IIS ว่า "W3SVC" หรือ "World Wide Web Publishing Service" ฉันคิดว่านั่นเป็นเพราะ Windows 10 เรียกใช้ IIS เป็นบริการ ในการปิดใช้งานหรือแก้ไขวิธีการทำงานของบริการคุณจำเป็นต้องทราบว่าจะหา "บริการ" ได้จากที่ใดในระบบของคุณ

ผมพบว่าวิธีที่ง่ายที่สุดที่มีคือการคลิกที่ปุ่มค้นหาถัดจากปุ่มเมนูเริ่มต้นในทาสก์บาร์ของ Windows 10 และพิมพ์ "เครื่องมือในการดูแล" คุณสามารถกด return หรือคลิกลิงก์ "Administrative Tools" ที่ Windows ค้นหาให้คุณ

หน้าต่างแผงควบคุมจะเปิดขึ้นพร้อมรายการเครื่องมือ สิ่งที่คุณต้องการคือ " บริการ " ดับเบิลคลิก

อีกหน้าต่างหนึ่งจะเปิดขึ้นชื่อ "บริการ" ค้นหาชื่อ " World Wide Web Publishing Service " ผู้ใช้รายอื่นบางรายในชุดข้อความนี้ได้ระบุสิ่งที่เรียกในภาษาอื่น ๆ หากรายการของคุณไม่ใช่ภาษาอังกฤษ

หากคุณต้องการปิดเซิร์ฟเวอร์ IIS สำหรับเซสชัน Windows นี้โดยอัตโนมัติ แต่ต้องการให้ทำงานโดยอัตโนมัติอีกครั้งในครั้งถัดไปที่คุณเริ่ม Windows ให้คลิกขวาที่ "World Wide Web Publishing Service"และเลือก " Stop " เซิร์ฟเวอร์จะหยุดทำงานและพอร์ต 80 จะได้รับอิสระสำหรับ Apache (หรืออะไรก็ได้ที่คุณต้องการใช้)

หากคุณต้องการป้องกันไม่ให้เซิร์ฟเวอร์ IIS ทำงานโดยอัตโนมัติเมื่อคุณเริ่มระบบ Windows ในอนาคตให้คลิกขวาที่ "World Wide Web Publishing Serivce"และเลือก " Properties " ในหน้าต่างที่ปรากฏขึ้นให้ค้นหารายการแบบเลื่อนลง "ประเภทการเริ่มต้นระบบ"และตั้งค่าเป็น "คู่มือ" คลิก "ใช้" หรือ "ตกลง" เพื่อบันทึกการเปลี่ยนแปลงของคุณ คุณควรจะพร้อม


15

ด้วย Windows 10 IIS จะทำงานบนพอร์ต 80 โดยค่าเริ่มต้นซึ่งสามารถเปลี่ยนแปลงได้:

เรียกappwiz.cpl ใช้Turn Windows features on or offและติดตั้ง IIS Manager Console

เปิดหรือปิดคุณสมบัติของ Windows -> บริการข้อมูลทางอินเทอร์เน็ต -> เครื่องมือการจัดการเว็บ -> คอนโซลการจัดการ IIS

เรียกใช้InetMgr.exeและไปที่ "Connections -> Sites" และเปิดด้วยเมาส์ขวาคลิกเมนูบริบทบนรายการเริ่มต้น "เว็บไซต์เริ่มต้น" ในเมนูบริบทเลือก "การเชื่อมโยง" เพื่อเปิดที่อยู่เซิร์ฟเวอร์และการกำหนดค่าพอร์ต

"Connections -> Sites" -> "Default Website Bindings"

ที่อยู่เซิร์ฟเวอร์และการกำหนดค่าพอร์ต

กำลังเปลี่ยนพอร์ตเริ่มต้นเป็น 8080

https://technet.microsoft.com/library/hh831681.aspx#Site_Bingings


14

ฉันมีปัญหาเดียวกันแน่นอนและแก้ไขได้โดยใช้คำสั่ง folowing จากบรรทัดคำสั่งในฐานะผู้ดูแลระบบ:

1) ก่อนอื่นให้หยุดบริการดังต่อไปนี้

หยุดสุทธิ http / y

2) จากนั้นปิดใช้งานการเริ่มต้น (ไม่บังคับ)

sc config http start = ปิดใช้งาน


นี่เป็นวิธีที่ง่ายที่สุดในการปลดพอร์ต 80 ฉันใช้สิ่งนี้สำหรับเครื่องพเนจร
Mārtiņš Briedis

9

พิมพ์บรรทัดคำสั่ง

netstat -aon | findstr :80

คุณจะเห็น PID ของกระบวนการที่ใช้พอร์ต 80 จากนั้นลองกำหนดค่าแอปนี้ให้ใช้พอร์ตอื่นหรือเพียงแค่ฆ่ามัน

UPDATE: ฉันจะเขียนความคิดเห็นของฉันที่นี่เพื่อให้ชัดเจนยิ่งขึ้น: ตามลิงค์นี้ใน Windows 10 เป็นบริการ MsDepSvc ที่ใช้พอร์ต 80 สำหรับ IIS หรือ Web Matrix 2 หากคุณจะไม่ใช้ IIS หรือ Web Matrix 2 สำหรับการพัฒนาเว็บใด ๆ คุณสามารถลองปิดบริการ

และสำหรับส่วนที่สองของคำถามของคุณคุณสามารถบอกให้ Apache ใช้พอร์ตอื่นได้โดยแก้ไข [Apache folder] /conf/httpd.conf มีสตริง "Listen 80" เปลี่ยน 80 เป็นพอร์ตฟรีที่คุณต้องการและโหลด Apache ใหม่


มันคือระบบ ฉันไม่สามารถฆ่าสิ่งนี้ได้หรือไม่?
Aloso

หลังจาก Googling รวดเร็วฉันพบลิงค์นี้nextofwindows.com/... "... คุณมีบริการนี้ MsDepSvc ทำงานอยู่เบื้องหลังซึ่งครอบครองพอร์ต 80 การแก้ไขด่วนจะหยุดบริการเมื่อคุณไม่ได้วางแผนที่จะใช้ IIS หรือ Web Matrix 2 สำหรับการพัฒนาเว็บใด ๆ และเริ่มบริการ เมื่อจำเป็นหวังว่าจะไขปริศนาบางอย่างที่คุณอาจมีเมื่อคุณสลับระหว่างการใช้ Web Matrix กับการพัฒนา apache แบบเดิม "
Sergey Maksimenko

ฉันขอโทษ แต่ฉันไม่มีกระบวนการนี้
Aloso


5

ในกรณีของฉันฉันต้องการทั้ง XAMPP สำหรับการพัฒนา Apache และ IIS Express สำหรับการพัฒนา. Net 2013 ดังนั้นฉันจึงทำสิ่งต่อไปนี้:

  1. ในพรอมต์คำสั่งพิมพ์ services.msc สิ่งนี้จะโหลด "Windows Services" ซึ่งฉันอยู่ที่ "World Wide Web Publishing Service" และหยุดการทำงานนั้น หยุดบริการเผยแพร่เวิลด์ไวด์เว็บ

  2. ฉันเริ่ม XAMPP Control Panel คลิกที่ "Config" จากนั้นเลือก "Apache httpd.conf" ค้นหา "80" จากนั้นเปลี่ยนเป็น "8080" ทั้งใน "Listen 80" และ "ServerName localhost: 80" บันทึกไฟล์จาก "บันทึกเป็น" และเลือก "ไฟล์ทั้งหมด" เพื่อไม่ให้บันทึกเป็นข้อความจาก "บันทึกเป็นประเภท" และ "การเข้ารหัส" ควรเป็น "UTF-8" Apache httpd.conf

  3. ออกจากแผงควบคุม XAMPP จากนั้นเริ่มใหม่อีกครั้งและจาก "Action" ให้เริ่ม Apache & MySQL ตอนนี้คุณจะเห็นพอร์ตเปลี่ยนไป อย่างที่คุณทราบตอนนี้คุณต้องเข้าสู่เซิร์ฟเวอร์ Apache ของคุณโดยใช้ "localhost: 8080" แทน "localhost" นอกจากนี้คุณยังมีทั้ง Apache & IIS Express ที่ทำงานบนพีซี Windows 10 เครื่องเดียวกัน

ฉันอ่านโพสต์ที่นักเขียนแนะนำให้ใช้พอร์ต "9080" แต่มันไม่ได้ผลสำหรับฉัน


3

ปัญหาเกิดขึ้นเมื่อใดก็ตามที่กระบวนการใช้พอร์ต 80

คุณสามารถเรียกใช้Netstatซึ่งมีอยู่ในXAMPP Control Panelและตรวจสอบว่ากระบวนการใดใช้พอร์ต 80 ในระบบของคุณ

สำหรับผมมันก็ไม่ได้IISแต่Skype

ปิดกระบวนการ / แอปพลิเคชันนั้นแล้วเริ่มบริการ Apache


ดูเหมือนว่าจะซ้ำกับคำตอบก่อนหน้าจำนวนหนึ่งอาจจะดีกว่าเช่นเดียวกับความคิดเห็นที่ว่า Skype เป็นกระบวนการแก้ปัญหาสำหรับคุณ
blm

"มันเป็นสไกป์" ฟังดูเหมือนคำตอบสำหรับฉัน! อาจไม่ใช่คำตอบที่แก้ไขได้สำหรับ OP แต่สำหรับฉันและฉันรู้สึกขอบคุณที่เป็นคำตอบไม่ใช่ความคิดเห็นหรือฉันอาจไม่ได้เห็น
arichards

1

ฉันรู้ว่าปัญหานี้อาจได้รับการแก้ไข แต่ฉันมีปัญหาเดียวกันกับวิธีแก้ปัญหาอื่น สำหรับสิ่งนั้นฉันจะอธิบายวิธีแก้ปัญหาที่เป็นไปได้อื่น ในกรณีของฉันพอร์ต 80 ถูกใช้งานโดย Skype (pid: 25252) และฉันไม่รู้ว่าคือโปรแกรมอะไร

หากต้องการดู pid ของโปรแกรมที่ใช้พอร์ต 80 คุณสามารถใช้คำสั่งที่คนอื่นพูดก่อนหน้านี้:

netstat -aon | findstr 0.0:80

ในการฆ่ากระบวนการโดยใช้ pid (ในกรณีที่คุณไม่รู้จักโปรแกรม) คุณต้องเปิด CMD โดยได้รับอนุญาตจากผู้ดูแลระบบและใช้คำสั่งถัดไป:

taskkill /pid 25252

ตัวเลือกอื่น ๆ ด้วยคำสั่งนี้มีที่นี่


นี่ไม่ใช่ปัญหาเดียวกันเนื่องจากคุณสามารถปิดใช้งานพอร์ต 80 ได้ในการตั้งค่าของ skype คุณไม่จำเป็นต้องฆ่า skype!
Aloso

คุณพูดถูก ตอนนี้ฉันเห็นตัวเลือกแล้ว เมื่อฉันมีปัญหาฉันไม่เห็นมัน
CGG

1

ฉันรู้ว่านี่อาจไม่ใช่สาเหตุของปัญหาของคุณ แต่ฉันใช้เวลาสองสามชั่วโมงในการตีหัวพิงกำแพงเพื่อแก้ปัญหานี้และนี่คือวิธีแก้ปัญหาของฉัน

(ใช้ Windows 10 x32)

ดังนั้นฉันจึงติดตั้ง XAMPP ในไดเร็กทอรีที่ซ้อนกันอย่างลึกซึ้งและไฟล์ conf ทั้งหมดอ้างอิงถึงรู\xampp\apacheทในขณะที่ไฟล์ของฉันคือsome_dir\another_dir\whatthehelliswrongwithme\finally\xampp\apache

ดังนั้นตัวเลือกของฉันจึงต้องดำเนินการแก้ไข\xampp\apacheการอ้างอิงทั้งหมดและชี้ไปยังตำแหน่งที่ถูกต้องหรือตัวเลือกที่ง่ายกว่ามาก ... ติดตั้ง XAMPP ใหม่ที่รูทดังนั้นการอ้างอิงทั้งหมดจึงชี้ไปยังตำแหน่งที่ถูกต้อง

น่ารำคาญเล็กน้อย แต่ฉันเดาว่านั่นคือสิ่งที่เราได้รับเมื่อ Mac และ Windows พยายามเป็นเพื่อนกัน ..

หวังว่ามันจะช่วยคุณไม่กี่คน


1

ในกรณีที่คุณต้องการเรียกใช้ IIS บนพอร์ต 80/443 แต่ใช้ที่อยู่ IP ต่างกันคุณสามารถใช้netsh http add iplisten xxx.xxx.xxx.xxxตามที่อธิบายไว้ที่นี่: https://support.microsoft.com/en-us/help/954874/iis-binds-to-all -ip- ที่อยู่บนเซิร์ฟเวอร์เมื่อคุณติดตั้ง iis-7-0-on

สามารถดูรายละเอียดเพิ่มเติมnetsh http add iplistenได้ที่นี่: https://msdn.microsoft.com/en-us/library/windows/desktop/cc307219.aspx


1

ฉันคิดว่ามันง่ายมากที่จะเปลี่ยนพอร์ตเซิร์ฟเวอร์ Apache ของคุณ

  1. ไปที่C: \ xampplite \ apache \ conf
  2. เปิดhttpd.confไฟล์
  3. ค้นหาListen 80
  4. เปลี่ยน80เป็นอย่างอื่นเช่น 9080
  5. ตอนนี้ XAMPP รีสตาร์ทพยายามเริ่มเซิร์ฟเวอร์

หมายเหตุฉันใช้เวอร์ชันเซิร์ฟเวอร์: 5.1.41 กับ windows 10


0

การปิด "กระบวนการระบบบางอย่าง" อาจยุ่งยาก ... คุณควรแก้ไข [Apache folder] /conf/httpd.conf ตามที่ @Sergey Maksimenko กล่าวไว้และหากคุณต้องการกำหนดค่าโฮสต์เสมือนให้ใช้พอร์ตใหม่ใน [Apache โฟลเดอร์] /conf/extra/httpd-vhosts.conf (ฉันใช้ 4900 แทน 80 และ 4901 แทนที่จะเป็น 443 ใน [โฟลเดอร์ Apache] /conf/httpd-ssl.conf) และอย่าลืมใช้พอร์ตเมื่อเข้าถึงเพจบน localhost (หรือ virtualhost ของคุณ) ตัวอย่างเช่น localhost: 4900 / index.html


0

โหนด js คงที่นี้ไม่ทำงานบนพอร์ต 80 ภายใต้ Windows 10 เช่นกันฉันได้รับlisten eaccesข้อผิดพลาด เริ่ม> บริการค้นหา "บริการเผยแพร่ทั่วโลก" และปิดใช้งานตามที่ paaacman อธิบายไว้


0

ฉันมีปัญหาเดียวกันและวิธีแก้ปัญหาข้างต้นไม่ได้ผลสำหรับฉัน

Apache ใช้ทั้งพอร์ต 80 และ 443 (สำหรับ HTTPS) และทั้งคู่ต้องพร้อมใช้งานเพื่อให้ Apache เริ่มทำงานได้สำเร็จ พอร์ต 80 เท่านั้นอาจไม่เพียงพอ

ฉันพบในกรณีของฉันว่าเมื่อเรียกใช้ VMWare Workstation ฉันมีพอร์ต 443 ที่ใช้โดยการแชร์ VMware

คุณต้องปิดการใช้งานการแชร์ในการตั้งค่าหลักของ VMware หรือเปลี่ยนพอร์ตในส่วนนี้

หลังจากนั้นตราบเท่าที่คุณไม่มีเซิร์ฟเวอร์อื่นเชื่อมต่อกับพอร์ต 80 (ดูวิธีแก้ไขปัญหาด้านบน) คุณควรจะสามารถเริ่ม Apache หรือ NGinx บน XAMPP หรือแอปพลิเคชัน Windows stack อื่น ๆ ได้

ฉันหวังว่านี่จะช่วยผู้ใช้คนอื่น ๆ


0

ขณะที่หลายคนมีการใช้วิธีการหยุด / ปิด IIS ก็อาจจะเป็นประโยชน์ที่จะรู้ว่าคุณก็สามารถปรับเปลี่ยนพอร์ต XAMPP ซึ่งได้รับการตอบรับที่นี่ นี่คือเส้นทางที่ฉันต้องใช้เพราะต้องวิ่งทั้งคู่


0

นอกจากเหตุผลที่ค่อนข้างชัดเจน (IIS) แล้วยังมีอีกสาเหตุหนึ่งที่พบได้บ่อยพอสำหรับปัญหานี้ คุณควรพูดคำถามนี้และคำตอบที่นี่:

http://stackoverflow.com/questions/22994888/why-skype-using-http-or-https-ports-80-and-443 

ดังนั้นหากคุณติดตั้ง Skype ในคอมพิวเตอร์โปรดตรวจสอบสิ่งนี้ด้วย วิธีแก้ปัญหาถูกยกมาที่นี่:

ในการปิดและปิดการใช้งาน Skype และการฟังบนพอร์ต 80 และพอร์ต 443 ให้เปิดหน้าต่าง Skype จากนั้นคลิกที่เมนูเครื่องมือและเลือกตัวเลือก คลิกที่แท็บขั้นสูงและไปที่แท็บย่อยการเชื่อมต่อ ยกเลิกการเลือกหรือยกเลิกการเลือกช่องทำเครื่องหมายใช้พอร์ต 80 และ 443 เป็นทางเลือกอื่นสำหรับตัวเลือกการเชื่อมต่อขาเข้า คลิกที่ปุ่มบันทึกจากนั้นรีสตาร์ท Skype เพื่อให้การเปลี่ยนแปลงมีผล


ทุกคนบอกว่าปิดและปิดการใช้งาน Skype แต่สิ่งที่ส่งผลกระทบต่อ Skype? เราจำเป็นต้องเปลี่ยนการตั้งค่าการกำหนดค่าใน Skype หรือไม่?
luisdev

@luisdev เพียงทำตามขั้นตอนที่อธิบายไว้ในใบเสนอราคาด้านบน จะบอกวิธีเปลี่ยนการตั้งค่าคอนฟิกใน Skype
Earth Engine

โอเคฉันรู้วิธีเปลี่ยนการตั้งค่าคอนฟิกใน Skype แล้ว แต่การเปลี่ยนการตั้งค่า Skype มีผลต่อฟังก์ชัน Skype อย่างไร จะส่งผลต่อความสามารถในการโทรออกหรือรับสายบน Skype หรือไม่? หาก Skype ไม่รับฟังพอร์ต 80 และ 443 อีกต่อไปผู้คนจะยังโทรหาฉันได้ไหม
luisdev

1
@luisdev ฉันไม่มีปัญหาในการปิดใช้งานพอร์ตเหล่านั้นใน Skype ดูเหมือนว่าจะมีประโยชน์เมื่อคุณอยู่เบื้องหลังไฟร์วอลล์บางอย่างเท่านั้น ดังนั้นหากวิธีนี้ไม่ได้ผลสำหรับคุณคุณจะต้องเปิดอีกครั้ง น่าเสียดายที่ Skype ทำสิ่งนี้ในทางที่ผิดซึ่งเป็นการรับฟังที่อยู่ทั้งหมดแทนที่จะเป็นที่อยู่ภายนอกเท่านั้นทำให้คุณไม่สามารถฟังบน localhost เท่านั้น
Earth Engine

-1

ขั้นแรกให้เปิด regedit run ในฐานะผู้ดูแลระบบ ดูรูปภาพ เปิด HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentCurrentControlSet \ Services \ HTTP เปิด Start เปลี่ยนค่าจาก 3 เป็น 4 ดูรูปภาพ จากนั้นรีสตาร์ทคอมพิวเตอร์

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.