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.