บริการ httpd เริ่มต้นใหม่ / (98) ที่อยู่ที่ใช้งานแล้ว


11

จากสีน้ำเงินฉันไม่สามารถรีสตาร์ท apache บนเว็บเซิร์ฟเวอร์ CentOS 6.8 ของฉันได้:

# service httpd restart
Stopping httpd:                                            [  OK  ]
Starting httpd: (98)Address already in use: make_sock: could not bind to address [::]:7080
(98)Address already in use: make_sock: could not bind to address 0.0.0.0:7080
no listening sockets available, shutting down
Unable to open logs
                                                           [FAILED]

ฉันลองสิ่งต่าง ๆ ที่ฉันอ่านทางออนไลน์รวมถึงการลบไฟล์ล็อค

ฉันตัดสินใจลองรีบูตเซิร์ฟเวอร์ หลังจากรีบูตแล้วความพยายามโหลดเว็บไซต์ที่โฮสต์จะส่งผลให้ "502 Bad Gateway"

# service httpd status
httpd is stopped

# service httpd start
Starting httpd:                                            [  OK  ]

# service httpd status
httpd dead but subsys locked

แม้จะมีสถานะ "ตายแล้ว" แต่ตอนนี้ฉันสามารถโหลดเว็บไซต์ได้แล้ว!

บางครั้งบริการ httpd เริ่มทำงานอีกครั้ง ...

# service httpd restart
Stopping httpd:                                            [  OK  ]
Starting httpd:                                            [  OK  ]

แต่บางครั้งก็ส่งผลให้เกิดข้อผิดพลาดแรกข้างต้น ในกรณีนี้ฉันสามารถแก้ไขด้วย:

# killall -9 httpd
# service httpd start

ดังนั้นฉันจึงสามารถหลีกเลี่ยงได้ แต่ฉันอยากรู้จริงๆเกี่ยวกับสิ่งที่เกิดขึ้นและสงสัยว่าฉันควรจะกังวล


ระบบไฟล์ของคุณเต็มหรือไม่? และ: เมื่อมีข้อผิดพลาดเกิดขึ้นให้เรียกใช้netstat -tulpenและค้นหาสิ่งที่กำลังฟังบนพอร์ต 7080 คุณเรียกใช้ apache ใช่ไหม พอร์ต 7080 ไม่ใช่ข้อผิดพลาด?
Lenniey

tcp 0 0 :::7080 :::* LISTEN 0 5626801 3829/httpd
stevland

คำตอบ:


12

คุณอาจกำหนดฟังของคุณบนพอร์ตนั้นสองครั้งในการกำหนดค่าของคุณที่ไหนสักแห่ง

ฟัง *: 7080

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

ตรวจสอบว่าตำแหน่งการบันทึกของคุณมีอยู่และสามารถเขียนได้และมีพื้นที่ในการเขียนข้อความที่ท้ายที่สุดเป็นที่น่าสงสัย


9

SSH ไปยังเซิร์ฟเวอร์และดำเนินการดังต่อไปนี้:

setenforce 0

สิ่งนี้จะปิดใช้งาน selinux จนกว่าจะรีบูตครั้งถัดไป

จากนั้นลองโหลด Apache อีกครั้ง

service httpd restart

ถ้ามันทำงานได้อย่างใด selinux ก็เปิดอยู่

หากต้องการปิดใช้งานอย่างถาวรให้ไปที่ลิงก์นี้:

https://kb.plesk.com/en/115626


เท่าที่ฉันรักคำตอบง่าย ๆ แต่น่าเสียดายที่มันไม่ทำงาน :(
stevland

คุณสามารถรันคำสั่งเหล่านี้เพื่อดูว่าใช้พอร์ตอะไรได้บ้าง โปรดเพิ่มผลลัพธ์ในคำถามหรือ Pastebin "netstat -ano | grep 80" "netstat -ano | grep 7080" "cat / etc / services | grep -w 80" "cat / etc / services | grep -w 7080" "nmap localhost | grep 80" "nmap localhost | grep 80 "" nmap localhost "
Anthony Fornito
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.