ปัญหาการเข้าถึง localhost บน Mac OS X Mavericks …มันทำงานได้ดีจนกระทั่งฉันรีบูตวันนี้


16

ฉันสับสนเกี่ยวกับปัญหาที่เกิดขึ้นและขอขอบคุณสำหรับความช่วยเหลือในการแก้ไขปัญหา

ฉันมี iMac ที่ใช้ Mac OS X Mavericks 10.9.2

ฉันตั้งค่า apache ของฉันเพื่อให้บริการเอกสารจากรูทเซิร์ฟเวอร์ / ปริมาณ / ไซต์ /

ฉันใช้โฮสต์เสมือนแบบไดนามิกดังนั้นเพียงแค่เพิ่มไดเรกทอรีด้วยส่วนต่อท้าย * .dev มันจะกลายเป็นโฮสต์เสมือน

ไฟล์โฮสต์ของฉันค่อนข้างพื้นฐาน:

##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting.  Do not change this entry.
##
127.0.0.1         localhost
255.255.255.255   broadcasthost
::1               localhost
fe80::1%lo0       localhost

ไฟล์ httpd-vhosts.conf ของฉันเป็นดังนี้:

#
# Virtual Hosts
#
# If you want to maintain multiple domains/hostnames on your
# machine you can setup VirtualHost containers for them. Most configurations
# use only name-based virtual hosts so the server doesn't need to worry about
# IP addresses. This is indicated by the asterisks in the directives below.
#
# Please see the documentation at 
# <URL:http://httpd.apache.org/docs/2.2/vhosts/>
# for further details before you try to setup virtual hosts.
#
# You may use the command line option '-S' to verify your virtual host
# configuration.

#
# Use name-based virtual hosting.
#
NameVirtualHost *:80

#
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for all requests that do not
# match a ServerName or ServerAlias in any <VirtualHost> block.
#

#allow access to the Hosts directory where your sites are
<Directory "/Volumes/sites">
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    #you could configure the following to only allow access from localhost
    Order allow,deny
    Allow from all
</Directory>

#get the server name from the Host: header
UseCanonicalName Off
VirtualDocumentRoot /Volumes/sites/%0/

ทั้งหมดนี้ใช้งานได้ และฉันไม่ได้เปลี่ยนแปลงอะไรในไฟล์ httpd.conf ของฉัน

แต่ฉันไม่สามารถโหลด localhost ได้

ฉันยังไม่สามารถโหลด 127.0.0.1 ได้

ฉันรันคำสั่งsudo lsof -i :80 | egrep "PID|LISTEN"เพื่อดูว่า PID ใด ๆ กำลังฟังบนพอร์ต 80 ผลลัพธ์ว่างเปล่าหรือไม่

ฉันพยายามรีสตาร์ท apache และหยุดและเริ่มใช้ apache อีกครั้ง

sudo apachectl stop sudo apachectl start

sudo apachectl restart

ไม่มีอะไรทำงาน

ฉันตรวจสอบว่า apache ทำงานอยู่หรือไม่โดยออกคำสั่ง httpd -v

ผลตอบแทนคือ:

Server version: Apache/2.2.26 (Unix)
Server built:   Dec 10 2013 22:09:38

ฉันพยายามเชื่อมต่อกับ localhost และ 127.0.0.1 ผ่านทางบรรทัดคำสั่งด้วยผลลัพธ์ต่อไปนี้:

alisamii at alisamii in ~
$ telnet localhost 80
Trying ::1...
telnet: connect to address ::1: Connection refused
Trying 127.0.0.1...
telnet: connect to address 127.0.0.1: Connection refused
Trying fe80::1...
telnet: connect to address fe80::1: Connection refused
telnet: Unable to connect to remote host
alisamii at alisamii in ~
$ telnet 127.0.0.1 80
Trying 127.0.0.1...
telnet: connect to address 127.0.0.1: Connection refused
telnet: Unable to connect to remote host
alisamii at alisamii in ~
$ lynx http://localhost

Looking up localhost
Making HTTP connection to localhost
Alert!: Unable to connect to remote host.

lynx: Can't access startfile http://localhost/
alisamii at alisamii in ~
$ lynx http://127.0.0.1

Looking up 127.0.0.1
Making HTTP connection to 127.0.0.1
Alert!: Unable to connect to remote host.

lynx: Can't access startfile http://127.0.0.1/
alisamii at alisamii in ~

กรุณาช่วย.


คุณทำอะไรกับปัญหานี้ในขณะที่ฉันกำลังประสบสิ่งเดียวกันที่นี่: (
Pmpr

คำตอบ:


37

มีปัญหาเดียวกัน ฉันลบโฟลเดอร์หนึ่งในโครงการของฉันแล้วและมันก็เสียหาย ในกรณีนี้การกำหนดค่าของเว็บไซต์ควรถูกลบออกจาก httpd-vhosts.conf และ httpd.conf

ลอง ping 127.0.0.1

apachectl configtest สามารถช่วยคุณตรวจหาปัญหา


7
ถูกต้องแน่นอนต้องapachectl configtestลองครั้งแรกของคุณ! ขอบคุณ
Lucas Serafim

คำเตือน: DocumentRoot [/ Users / me / blah / blah] ไม่มีอยู่คุณสามารถค้นหาบรรทัดที่ละเมิดได้อย่างรวดเร็วsudo cd / && grep -rn "/Users/me/blah/blah" *
Shanimal

4

ปัญหาอาจเป็นได้ว่าไฟล์โฮสต์อาจเสียหายจากการเข้ารหัส ASCII ดั้งเดิม ฉันล้างช่องว่างทั้งหมดและวางแท็บในนั้นรันsudo killall -HUP mDNSResponder(คุณสามารถทำได้แทนที่จะรีบูตเครื่อง) และหลังจากนั้นก็ใช้งานได้


1
ใช่/etc/hostsได้รับความเสียหาย - บรรทัดที่ซ้ำกันบางช่องว่างที่ครั้งหนึ่งเคยมีแท็บ ... ตอนนี้เพื่อหาวิธีที่เกิดขึ้น ....
LeeGee

3

ในกรณีของฉันปัญหาคือว่าโฟลเดอร์ / ส่วนตัว / var / log / apache2 / หายไปด้วยเหตุผลที่ไม่รู้จัก สร้างใหม่ด้วย

sudo mkdir /private/var/log/apache2

และรีสตาร์ท apache ด้วย

sudo apachectl restart

ทำเคล็ดลับ!


2

การเชื่อมต่อที่ถูกปฏิเสธส่วนใหญ่เกิดจากเซิร์ฟเวอร์ที่ไม่ได้ฟังพอร์ต

ข้อผิดพลาดทางไวยากรณ์หรือข้อผิดพลาดไฟล์กำหนดค่าทั่วไปจะฆ่า apache เมื่อเริ่มต้น (โดยปกติแล้วจะไม่มีการรายงานไปยังบันทึกข้อผิดพลาดหรือเทอร์มินัล)

ลองใช้sudo apachectl configtestและดูว่ามันแสดงข้อความผิดพลาดหรือไม่


-1

เฉพาะ Mac เท่านั้น ก่อนอื่นคุณต้องเปิดใช้งาน Web Sharing สำหรับ Maveric สามารถทำได้เหมือนในบทช่วยสอนนี้ https://www.youtube.com/watch?v=TgiZiTU9JVY สองสำหรับ Mac การจราจรหากกรองผ่าน pfctl (เช่น man pfctl) ใน Maveric และ ipfw (man ipfw) สำหรับ Mac OS รุ่นเก่าถ้าคุณต้องการมากกว่าพอร์ต 80


รู้รอบบน Ask Different จะต้องเป็นมากกว่าแค่ลิงค์ มันไม่เป็นไรที่จะรวมลิงค์ แต่โปรดสรุปหรือตัดตอนมาในคำตอบ ความคิดคือการทำให้คำตอบยืนอยู่คนเดียว
nohillside

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