Mac Apache Server ไม่ทำงานเมื่อปิดไร้สาย


1

ฉันมีปัญหาที่ฉันตั้งค่าเซิร์ฟเวอร์ apache ในพื้นที่ของฉันใน Mac OS X Yosemite ของฉัน เซิร์ฟเวอร์ทำงานได้ดีจนกระทั่งฉันต้องทำงานจากระยะไกลโดยไม่ต้องใช้อินเทอร์เน็ตไร้สาย ฉันมองหาวิธีแก้ปัญหาเพื่อให้เซิร์ฟเวอร์ทำงานได้เมื่อฉันออฟไลน์ แต่ดูเหมือนจะไม่สามารถให้ผลลัพธ์ได้

ฉันมีการตั้งค่าเหล่านี้ใน. conf ของฉัน

Listen *:80
ServerName localhost

เหล่านี้ในครอบครัวของฉัน

127.0.0.1   localhost
255.255.255.255 broadcasthost
::1             localhost 
fe80::1%lo0 localhost

ในขณะที่ออฟไลน์ฉันสามารถ ping 127.0.0.1 ได้สำเร็จ แต่เมื่อฉันลองและ ping หรือ traceroute กับหนึ่งในโดเมน vhosts ของฉันฉันบอกว่าไม่พบโฮสต์

traceroute example.dev

ฉันสามารถดูการตั้งค่าแบบใดได้บ้างเพื่อให้ทำงานแบบออฟไลน์ได้ ฉันจำเป็นต้องตั้งค่าอินเทอร์เฟซเครือข่ายใหม่หรือไม่

หมายเหตุ: ฉันไม่ได้ใช้ XAMPP หรือ MAMP เพียงเซิร์ฟเวอร์ apache ที่ติดตั้งไว้ล่วงหน้าบนระบบปฏิบัติการ

คำตอบ:


2

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

(เช่นเดียวกันกับโดเมนเช่นlvh.meและlvho.stLocal Local Host นั้นมีการลงทะเบียนโดยบางคนที่ทำให้พวกเขาและโดเมนย่อยชี้ไปที่127.0.0.1)

โปรดทราบว่า.devเป็นโดเมนระดับที่นำเสนอ เมื่อกระตุกหรือขุดบนเครื่องของฉันฉันเห็น:

dig example.dev

example.dev.        3600    IN  A   127.0.53.53

... ที่ที่อยู่ IP พิเศษนี้ควรส่งเสียงสัญญาณเตือนดังขึ้น :

127.0.53.53 เป็นที่อยู่ IPv4 พิเศษที่จะปรากฏในบันทึกของระบบแจ้งเตือนผู้ดูแลระบบว่ามีปัญหาการชนชื่อที่อาจเกิดขึ้นทำให้สามารถวินิจฉัยและแก้ไขได้อย่างรวดเร็ว "53" ถูกใช้เป็นตัวช่วยจำเพื่อระบุปัญหาที่เกี่ยวข้องกับ DNS เนื่องจากการใช้พอร์ตเครือข่าย 53 สำหรับบริการ DNS

ฉันไม่รู้ว่ามันถูกแมปแบบนั้นในเครือข่ายของฉันได้อย่างไร อาจเป็นเพราะ.devโดเมนอยู่ในสถานะข้อเสนอและมีคนเพิ่มบางส่วนแล้วหรือไม่ นอกเหนือจากนี้: โดเมนทั้งหมด .devจับคู่กับที่อยู่ IP นั้นสำหรับฉัน ถึงอย่างนั้นก็127.0.53.53ไม่ได้แมปไปยังเว็บเซิร์ฟเวอร์ในท้องที่ของฉัน

ดังนั้นฉันคิดว่าexample.devแผนที่127.0.0.1ในเครือข่ายของคุณและเพื่อให้คอมพิวเตอร์ของคุณค้นหาชื่อมันต้องการการเชื่อมต่อเครือข่าย เนื่องจากการใช้.devอาจเป็นการปะทะกันหากมีการกำหนดโดเมนระดับบนสุดที่เสนอและในขณะที่คุณต้องการให้สิ่งต่าง ๆ ทำงานได้โดยไม่ต้องเชื่อมต่อเครือข่ายคุณสามารถเพิ่มชื่อแทนอื่น ๆ ลงในไฟล์โฮสต์ของคุณได้ ชอบในบรรทัดสำหรับ127.0.0.1:

127.0.0.1    localhost my.host www.my.host subdomain2.my.host another-host

คุณสามารถดูว่าเกิดอะไรขึ้นถ้าคุณต้องการโดเมน (ย่อย) จำนวนมาก ... หากต้องการใช้ wildcard โดยไม่ต้องเชื่อมต่อเครือข่ายคุณอาจต้องตั้งค่าเซิร์ฟเวอร์ DNS บางตัวในเครื่องของคุณ

หากต้องการดูอย่างรวดเร็วว่าทั้งหมดนี้เป็นปัญหาหรือไม่เพียงเพิ่มexample.dev:

127.0.0.1    localhost example.dev

ขอบคุณที่สละเวลาช่วยฉัน ฉันเพิ่ม127.0.0.1 localhost example.devไปยังโฮสต์ของฉันและ vhost นั้นก็เริ่มทำงานได้ ดังนั้นฉันจึงติดตั้ง dnsmasq เพื่อจับคู่.devโดเมนทั้งหมด สิ่งที่กำหนดเส้นทางแบบไดนามิกตามที่ฉันเข้าใจ และด้วยการที่ฉันไม่จำเป็นต้องเพิ่มรายการโฮสต์ในขณะที่ออนไลน์
brenjt

@brenjt คุณกำลังบอกว่าคุณตั้งค่า dnsmasq ตอนนี้เป็นการแก้ไขหรือคุณใช้มันไปแล้วและนั่นเป็นปัญหาที่ทำให้คุณหรือไม่ หากคุณตั้งค่าทันที: คุณทำอะไรเพื่อให้ dnsmasq ทำงานเมื่อไม่เชื่อมต่อ (การติดตั้ง dnsmasq ของฉันไม่ทำงานจริง ๆ เมื่อฉันตัดการเชื่อมต่อจากเครือข่ายของฉันบน Yosemite ฉันเดาว่าเกี่ยวข้องกับการresolve-fileไม่ได้ตั้งค่า/usr/local/etc/dnsmasq.confดังนั้นการใช้ค่าเริ่มต้น/etc/resolve.confซึ่งไม่มีอยู่เมื่อไม่ได้เชื่อมต่อดังนั้น Yosemite ควรจะสามารถ ค้นหา/etc/resolver/mydomainไฟล์ของฉันซึ่งบอกให้ OS X ใช้ dnsmasq ... )
Arjan


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