XAMPP, Apache - ข้อผิดพลาด: Apache ปิดโดยไม่คาดคิด


345

ฉันเพิ่งติดตั้ง XAMPP อีกครั้งและเมื่อฉันพยายามเริ่มต้นเซิร์ฟเวอร์ Apache ในแผงควบคุม XAMPP ตอนนี้ฉันได้รับข้อผิดพลาดดังต่อไปนี้:

16:50:25  [Apache]     Status change detected: running
16:50:26  [Apache]     Status change detected: stopped
16:50:26  [Apache]     Error: Apache shutdown unexpectedly.
16:50:26  [Apache]     This may be due to a blocked port, missing dependencies,
16:50:26  [Apache]     improper privileges, a crash, or a shutdown by another method.
16:50:26  [Apache]     Press the Logs button to view error logs and check
16:50:26  [Apache]     the Windows Event Viewer for more clues
16:50:26  [Apache]     If you need more help, copy and post this
16:50:26  [Apache]     entire log window on the forums

ฉันจะแก้ปัญหานี้ได้อย่างไร


ฉันเริ่มมีปัญหานี้หลังจากติดตั้ง XAMPP เวอร์ชันใหม่ ฉันคิดว่าปัญหาเกี่ยวกับพอร์ตเนื่องจากโพสต์เกือบทุกเรื่องพูดถึงพวกเขา แต่มันก็ไม่ใช่ เมื่อฉันตรวจสอบerror.logฉันเห็นPHP Warning: 'vcruntime140.dll' 14.0 is not compatible with this PHP buildที่ทำให้ฉันคำตอบนี้ การติดตั้ง redistributable ที่ต้องการแก้ไขปัญหาได้
akinuri

คำตอบ:


415

เปิดสไกป์.

เครื่องมือ -> ตัวเลือก -> ขั้นสูง -> การเชื่อมต่อ

ยกเลิกการเลือกช่องทำเครื่องหมาย " ใช้พอร์ต 80 และ 443 สำหรับทางเลือกสำหรับการเชื่อมต่อขาเข้า "

ออกจากระบบและปิดหน้าต่าง Skype ทั้งหมด ลองรีสตาร์ท Apache ของคุณ


7
ถ้ามันไม่ทำงานสำหรับทุกคนลองตรวจสอบบันทึกข้อผิดพลาด หรือถ้าคุณใช้ vmware ต้องแก้ไข> ค่ากำหนด> แชร์ VMS> ปิดใช้งานการแบ่งปันและเปลี่ยนพอร์ตจาก 443 เป็นพอร์ตอื่นเช่น 8443 และบันทึกการเปลี่ยนแปลง รีสตาร์ท xampp หรือ wamp
Faisal Naseer

5
ฉันเปลี่ยน skype ยังคงสังเกต การแก้ปัญหาจบลงด้วยการเป็น ( stackoverflow.com/questions/14548768/… setup_xampp.bat เพื่อรีเฟรชพา ธ ]
Timmah

21
นี่ไม่ใช่วิธีแก้ไขที่ถูกต้องเนื่องจากพอร์ตอาจถูกบล็อกเนื่องจากแอปพลิเคชันใด ๆ ไม่เพียง แต่ Skype คำตอบที่ได้รับการโหวตสูงสุดอันดับที่ 2 มีทางออกที่ดีกว่า
ราหุลคาดุการ์

3
นี่เป็นปัญหาที่พบบ่อยที่สุดที่ผู้คนกำลังเผชิญแม้ว่านี่ไม่ใช่ปัญหาในกรณีของฉัน ปัญหานี้อาจเกิดขึ้นหากคุณมีรายการที่ไม่ถูกต้องในไฟล์เหล่านี้ httpd.conf และ httpd-vhosts.conf ในกรณีของฉันฉันมีโฮสต์เสมือนที่สร้างขึ้นซึ่งชี้ไปที่ตำแหน่งไฟล์บนฮาร์ดไดรฟ์ภายนอกของฉันและในขณะที่ฉันใช้ xampp ฮาร์ดไดรฟ์ภายนอกของฉันไม่ได้เชื่อมต่อ ดังนั้นฉันแสดงความคิดเห็นว่ารหัสโฮสต์เสมือนจนถึงเวลาที่ฉันไม่ได้ใช้ฮาร์ดไดรฟ์ภายนอกและรีสตาร์ท xampp เพื่อแก้ไขปัญหา
Vineet Sajwan

2
มันไม่ได้เป็น skype เสมอไป ปัญหาของฉันคือ vmware ซึ่งใช้พอร์ต 443 หากเป็นกรณีนี้คุณไม่จำเป็นต้องเปลี่ยนการตั้งค่าพอร์ต 80
Moradnejad

760

ขณะที่ฉันทำงานในสภาพแวดล้อมขององค์กรที่นักพัฒนาประสบปัญหาไฟร์วอลล์ไม่มีคำตอบอื่นใดที่แก้ไขปัญหาของฉันได้

เนื่องจาก Skype ไม่ได้ใช้พอร์ต แต่โดยแอปพลิเคชันภายในอื่นฉันจึงทำตามขั้นตอนด้านล่างเพื่อแก้ไขปัญหา:

ขั้นตอนที่ 1 - จากแผงควบคุม XAMPP ภายใต้ Apache คลิกปุ่มกำหนดค่าและเลือก Apache (httpd.conf)

ภายในไฟล์ httpd.confฉันพบบรรทัดที่ระบุว่า:

Listen 80

และเปลี่ยน 80 เป็นหมายเลข / พอร์ตที่คุณต้องการ ในสถานการณ์ของฉันฉันใช้พอร์ต 8080

Listen 8080

จากไฟล์ httpd.confฉันพบอีกบรรทัดหนึ่งที่เขียนว่า:

ServerName localhost:80

เปลี่ยน 80 เป็น 8080

ServerName localhost:8080

ขั้นตอนที่ 2 - จากแผงควบคุม XAMPP ภายใต้ Apache คลิกปุ่มกำหนดค่าอีกครั้ง แต่คราวนี้เลือก Apache ( httpd-ssl.conf ) ภายในไฟล์httpd-ssl.confให้ค้นหาบรรทัดที่ระบุว่า

Listen 443

และเปลี่ยน 443 เป็นหมายเลข / พอร์ตที่คุณต้องการ ฉันจะใช้4433เป็นหมายเลขพอร์ตใหม่

Listen 4433

มาจากไฟล์httpd-ssl.confค้นหาอีกบรรทัดหนึ่งที่ระบุว่า

<VirtualHost _default_:443>

ServerName localhost:443

และเปลี่ยน443ที่จะ4433

<VirtualHost _default_:4433>

ServerName localhost:4433

อย่าลืมบันทึกไฟล์ httpd.confและhttpd-ssl.confหลังจากทำการเปลี่ยนแปลงบางอย่าง จากนั้นเริ่มบริการ Apache ใหม่


คำตอบที่ได้รับจาก @ Min2 ทำงานได้ในทุกกรณี แต่บางครั้งก็ล้มเหลวเนื่องจากคุณต้องตรวจสอบว่ามีบริการชื่อ "Apache HTTP Service" ที่ทำงานใน Task Manager หรือไม่ สิ้นสุดบริการนี้และปฏิบัติตามฟังก์ชั่นที่กำหนดไว้ด้านบนตอนนี้คุณจะพบว่า Apache ใช้งานได้
Aadil

4
ฉันอัปเกรดเป็น Windows 10 และ XAMPP ไม่ทำงาน ฉันติดตามโซลูชันของคุณและใช้งานได้ดี
fuddin

6
นี่คือการแก้ไขข้อผิดพลาดของ windows 10 ขอบคุณมาก !
Javed Ali

3
ได้ผลสำหรับฉัน นี่ควรเป็นทางออกที่ยอมรับได้ โซลูชัน Skype มีข้อ จำกัด มาก
ptrcao

1
ฉันได้ทำการเปลี่ยนแปลงสำหรับ 80 และ 443 พอร์ต แต่ยังคงแสดงให้เห็นถึงข้อผิดพลาดมี Skype ในระบบของฉันไม่มี
บาร์กาเตซ

97

สิ่งหนึ่งที่คุณสามารถทำได้คือหยุดบริการบนพอร์ต 80 โดยการออก

net stop http

ในหน่วย cmd คุณจะถูกถามว่าคุณต้องการหยุดบริการเหล่านั้นหรือไม่ ฉันพบว่าฉันมีบริการบางอย่างที่ไม่ได้ใช้งานและปิดการใช้งาน

หากต้องการดูว่ามีใครใช้พอร์ต 80 พิมพ์ในหน่วย cmd

netstat -abno

ฉันสมมติว่าคุณต้องการเรียกใช้ Apache บนพอร์ต 80 ถ้าเป็นกรณีนี้และคุณต้องการเก็บบริการที่ขัดแย้งคุณจะต้องเชื่อมโยงพวกเขากับพอร์ตใหม่

หากปัญหาไม่ใช่พอร์ตไม่ว่างคุณสามารถลองทำสิ่งต่อไปนี้: เลือก "แสดงข้อมูลการดีบัก" ในแผงการตั้งค่า XAMPP เมื่อเริ่มต้น Apache คุณจะเห็นบางอย่างเช่น "Executing" c: \ xampp \ apache \ bin \ httpd.exe "หากคุณเรียกใช้งาน

c:\xampp\apache\bin\httpd.exe

ใน cmd คุณจะได้รับข้อมูลเพิ่มเติม (ตัวอย่างเช่นฉันมีปัญหากับไฟล์ httpd.conf ของฉัน)

ที่เกี่ยวข้อง: ฉันจะเพิ่มพอร์ต 80 บน localhost Windows ได้อย่างไร และApache จะไม่ทำงานใน xampp


12
+1 สำหรับ httpd.exe หากคุณได้รับโมดูลหายไปตรวจสอบให้แน่ใจว่าโปรแกรมป้องกันไวรัสของคุณไม่ได้ลบออก (โดยเฉพาะถ้าคุณเรียกใช้ Kasperky)
thomas88wp

1
ฉันมีปัญหาเดียวกันและแก้ไขมันด้วยการทำให้แน่ใจว่าแต่ละไดเรกทอรีที่ระบุใน /apache/conf/extras/httpd-bhosts.conf เป็นเส้นทางจริง
Matthew

8
ขอบคุณคนที่ทำงาน c: \ xampp \ apache \ bin \ httpd.exe บน cmd โยนข้อผิดพลาดที่แน่นอนและสามารถแก้ไขได้
Khan Shahrukh

คำนี้บนเซิร์ฟเวอร์ 2019 net stop http จะหลอกลวงมันหยุดบริการทั้งหมดโดยใช้พอร์ตนั้น บริการนี้ฉันเริ่มด้วยตนเองเมื่อเริ่มต้นใช้งาน
Henry

หากคุณใช้ Windows 7 ให้ดูคำตอบของ Kunal ซึ่งบอกวิธีหยุด IIS เกี่ยวกับเคล็ดลับนี้ใช้net stop httpงานได้ แต่มีผลข้างเคียงที่ทำให้เครื่องพิมพ์ไม่อยู่ในรายการอีกต่อไปเมื่อพยายามพิมพ์บางสิ่ง (และจนกระทั่งรีบูตคอมพิวเตอร์)
OuzoPower

79

ใน XAMPP Control Panel V3.2.1 คลิกที่ปุ่ม "NetStat" ที่มุมบนขวา ตรวจสอบให้แน่ใจว่าพอร์ต 80 ไม่ได้ถูกใช้โดยโปรแกรมอื่น ๆ จากนั้นคลิกที่ "เชลล์" ด้านล่าง ออกคำสั่งนี้ "พิมพ์ ap แล้วกด TAB สองครั้ง"

Apache_Start.bat

คุณจะเห็นข้อผิดพลาดที่แน่นอนว่าทำไม Apache ไม่สำเร็จ ส่วนใหญ่จะเป็นปัญหาการกำหนดค่าโฮสต์เสมือนหรืออาจเป็นอย่างอื่น มันจะแสดงหมายเลขบรรทัดที่เกิดข้อผิดพลาด เพียงแก้ไขข้อผิดพลาดนั้น โปรดทราบว่าใน RootDocument การติดตาม \ สามารถเป็นแหล่งของข้อผิดพลาดได้เช่นกัน ลบส่วนท้าย "\" ออก


7
นั่นเพิ่งช่วยฉันครั้งใหญ่ - มันบอกฉันว่ามีการพิมพ์ผิด - หลังจากใช้เวลาหลายชั่วโมงพยายามที่จะคิดออกสิ่งที่ผิด ขอบคุณมาก @hmd
เซบาสเตียน Sulinski

ขอบคุณฉันเปลี่ยนชื่อโฟลเดอร์ xampp และสิ่งนี้ช่วยฉันค้นหาข้อผิดพลาด
Peter Nguyen

10
นี่ควรเป็นคำตอบที่ดีที่สุดเพราะใช้งานได้กับข้อผิดพลาดที่เป็นไปได้กับ XAMPP!
user11153

นี่ควรเป็นคำตอบที่ถูกต้องด้วย ฉันมีข้อผิดพลาดโง่ใน vhost และนั่นเป็นสาเหตุของข้อผิดพลาด .... ขอบคุณ
มิเคล

Super G ... เป็นคำตอบที่ดีเพราะทำงานได้กับข้อผิดพลาดใด ๆ กับ XAMPP !!!
OpenWebWar

37

ทำตามขั้นตอนเหล่านี้:

  1. เปิดแผงควบคุม XAMPP ของคุณจากนั้นคลิก "กำหนดค่า"
  2. เลือก "Apache (httpd.conf)" และค้นหารหัสนี้ด้านล่างและเปลี่ยนเป็นรหัสนี้:

    # เปลี่ยนสิ่งนี้เป็นฟังในที่อยู่ IP เฉพาะดังที่แสดงด้านล่าง

    #to ป้องกัน Apache ไม่ให้เข้าสู่ที่อยู่ IP ที่ถูกผูกไว้ทั้งหมด

    #Listen 0.0.0.0:80

    #Listen [::]: 80

    Listen 80

    # การสนับสนุน Dynamic Shared Object (DSO)

    1. บันทึก ( Ctrl+ S)
    2. หลังจากนั้นกลับไปที่แผงควบคุม XAMPP แล้วคลิกการกำหนดค่าอีกครั้ง
    3. เลือก "Apache (httpd-ssl.conf)" ค้นหารหัสนี้ด้านล่างและเปลี่ยนอีกครั้ง:

    # หมายเหตุ: การกำหนดค่าที่ใช้ IPv6 แต่ไม่ใช่ที่อยู่ที่แมป IPv4 จำเป็นต้องมีสองรายการ

    # ฟังคำสั่ง: "Listen [::]: 443" และ "Listen 0.0.0.0:443"

    #

    #Listen 0.0.0.0:443

    #Listen [::]: 443

    Listen 443

    1. บันทึก ( Ctrl+S)
    2. จากนั้นคลิก "config" (หมายเหตุ: ด้านบน netstat) และคลิก "การตั้งค่าบริการและพอร์ต"
    3. เปลี่ยน "Main Port" เป็น 8080 และ "SSL Port" เป็น 4433 จากนั้นบันทึก
    4. สุดท้ายไปที่ "แผงควบคุม" -> "โปรแกรมและคุณสมบัติ" -> "เปิดหรือปิด Windows"
    5. ยกเลิกการเลือก "บริการข้อมูลอินเทอร์เน็ต" ของคุณแล้วคลิกตกลง

เพียงรอและคอมพิวเตอร์ / แล็ปท็อปของคุณจะรีสตาร์ทโดยอัตโนมัติและลองเปิดแผงควบคุม XAMPP ของคุณอีกครั้งจากนั้นเริ่ม Apache


11
ระวัง. หากคุณติดตั้ง VMWare Workstation (10.0) ตัวเลือกในการแชร์ VM คือการฟังพอร์ต 443 นั่นคือการป้องกันไม่ให้ Apache-server เริ่ม (xampp) ดูแก้ไข> ค่ากำหนด> แชร์ VM's
toesslab

3
ฟัง 80 -> ฟัง 81 (ใกล้บรรทัด 58) ชื่อโฮสต์เซิร์ฟเวอร์ในพื้นที่: 80 -> ชื่อโฮสต์เซิร์ฟเวอร์ในพื้นที่: 81 (ใกล้กับบรรทัด 218)
Noah Martin

2
ทำงานให้ฉัน ฉันพยายามเปลี่ยนพอร์ต Apache โดยใช้ XAMPP 'Config GUI' และไม่มีโชค เปลี่ยนด้วยตนเองและใช้งานได้ทั้งหมด อีกบทเรียนที่โหดร้ายสำหรับความเกียจคร้าน
Matt Carr

ในที่สุดทางออกสำหรับฉัน ฉันเปลี่ยนสไกป์แล้ว แต่ก็ไม่ได้ช่วยอะไร ขอบคุณ! (: ปัญหาเดียวคือจุดที่ 3 และ 4 ในส่วนสุดท้ายของคำอธิบายของคุณ.
codepleb

ทำงานได้ดีสำหรับฉันฉันใช้ windows7 โดยไม่มี VMware + 1
user3437460

26

ปัญหาของฉันคือใน httpd.conf DocumentRootและ<Directory>รายการนั้นชี้ไปที่โฟลเดอร์ที่ไม่มีอยู่

ตัวอย่างเช่น httpd.conf 'ดั้งเดิม' มีรายการต่อไปนี้:

DocumentRoot "c:/Apache24/htdocs"
<Directory "c:/Apache24/htdocs">

หากคุณติดตั้งใน C: \ xampp คุณต้องเปลี่ยนรายการเหล่านั้นให้ตรงกันเช่น

DocumentRoot "c:/xampp/htdocs"
<Directory "c:/xampp/htdocs">

ฉันเปลี่ยนชื่อโฟลเดอร์และเป็นสาเหตุให้เกิดโฟลเดอร์ http ที่ไม่ถูกต้องและไม่อนุญาตให้ XAMPP เริ่มทำงาน chaninging ชื่อโฟลเดอร์ไปยังชื่อที่ถูกต้องได้รับการแก้ไข :)
VSB

2
+1, ฉันลืมไปเลยว่าฉันปรับโครงสร้างโฟลเดอร์ของฉัน =)
Morten Høgseth

ฉันด้วย - "... แต่ฉันไม่ได้เปลี่ยนแปลงอะไรเลย! ... " ใช่ยกเว้นชื่อไดเรกทอรีรูท - อุ๊ปส์ ;)
CramerTV

2
ไม่มีอะไรนอกจากคำตอบง่ายๆที่ทำให้นึกถึงความโง่เขลาของตัวเองบางครั้ง .. : D นั่นทำเพื่อฉันขอบคุณ!
ชาร์ลีแกะสลัก

21

หากคุณใช้ Windows 7 ค้นหา IIS ในการค้นหาของ Windows (คลิกที่ไอคอน Window ที่ด้านล่างซ้ายแล้วพิมพ์ว่ามีคำว่า 'ค้นหาโปรแกรมและไฟล์')

เปิดIIS (บริการข้อมูลทางอินเทอร์เน็ต)(บริการข้อมูลทางอินเทอร์เน็ต)

ในด้านขวาในแผงการกระทำ คลิกหยุด

หมายเหตุ: ลิงค์หยุดจะจางหายไปในภาพหน้าจอ ในขณะที่ฉันหยุดมัน ภาพหน้าจอของ IIS แก้ไขปัญหา!


2
บน Windows 10 ไม่พบ IIS ให้ดำเนินการจากนั้นฉันถอนการติดตั้ง IIS Control Panel > Programs > Programs and Features > Windows Componentsซึ่งในที่สุดก็แก้ไขได้
บันไดเลื่อน

@escalator ดีฉันได้กล่าวอย่างชัดเจนว่า "หากคุณใช้ Windows 7"
Kunal

ขอบคุณ ทำงานเหมือนจับใจและแก้ไขปัญหาให้ฉันหลังจากลองใช้เทคนิคอื่น ๆ ที่กล่าวถึงไม่สำเร็จ net stop httpจากพรอมต์คำสั่งยกระดับยังทำงาน แต่มีผลข้างเคียงทำให้เครื่องพิมพ์สามารถใช้งานได้
OuzoPower

17

ฉันมีปัญหาเดียวกันและปรากฎว่าฉันลืมที่จะเรียกใช้setup_xampp.bat(รุ่นพกพา)


2
หลังจากย้ายโฟลเดอร์ xampp ไปยังไดรฟ์อื่นที่ไม่ใช่ c: \ apache จะไม่เริ่มทำงานอีกต่อไป วิธีนี้ใช้ได้ผลสำหรับฉัน ขอบคุณมาก! :)
Pascal Cloverfield

ฉันคิดว่าขั้นตอนนี้เป็นสิ่งจำเป็นเมื่อเราดาวน์โหลดซอฟต์แวร์ Xampp เป็นไฟล์ zip และลองเริ่มต้นเซิร์ฟเวอร์ Apache
shasi kanth

นี่คือคำตอบสำหรับรุ่นพกพา (เคสของฉัน) ขอบคุณสำหรับการชี้ให้เห็น
Sidney de Moraes

มันแก้ไขปัญหาของฉันด้วย ฉันไม่ได้อยู่ในรุ่นพกพา ฉันดาวน์โหลดการตั้งค่าสำหรับ xampp บน Windows 10 หลังจากการติดตั้ง (มันไม่ใช่ exe ไม่ใช่ zip) ฉันมีปัญหาที่อธิบายไว้ในโพสต์แรก หลังจากค้นหาวิธีแก้ไขปัญหานี้แล้วฉันจะเรียกใช้ setup_xampp.bat และตอนนี้ก็ใช้งานได้
quokka-web

Windows ของฉันเสียหายเนื่องจากชื่อไดรฟ์เปลี่ยนไปและพา ธ ของไฟล์ทั้งหมดอยู่ในสภาพที่ยุ่งเหยิง ฉันวิ่ง setup_xampp.bat และทุกอย่างถูกกำหนดค่าใหม่อย่างถูกต้อง
gegobyte

16

สิ่งนี้ใช้ได้กับฉัน ...

หากคุณใช้ windows ...

ค้นหา 'cmd' ในแถบค้นหา windows

ป้อนสิ่งนี้:C:\xampp\apache\bin\httpd.exe

ค้นหาไฟล์และข้อผิดพลาดที่บรรทัดเกิดขึ้น

ตัวอย่างเช่น mine อยู่ในไฟล์ด้านล่างในบรรทัดที่ 37

httpd-หลายภาษา-errordoc.conf

เปิดรหัสและแก้ไขข้อผิดพลาดโดยลบบรรทัดหรือแก้ไข

ทำ! ฉันควรทำงานตอนนี้

:)


ขอบคุณ มันทำงาน มีข้อผิดพลาดทางไวยากรณ์ในไฟล์ vhost config ของฉัน
Emtiaz Zahid

12

ดูเหมือนว่าไม่มีใครตอบเกี่ยวกับการดำเนินการ xampp_start.exe

ฉันทำทุกคำตอบก่อนหน้านี้ แต่ไม่ได้แก้ไขปัญหาของฉัน ฉันพบว่าการใช้งาน xampp_start.exe จะให้ข้อมูลรายละเอียดเกี่ยวกับปัญหาแก่คุณ

นี่คือสิ่งที่ฉันเห็นในตอนท้ายของฉัน:

xampp_start

อย่างที่คุณเห็นฉันมีปัญหาเกี่ยวกับเส้นทางหรือ xampp กำลังชี้ไปที่โฟลเดอร์ที่ไม่มีอยู่


นี่คือช่วยชีวิต เส้นทางไฟล์ ssl และบันทึกของฉันไม่ถูกต้อง สิ่งนี้ช่วยฉันแก้ไขให้ถูกต้องและใช้งานได้ในตอนนี้
Ali Azhar

คำตอบที่ยอดเยี่ยม บันทึกวันของฉัน
Raju

11

เมื่อฉันพบว่าไม่มีกระบวนการใช้พอร์ต 80 โดยใช้คำสั่ง

netstat -abno | find ":80"

ไม่มีปัญหาของกระบวนการใด ๆ ที่ใช้พอร์ต 80

จากนั้นฉันก็รันคำสั่ง (เป็น cmd)

C:\xampp\apache\bin\httpd.exe

มันแสดงให้เห็นข้อผิดพลาดบางอย่างในการกำหนดค่าโฮสต์เสมือนในhttpd-vhosts.confไฟล์ซึ่งเพิ่งแก้ไขโดยฉันสำหรับการติดตั้งในสภาพแวดล้อม WordPress PHP ในEclipse IDE ดังนั้นฉันจึงลบบรรทัดเหล่านั้นและ Apache เริ่มต้นอย่างสมบูรณ์แบบ


2
ที่สมบูรณ์แบบ! ฉันระบุไดเรกทอรีผิดสำหรับไฟล์บันทึกและด้วยเหตุนี้มันจึงไม่เริ่มทำงาน การแก้ไขที่แก้ไขปัญหา!
Hammad Khan

คุณร็อค !!!! โซลูชันทั้งหมดข้างต้นไม่ได้ผลสำหรับฉันเมื่อฉันลองทำในสิ่งที่คุณทำมันทำให้ฉันมีข้อผิดพลาดเกี่ยวกับสาย SSLRequiredSSL ใน httpd-xampp.conf ซึ่งฉันใส่ # ไว้ข้างหน้าเพื่อปิดการใช้งาน โดยวิธีการที่ฉันต้องรันใหม่ C: \ xampp \ apache \ bin \ httpd.exe หลายครั้งในบรรทัดคำสั่งหลังจากการแก้ไขแต่ละครั้งเพื่อหาฉันบรรทัดอื่นที่มีข้อผิดพลาดเดียวกัน
alaswer

11

สิ่งง่าย ๆ ที่คุณสามารถทำได้คือการตรวจสอบว่าSkypeหรือVMwareติดตั้งในเครื่องของคุณหรือไม่

Skype ใช้พอร์ต 80 และ 443 เป็นพอร์ตเพิ่มเติมสำหรับการเชื่อมต่อขาเข้า ในการเปลี่ยนหมายเลขพอร์ตใน Skype ไปที่

เครื่องมือ> ตัวเลือกการเชื่อมต่อ> การเชื่อมต่อ

ในหน้าต่าง Skype ตอนนี้เปลี่ยนหมายเลขพอร์ต 80 เริ่มต้นเป็นอย่างอื่น

VMware Workstationใช้พอร์ต 443 สำหรับการแชร์ หากต้องการเปลี่ยนแปลงให้เปิด VMware Workstation และข้ามไป

แก้ไข> การตั้งค่า> Vms ที่ใช้ร่วมกัน

  1. คลิกปุ่ม "เปลี่ยนการตั้งค่า"
  2. จากนั้นคลิก "ปิดการแชร์"
  3. จากนั้นเปลี่ยนหมายเลขพอร์ต https ที่ใช้ (443)
  4. จากนั้นคุณสามารถคลิกปุ่ม "เปิดใช้งานการแชร์"

นั่นคือทั้งหมดที่คุณต้องทำ รีสตาร์ท XAMPP และเรียกใช้เซิร์ฟเวอร์ Apache


หลังจากทำการเปลี่ยนแปลง skype แล้ว apache ยังไม่เริ่มทำงานดังนั้นฉันจึงทำการเปลี่ยนแปลง VmWare ที่กล่าวถึงและใช้งานได้
Haris ur Rehman

9

ฉันมีปัญหาเดียวกันบางครั้งกลับ ฉันมีแล็ปท็อปเก่าซึ่งเกือบทุกพอร์ตถูกบล็อกหรือทำงานผิดปกติ นี่คือวิธีที่ฉันทำ

  1. เปิดแผงควบคุม XAMPP

  2. คลิกที่Config

  3. จากนั้นเข้าไปในhttpd.conf Apacheไฟล์ เปิดด้วยโปรแกรมแก้ไขข้อความ

  4. ค้นหา"80" (ทำCtrl+ Fและค้นหาทั้งหมดแทนที่ด้วย8080 หรือ 4040 หรือ 4000 )

  5. บันทึกไฟล์ และรีสตาร์ท XAMPP

มันทำงานได้ดีสำหรับฉันและฉันหวังว่ามันจะช่วยคุณได้เช่นกัน


6

สำหรับฉันบริการเผยแพร่ทางเว็บทั่วโลกใช้พอร์ต 80 ฉันฆ่ามันโดยใช้คำสั่งต่อไปนี้บน cmd:

net stop http

หลังจากนั้น XAMPP จะรัน Apache โดยไม่มีปัญหาใด ๆ


1
ที่แก้ไขปัญหาของฉัน แต่ตอนนี้เราหยุดบริการบางอย่างแล้วบริการเหล่านั้นมีผลต่อเครือข่ายของฉันอย่างไร
Karavana

ฉันรันพรอมต์คำสั่งในฐานะผู้ดูแลระบบและทำงานได้ แต่คำถามของฉันคือจะหยุดบริการไม่ส่งผลกระทบต่อการคำนวณปกติและฉันจะได้รับอีกต่อไปที่หยุดทำงานและทำงานอีกครั้ง
AMRESH PANDEY

@ AMRESHPANDEY ฉันพบสิ่งที่อาจเป็นประโยชน์ในกรณีนี้ ฉันไม่ได้ลองถ้ามันใช้งานได้ รู้สึกอิสระที่จะเพิ่มมันเป็นคำตอบถ้ามันใช้งานได้: mikeplate.com/2011/11/06/…
Memet Olsen

5

ข้อผิดพลาดนี้เกิดขึ้นเนื่องจากพอร์ตซึ่งจัดสรรให้กับ Apache นั้นถูกใช้โดยโปรแกรมอื่น เพื่อตรวจสอบแอปพลิเคชั่นที่ใช้พอร์ตซึ่งเราจัดสรรให้กับ Apache สามารถทำได้โดยคลิก

ปุ่มNetstat

โฮมเพจของ XAMPP

นี่คือไฟล์ Netstat

ป้อนคำอธิบายรูปภาพที่นี่

ตอนแรกฉันได้จัดสรรพอร์ต 8080 สำหรับ Apache และฉันเพิ่งติดตั้ง Oracle DB.TNSLSNR.exe ได้ใช้พอร์ต 8080 แล้ว

ดังนั้นเมื่อดูที่ไฟล์นี้เราสามารถเลือกพอร์ตที่ไม่กระทบกับแอปพลิเคชันอื่น ในกรณีของฉันพอร์ต 8060 ไม่กระทบกับแอปพลิเคชันใด ๆ ด้วยการเลือกว่าเราสามารถเปลี่ยนไฟล์ httpd.conf (แผงควบคุม XAMPP -> Config ) ดังที่กล่าวไว้ข้างต้น


5
  1. ดาวน์โหลดใหม่ xampp apachefriends
  2. ติดตั้ง
  3. ลบแอป VPN ทั้งหมด
  4. เปิดโฟลเดอร์ XAMPP เรียกใช้ setup_xampp.bat
  5. เรียกใช้ xampp-control.exe

ฉันได้รับการติดตามจุดที่ 4 แล้วให้เรียกใช้ setup_xampp.bat และเริ่มบริการ (จุดที่ 5) ทั้งหมดทำงานได้ดี
Devang Solanki

4

ในกรณีของปัญหานี้เกิดจากความพยายามที่จะดาวน์โหลดผลิตภัณฑ์อื่น ๆ ของ BitNami เช่นWordPress เป็นเรื่องปกติเมื่อเราติดตั้ง WordPress ผ่าน XAMPP มันถูกวางไว้ในxampp/appไดเรกทอรีที่สามารถเข้าถึงได้จากโฮมเพจแอปพลิเคชัน XAMPP

ในฐานะที่เป็นวิธีแก้ปัญหาฉันลบ WordPress เริ่มต้นที่ติดตั้งจากxamppไดเรกทอรีและติดตั้ง WordPress ในhtdocsโฟลเดอร์ WordPress ด้วยตนเองโดยดาวน์โหลดและแตกไฟล์ zip ลงในhtdocโฟลเดอร์ นอกจากนี้คุณยังจำเป็นต้องรีสตาร์ท XAMPP หรือระบบพฤษภาคมหลังจากถอนการติดตั้ง / ลบ WordPress ตอนนี้ก็โอเคสำหรับฉันแล้ว


3
  1. ตรวจสอบให้แน่ใจก่อนว่า\xamppโฟลเดอร์ของคุณอยู่ในรูต! นี่เป็นสิ่งสำคัญเนื่องจากเส้นทางนั้นสัมพันธ์กัน

  2. จากนั้นตรวจสอบให้แน่ใจว่าคุณเรียกใช้xampp_control.exeด้วยสิทธิ์ของผู้ดูแลระบบ

  3. จากนั้นเปลี่ยนไฟล์ด้านล่างเพื่อหลีกเลี่ยงปัญหาเกี่ยวกับพอร์ตที่ถูกบล็อก 80

ใน\xampp\xampp-control.iniมันควรจะตั้ง:

[ServicePorts]
Apache=8080
ApacheSSL=4433

ค้นหา\xampp\apache\conf\httpd.confและตั้งค่า:

Listen 8080

ServerName localhost:8080

ค้นหา\xampp\apache\conf\extra\httpd-ssl.confและตั้งค่า:

Listen 4433

<VirtualHost _default_:4433>

ServerName www.example.com:4433

จากนั้นจบบริการทั้งหมดและเริ่มต้นใหม่xampp-control.exeด้วยสิทธิ์ของผู้ดูแลระบบ มันควรจะวิ่ง!


3

ฉันเพิ่งพบข้อผิดพลาดนี้ใน xampp v3.2.2 [win 10 pro x64],

ฉันพยายามเรียกใช้คำสั่ง "net stop http" ใน admin cmd แต่มันไม่ได้แก้ปัญหาดังนั้นฉันจึงลองใช้คำสั่ง "netstat -abno" และฉันพบว่าพอร์ต ssl (443) อยู่ใน ใช้โดย vmware

ดังนั้นคำแนะนำของฉันไม่เพียงแค่มองหาสิ่งที่บล็อกพอร์ต 80 แต่ยังค้นหาโปรแกรมที่เป็นไปได้โดยใช้พอร์ต 443 เพราะฉันไม่ชอบเปลี่ยนหมายเลขพอร์ตเริ่มต้นของฉันเป็น 8081 และ 4433

นี่คือวิธีที่คุณจะแก้ปัญหานี้ ...

ก่อนอื่นให้พิมพ์คำสั่งต่อไปนี้

net stop http

จากนั้นลองเริ่ม apache หากยังใช้งานไม่ได้ พิมพ์คำสั่งต่อไปนี้

netstat -abno

และคุณจะได้แอพที่ลำบากซึ่งใช้พอร์ตอันมีค่าของคุณ

คัดลอก pid จากนั้นใช้คำสั่งต่อไปนี้

taskkill /f /pid PID

โดยที่ PID คือ pid ที่คุณคัดลอก

หวังว่านี่จะช่วยใครซักคน


2

สิ่งนี้เกิดขึ้นเนื่องจากพอร์ต 80 เริ่มต้นถูกบล็อกสำหรับ Apache คุณจำเป็นต้องเปลี่ยนพอร์ตหรือทำให้พอร์ต accesible

ไปที่ไฟล์ Apache configuration (httpd.conf) ในการติดตั้ง Apache

ค้นหาบรรทัดเหล่านี้:

#

ฟัง 192.168.1.2:80

ฟัง 80

#

ที่นี่ 192.168.1.2 เป็นที่อยู่ IP ส่วนตัวของฉัน เปลี่ยนตามความต้องการของคุณ

เปลี่ยนเป็นด้านล่าง

ฟัง 192.168.1.2:8081

ฟัง 8081

ตอนนี้เมื่อคุณเข้าถึง localhost คุณต้องเพิ่มพอร์ตอย่างชัดเจนเป็น http: // localhost: 8081 / ...


2

สาเหตุหนึ่งอาจเป็นเพราะคุณไม่ได้ใช้งานแผงควบคุม XAMPP ในฐานะผู้ดูแลระบบ


2

ฉันแก้ไขปัญหาด้วยการหยุดบริการ "Web Deployment Agent Service" เปิด: ระบบ -> การจัดการคอมพิวเตอร์ -> บริการ -> บริการตัวแทนการปรับใช้เว็บบริการตัวแทนเว็บการปรับใช้หยุดบริการนี้และเริ่มการทำงานของ XAMPP ฉันคิดว่านี่เป็นบริการของ MS Webmatrix

(เยอรมัน: Systemsteuerung -> ระบบและ Sicherheit -> Verwaltung -> Dienste -> Webbereitstellungs-Agent-Dienst )


2

ฉันมีข้อความแสดงข้อผิดพลาดเหมือนกับ OP แต่ปัญหาของฉันไม่ได้รับการแก้ไขด้วยคำตอบใด ๆ ที่มีอยู่ คำตอบหลายข้อจัดการกับความขัดแย้งในพอร์ต 80 ซึ่งฉันรู้ว่าฉันไม่ได้เนื่องจากฉันมี localhost ตอบสนองบนพอร์ต 80 เมื่อเร็ว ๆ นี้

ปรากฎว่าฉันได้เปลี่ยนServerRootโดยไม่ตั้งใจเมื่อฉันตั้งใจจะเปลี่ยนDocumentRoot (โง่ฉันรู้) และแม้ว่าไดเรกทอรีServerRootใหม่มีอยู่มันไม่ได้มีไฟล์การตั้งค่าและ apache สิ่งอื่น ๆ ที่จำเป็นซึ่งทำให้มันล้มเหลวในการเริ่มต้น ข้อความแสดงข้อผิดพลาดอาจกล่าวถึงสถานการณ์นี้โดยข้อความว่า 'การอ้างอิงที่หายไป '

ในระบบ Windows ของฉันการตั้งค่า ServerRoot กลับไปที่C: / XAMPP / apacheสามารถแก้ไขปัญหาได้


2

เซิร์ฟเวอร์ Apache โดยค่าเริ่มต้นทำงานบนพอร์ต 80, 443 ปัญหาของคุณคือหนึ่งหรือทั้งสองพอร์ตไม่ว่าง โดยปกติแล้ว Skype หรือ VMware Workstation จะใช้พอร์ตทั้งสองนี้ ดังนั้นตรวจสอบให้แน่ใจว่าพวกเขาไม่ได้ทำงานอยู่ วิธีที่ดีที่สุดเพื่อให้แน่ใจว่าพอร์ตนั้นว่างบน windows คือ:

  • คลิกปุ่ม windows

  • ในแถบค้นหาประเภทresmonเพื่อเปิดจอภาพทรัพยากรresmon.exe

  • เปิดฟังพอร์ตนี้จะแสดงพอร์ตที่ใช้เปิด

  • ตอนนี้คุณสามารถเห็นกระบวนการที่ใช้พอร์ต 80 และ 443

  • จากนั้นคุณสามารถฆ่ากระบวนการอย่างใดอย่างหนึ่งจาก CMD โดยใช้ PID ของมัน (ซึ่งจะแสดงในการตรวจสอบทรัพยากร) หรือโดยตรงจากตัวจัดการงาน

  • หากต้องการฆ่ากระบวนการจาก CMD โดยใช้ชนิด PID Taskkill /PID 26356 /Fโดยที่ 26356 คือ PID


2

ทางออกที่ดีที่สุดสำหรับผู้ใช้ windows คือ:

  1. เปิด netstat (จากแผงควบคุม XAMPP)
  2. ค้นหา PID ของกระบวนการที่ใช้พอร์ต 80
  3. เปิด CMD ด้วยการจัดการ
  4. เรียกใช้taskkill /pid PID(แทนที่จะใช้ PID ใช้ pid คุณพบจาก netstat)
    เฮ้สนุกกับคุณทำเสร็จแล้ว .....

2

เอาล่ะไม่มีพอร์ต 80 ไม่มี Skype ตำหนิ! ปัญหาของฉันค่อนข้างง่าย (& โง่) ฉันมีแบ็กสแลชพิเศษ (\) (บน Windows) หลังจากที่ฉันระบุเส้นทางสำหรับคำสั่ง DocumentRoot ดังนั้นฉันจึงทำการเปลี่ยนแปลงเช่นนี้และปัญหาก็หายไปเหมือนซุปเป็ด .

index.php ของฉันอยู่ในเส้นทาง "D: \ sites \ dummy" และ httpd.conf ของฉันเป็นเช่นนี้:

<VirtualHost 127.0.0.2:80>
ServerName dummy.local
DocumentRoot "D:\websites\dummy\" #mistake here
</VirtualHost>
<Directory "D:\websites\dummy\"> #mistake here
    Require all granted
</Directory>

ดังนั้นเพียงแค่เปลี่ยนสองบรรทัดเหล่านี้:

#first mistake fix:
DocumentRoot "D:\websites\dummy"
#second (similar) mistake fix:
<Directory "D:\websites\dummy">

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


1

สำหรับฉันปัญหานี้เริ่มต้นเมื่อฉันโฮสต์การเชื่อมต่อ VPN บนคอมพิวเตอร์ Windows 8 ของฉัน

เพียงแค่ลบการเชื่อมต่อจาก"แผงควบคุม \ เครือข่ายและการเชื่อมต่ออินเทอร์เน็ต \ เครือข่าย"แก้ปัญหาได้


1

โปรดทราบว่าเมื่อใดก็ตามที่คุณเปลี่ยนพอร์ตเริ่มต้นเบราว์เซอร์ของคุณจะไม่ทราบเกี่ยวกับสิ่งนั้น 80และ443ดูเหมือนจะเป็นมาตรฐานในบางวิธีดังนั้นสำหรับตัวอย่างเช่นถ้าคุณเปลี่ยน80ไป8080คุณจะมีการเข้าถึงเว็บไซต์ของคุณด้วยวิธีนี้แล้ว:

localhost:8080/path_to_your_website.php


1

ในกรณีของฉันนี้เกิดขึ้นหลังจากติดตั้งเซิร์ฟเวอร์ sql และการแก้ปัญหาตามที่อธิบายไว้ในคำตอบนี้

Xampp - ไม่สามารถเริ่ม Apache หลังจากติดตั้ง SQL Server และ Visual Studio

ดังนั้นฉันต้องปิดบริการ "บริการรายงานของ SQL Server" จากบริการ Windows


1

ทางออกที่ดีที่สุด

เปิดแผงควบคุม XAMPP คลิกที่กำหนดค่าสำหรับ Apache จากนั้นคลิกที่ Apache (httpd.config) .now ในโปรแกรมแก้ไขข้อความ ctrl + f -> ค้นหา "Listen 80" แล้วแทนที่ด้วย "Listen 8079" โดยไม่ต้องใส่ใบเสนอราคา :) แต่ตอนนี้คุณต้องใช้มันเหมือนhttp: // localhost: 8079 /

PS ฉันพยายามเปลี่ยนการตั้งค่าพอร์ตสำหรับ skype หยุดบริการตัวแทนการปรับใช้เว็บซึ่งฉันหาไม่ได้ใน windows 10, cmd -> net stop http และวิธีการอื่น ๆ แต่ไม่มีอะไรทำงานยกเว้นสิ่งนี้

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