localhost không hoạt động trên OS X Yosemite


11

Tôi có máy chủ apache cục bộ của Mac đang chạy và khi tôi truy cập localhost, tôi nhận được trang "Nó hoạt động" tiêu chuẩn.Trang "Nó hoạt động" đã được lưu trong bộ nhớ cache - trên thực tế nó bị hỏng giống như 127.0.0.1. Khi tôi truy cập 127.0.0.1 tuy nhiên chrome mang lại cho tôi Error code: ERR_CONNECTION_REFUSED. Thế là tôi chạy a telnet. Kết quả:

harryg$ 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

Nhưng scutilđưa ra điều này:

harryg$ scutil -r localhost
Reachable,Local Address,Directly Reachable Address

Bất cứ ý tưởng tại sao nó không hoạt động? Là apache nghe trên một số cổng khác nhau? Nếu vậy làm thế nào để tôi kiểm tra? Tôi có một số vhost cục bộ có thể truy cập được bởi một số .devmáy chủ ảo cục bộ mà tôi đã thêm vào tệp máy chủ của mình. Ví dụ, 127.0.0.1 home.devnhưng họ cũng đưa ra lỗi ở trên.

Biên tập

Dường như không có gì nghe trên cổng 80. Khi tôi chạy, sudo lsof -iTCP:80 -sTCP:LISTENtôi không nhận được đầu ra. Apache dường như đang chạy - tôi đã chạy apachectlrestart` nhiều lần.


bạn có thể kiểm tra xem webshare của bạn có hoạt động với công cụ này không; clickontyler.com/web-shaming
siniradam

Bạn localhostđang làm việc hoàn toàn tốt. Apache thì không. Cập nhật câu hỏi của bạn để thể hiện sự thật này và đừng quên bao gồm các bit có liên quan của cấu hình Apache và các tệp nhật ký của nó.
Daniel B

Tôi đã có một vấn đề tương tự và đã có thể giải quyết nó: stackoverflow.com/questions/26454160/
Khăn

Cách thông thường để làm điều này trên Mavericks / Yosemite là chuyển tiếp từ cổng 80 sang cổng 8080. Xem gist.github.com/mindw0rk/dcc6c02a92b49bde0f13 để biết ví dụ về cách thiết lập điều này bằng cách sử dụng pfctl Nghe 8080. Bạn sẽ có thể kết nối với cổng 80 và lưu lượng sẽ được chuyển tiếp đến apache. (trong cửa hàng dev của chúng tôi, mọi người đều sử dụng thiết lập này, ngoại trừ với nginx)
bazzargh

Câu trả lời:


11

Kiểm tra cấu hình Apache của bạn bằng lệnh này:

sudo apachectl -t

Điều này kiểm tra các tập tin cấu hình và cho bạn biết nếu có lỗi. Chạy sudo apachectl startkhông xuất lỗi cú pháp tệp cấu hình cho các bản ghi vì một số lý do.


Chính xác vấn đề tương tự ở đây. sudo apachectl -ttrả lại Syntax OK. Sau đó thì sao?
Pmpr

2

Lệnh này sẽ cho bạn biết cổng nào và địa chỉ IPv (4/6) nào mà Apache của bạn đang nghe:

sudo lsof -P -n -iTCP -sTCP:LISTEN | grep httpd

Nếu không có gì lắng nghe, bạn nhận được gì từ điều này?

sudo serveradmin status web
sudo serveradmin settings web
ps -acx | grep http

.

Ở giải pháp cuối cùng:

sudo serveradmin stop web

Mở Console.app và đặt dấu trang

sudo serveradmin start web

Kiểm tra nhật ký


Có một vấn đề về tệp cấu hình đã ngăn Apache bắt đầu! Các trang được lưu trong bộ nhớ cache khiến tôi tin rằng nó đang chạy cho localhost nhưng không phải cho IP cục bộ của tôi.
harryg

Rất tuyệt, serveradmin kích hoạt httpd và thường tạo nhật ký khởi động, bạn đã có thể giải quyết vấn đề chưa? Thông báo lỗi plz (đối với các thành viên khác) là gì?
Florian Bidabe

Vâng, nó đã được giải quyết. Tôi đã quên bỏ ghi chú mô-đun vhosts apache để Apache gặp lỗi khi thấy VirtualDocumentRoutetệp cấu hình vhosts của tôi.
harryg

2
hey harryg, nếu bạn có cơ hội cập nhật trạng thái để giải quyết.
Florian Bidabe

Tôi đã có vấn đề này và thất bại thầm lặng khi bắt đầu apache. Không có gì trong nhật ký, do lỗi cú pháp trong cấu hình. Lệnh này nổi lên:sudo apachectl -t
Matt Gibson

0

Tôi tin rằng cổng mặc định là 8080, nhưng bạn có thể kiểm tra tệp httpd.conf để biết các cổng mà Apache đang nghe.


8080 không hoạt động và tệp cấu hình của tôi có Nghe 80 trong đó.
harryg

Bạn có thể thấy Apache đang chạy, có lẽ với một "ps aux" không? Ngoài ra, nhật ký lỗi có hiển thị gì không? Vị trí mặc định phải là / var / log / apache2 / error_log

đầu ra là netstat -tulpn | grep :80gì?
cá mòi
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.