“ make_sock: ไม่สามารถผูกกับที่อยู่ [::]: 443” เมื่อรีสตาร์ท apache (ติดตั้ง trac และ mod_wsgi)


92

ฉันกำลังพยายามติดตั้ง trac และ mod_wsgi ผ่าน SSL ฉันพยายามติดตั้งด้วยตนเอง แต่ไม่ได้ผลดีนักดังนั้นฉันจึงเริ่มทำตามสิ่งนี้: trac-on-ubuntu

ฉันข้ามส่วน svn ไปเพราะฉันต้องการใช้ git แทน หลังจากแก้ไข httpd.conf ครั้งแรก:

WSGIScriptAlias /trac /var/trac/apache/trac.wsgi

<Directory /var/trac/apache>
    WSGIApplicationGroup %{GLOBAL}
    Order deny,allow
    Allow from all
</Directory>

ฉันรีสตาร์ท apache เท่านั้นเพื่อรับข้อผิดพลาดนี้:

* Restarting web server apache2                                                    

(98)Address already in use: make_sock: could not bind to address [::]:443

                                                                     [ OK ]

การทำเช่นนี้ไม่ได้แสดงอะไรเลย

 netstat -anp | grep 443 
 fuser 443/tcp

การทำเช่นนี้ไม่ได้ผลอะไรเลยนอกจากคำสั่ง grep ที่ฉันรัน:

ps -aux | grep httpd

เหตุใดจึงบอกว่ามีสิ่งอื่นกำลังใช้พอร์ตเมื่อไม่มีอะไรปรากฏขึ้น

แก้ไข:พวกคุณจะหัวเราะเยาะเรื่องนี้ ฉันมี Listen 443 พิเศษใน ports.conf ที่ไม่ควรมี การลบที่แก้ปัญหานี้


ดีคุณพบคำสั่ง Listen พิเศษ กำลังจะแนะนำสาเหตุที่เป็นไปได้จนกว่าฉันจะแก้ไขของคุณ :-)
Graham Dumpleton

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

2
น่าเสียดายที่ฉันมีปัญหานี้ แต่ "ฟัง 443" เพิ่มเติมไม่ใช่สาเหตุ ...
Cerin

1
ฉันมีปัญหาเดียวกัน ลบ 443 อันดับต้น ๆ ออกจาก ports.conf รีสตาร์ท apache2 และทุกอย่างใช้งานได้
PrestonDocks

8 ปีต่อมาและบุคคลอื่นที่ไม่ต้องการเอ่ยชื่อของเขาที่เจอปัญหานี้ และแน่นอนว่า 8 ปีต่อมาค้นหาข้อความแสดงข้อผิดพลาดที่คุณเข้าสู่สแตกล้น นั่นคือเหตุผลที่ฉันต้องโฆษณาข้อความ;)
NME New Media Entertainment

คำตอบ:


228

พวกคุณจะหัวเราะเยาะเรื่องนี้ ฉันมี Listen 443 พิเศษใน ports.conf ที่ไม่ควรมี การลบที่แก้ปัญหานี้


44
ขอบคุณฉันอยู่ใน /etc/httpd/conf.d/ssl.conf
Nabil Kadimi

15
ฉันอัปเดต apache ด้วย YUM และสร้างไฟล์ ssl.conf ใหม่พร้อมฟังอีก 443 ....
zzarbi

4
ขอบคุณ ... สักวันฉันหวังว่าจะมีเว็บเซิร์ฟเวอร์ที่ใช้งานได้อย่างกว้างขวางเช่นเดียวกับ apache ที่ไม่ปวดหัวที่ซับซ้อนในการกำหนดค่า
Mike Pennington

3
ในกรณีของฉันการอัปเกรด httpd บน Centos ทำให้เกิดการติดตั้ง ssl.conf ใหม่ ... แต่เราประกาศ Listen 443 ในไฟล์กำหนดค่าอื่น หุ่นถอด ssl.conf ... แต่หุ่นวิ่งใต้ผู้โดยสาร / httpd. ดังนั้นตัวแทนหุ่นจึงไม่มีโอกาสลบ ssl.conf ได้ดังนั้นจึงมีคำสั่ง Listen 443 2 คำตามที่อธิบายไว้ที่นี่
rfay

1
ฉันใช้งาน certbot ซึ่งแทรกรายการ 443 อื่นในไฟล์กำหนดค่าของฉัน ขอบคุณ!
Senica Gonzalez

16

ขอบคุณสำหรับคำตอบสำหรับเวอร์ชัน apache 2.4.x หากติดตั้ง ssl_module โดยใช้คำสั่ง yum ไม่ต้องการเพิ่มพอร์ต: 443ในไฟล์ httpd.conf (main)

หากต้องการค้นหาพอร์ต 443 ในไฟล์กำหนดค่า

# grep '443' /etc/httpd/conf.d/*

/etc/httpd/conf.d/ssl.conf:Listen 443 https
/etc/httpd/conf.d/ssl.conf:<VirtualHost _default_:443>
/etc/httpd/conf.d/ssl.conf:#ServerName www.example.com:443

# grep '443' /etc/httpd/conf/httpd.conf 
Listen 443

เพียงแค่ลบบรรทัดหรือคำสั่งมัน (ฟัง 443) จากhttpd.confไฟล์


1
นี่เป็นเคล็ดลับ! ในกรณีของฉันข้อผิดพลาดนั้นปรากฏขึ้นหลังจาก a yum update:-P
Pathros

15

ฉันกำลังเพิ่มคำตอบอื่นสำหรับสิ่งนี้เนื่องจากฉันมีปัญหาเดียวกันและแก้ไขด้วยวิธีเดียวกัน: ฉันได้ติดตั้ง SSL บน apache2 โดยใช้a2enmod sslซึ่งดูเหมือนว่าจะเพิ่มการกำหนดค่าเพิ่มเติมใน/etc/apache2/ports.conf:

NameVirtualHost *:80
Listen 80

NameVirtualHost *:443
Listen 443

<IfModule mod_ssl.c>
    Listen 443
</IfModule>

<IfModule mod_gnutls.c>
    Listen 443
</IfModule>

ฉันต้องแสดงความคิดเห็นก่อนListen 443หลังNameVirtualHost *:443คำสั่ง:

NameVirtualHost *:443
#Listen 443

แต่ฉันคิดว่าฉันสามารถปล่อยมันและแสดงความคิดเห็นกับคนอื่นได้เช่นกัน ยังไงก็ขอบคุณสำหรับแนวทางแก้ไข :)


4

สำหรับคนอื่น ๆ ที่ไม่มีคำสั่ง Listen ซ้ำและไม่มีกระบวนการทำงานบนพอร์ตให้ตรวจสอบว่าคุณไม่ได้รวม ports.conf สองครั้งใน apache2.conf โดยไม่ได้ตั้งใจ (อย่างที่ฉันทำเนื่องจากการผสานที่ไม่ดี)


3

ฉันใช้ apache เวอร์ชัน 2.4.27 ยังมีปัญหานี้แก้ไขได้ด้วยการปรับเปลี่ยน

conf / extra / httpdahssl.conf แสดงความคิดเห็นเนื้อหา 18 บรรทัด (ฟัง 443 https) ใช้งานได้ดี


คุณสามารถใช้ https ได้หรือไม่หากคุณแสดงความคิดเห็นในบรรทัดนี้
Hamfri

1

ฉันทำผิดพลาดในการตั้งชื่อไฟล์สำรองในไดเร็กทอรี /etc/httpd/conf.d ไม่ถูกต้อง ใน README ระบุว่าจะส่งผ่านไฟล์. conf ทั้งหมดตามลำดับตัวอักษร

ฉันได้สร้าง ssl- < date > .conf (หมายถึงการสำรองข้อมูล) และกำลังโหลดก่อน ssl.conf มันผูกพอร์ต: 443 ตาม ssl- < date > .conf และล้มเหลวบน ssl.conf

เมื่อฉันเปลี่ยนชื่อไฟล์สำรองเป็น ssl.conf < วันที่ > บริการเริ่มต้นโดยไม่มีปัญหา

โปรดทราบว่าเซิร์ฟเวอร์ที่ฉันใช้งานอยู่กำลังเรียกใช้ RHEL 6


เกิดเหตุการณ์แบบนี้กับฉันฉันเลยคิดว่าจะพูดถึงเรื่องนี้เผื่อว่าจะช่วยใครได้ ฉันเปลี่ยนชื่อ ssl.conf เพื่อให้จำได้ว่าตั้งค่าให้ใช้ Letsencrypt ต่อมาฉันอนุญาตให้สิ่งที่ฉันคิดว่าเป็นการอัปเดตเล็กน้อยของ Apache ที่จะเกิดขึ้น การอัปเดตนั้นทำให้ ssl.conf กลับมาอยู่ใน conf.d สร้างข้อขัดแย้งในคำสั่ง Listen ไม่แน่ใจว่าจะทำอย่างไรกับเรื่องนี้ยกเว้นระมัดระวัง หากฉันติดอยู่กับชื่อไฟล์ ssl.conf เริ่มต้นการอัปเดตอาจทำให้เกิดปัญหาได้!
Brian Doherty

ฉันได้ทำสิ่งเดียวกันและ Apache ไม่สามารถเริ่มได้ ฉันได้ลบไฟล์สำรองนั้นแล้วและมันก็เริ่มทำงาน ขอบคุณมากสำหรับคำตอบนี้คุณคือผู้ช่วยชีวิต
Umesh Patil

1

ให้ฉันเพิ่มอีกหนึ่งสาเหตุของข้อผิดพลาด ใน httpd.conf ฉันรวมไว้อย่างชัดเจน

Include etc/apache24/extra/httpd-ssl.conf

ในขณะที่ไม่สังเกตเห็นตัวแทนก่อนหน้านี้

Include etc/apache24/extra/*.conf

Grepping 443 จะไม่พบสิ่งนี้


0

ฉันใช้ Ubuntu ฉันเพิ่งปิดใช้งานโหมด ssl ของ apache2 และมันก็ใช้ได้สำหรับฉัน

a2dismod ssl

จากนั้นรีสตาร์ท apache2

service apache2 restart

0

ฉันได้ตรวจสอบและแก้ไขสิ่งต่อไปนี้และได้รับการแก้ไขแล้ว -

  1. httpd.conf ไฟล์ที่ /etc/httpd/conf/
  2. ตรวจสอบ IP และพอร์ตการรับฟังเช่น 10.12.13.4:80
  3. เอาพอร์ตการฟังพิเศษออก
  4. รีสตาร์ทบริการ httpd ที่จะใช้

0

ฉันพบปัญหาใน windows7 phpeclipse เมื่อฉันเริ่ม XAMPP ทางออกของฉันคือ:

  • 1. แสดงความคิดเห็นจาก \ xampp \ apache \ conf \ httpd.conf -> line171 -> #LoadModule โมดูล ssl_module / mod_ssl.so

  • 2.line539 -> # รวม conf / extra / httpd-ssl.conf

หรือคุณสามารถเปลี่ยนพอร์ต 443 เป็นพอร์ตอื่น



0

ใน httpd.conf แทน:

Listen *:443

คุณต้องเขียนListen 127.0.0.1:443 มันได้ผลสำหรับฉัน


คุณจะใช้127.0.0.1ในคำสั่งเพื่อรับฟังก็ต่อเมื่อคุณต้องการ จำกัด การยอมรับการเชื่อมต่อกับอินเทอร์เฟซการวนกลับของโฮสต์ภายในเครื่องเท่านั้น การลบListenคำสั่งที่ซ้ำกันตามที่หลายคนระบุไว้เป็นวิธีแก้ปัญหาทั่วไป หากคุณมีรายการที่ซ้ำกันบน*:443แล้วเปลี่ยนหนึ่งที่จะใช้งาน127.0.0.1ไม่ควรจริงๆได้ทำแตกต่างกันในขณะที่คนอื่น ๆจะยังคงพยายามผูกพอร์ตเดียวกันบน*:443 127.0.0.1
Graham Dumpleton

0

ฉันมีปัญหาเดียวกันเนื่องจาก ssl.conf หลายสำเนาใน /etc/httpd/conf.d - ควรมีเพียงอันเดียว


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