2013-02-23 41 views
5

Vì vậy, tôi đã làm việc với một số Máy chủ ảo trên OS X 10.8.2. Tôi đang sử dụng cài đặt Apache2 và MySQL để chạy các máy chủ ảo dựa trên tên. Họ đã làm việc hoàn toàn tốt đẹp cho đến đêm qua. Đột nhiên, tất cả các máy chủ ảo của tôi chuyển hướng đến trang "Không thể kết nối với".Apache sẽ không khởi động - mô-đun httpd nói được tải nhưng không chạy

Sau khi không quan sát xung quanh và cuối cùng kiểm tra nhật ký lỗi, tôi đã kết luận rằng Apache KHÔNG thực sự chạy. Ví dụ, ps aux | grep apache chỉ trả về quá trình grep. Tuy nhiên, nếu tôi thử sudo/usr/sbin/apachectl, tôi nhận được "org.apache.httpd: Đã được nạp" để trả lời.

Tôi đã kiểm tra tệp httpd.conf của mình và nó trông hoàn toàn ổn. Tôi không thể thấy bất kỳ thay đổi nào đối với nó. Tôi cũng chạy lệnh kiểm tra cú pháp (thoát khỏi não của tôi vào đúng thời điểm), và nó trả về OK. Điều duy nhất tôi tìm thấy trong nhật ký lỗi của tôi, điều cuối cùng, là từ hôm qua, ngày 21 tháng 2 và nói: "[Thu Feb 21 21:46:02 2013] [thông báo] đã bắt SIGTERM, tắt"

Kể từ đó, nhật ký lỗi Apache của tôi không chứa gì (vì nó không chạy). Tôi đã khởi động lại, đã thử khởi động lại apache; Tôi đang ở một mất mát hoàn toàn là tại sao nó nghĩ rằng nó đang chạy mặc dù nó không phải là.

Bất kỳ ý tưởng nào?

Trong /var/logs/system.log khi tôi cố gắng để bắt đầu và khởi động lại Apache:

Feb 23 09:27:00 Baileys-MacBook-Pro com.apple.launchd[1] (org.apache.httpd[8766]): Exited with code: 1 
Feb 23 09:27:00 Baileys-MacBook-Pro com.apple.launchd[1] (org.apache.httpd): Throttling respawn: Will start in 10 seconds 
Feb 23 09:27:10 Baileys-MacBook-Pro com.apple.launchd[1] (org.apache.httpd[8767]): Exited with code: 1 
Feb 23 09:27:10 Baileys-MacBook-Pro com.apple.launchd[1] (org.apache.httpd): Throttling respawn: Will start in 10 seconds 
Feb 23 09:27:16 Baileys-MacBook-Pro.local sudo[8769]: bailey : TTY=ttys000 ; PWD=/private/var/log ; USER=root ; COMMAND=/usr/sbin/apachectl start 
Feb 23 09:27:20 Baileys-MacBook-Pro com.apple.launchd[1] (org.apache.httpd[8772]): Exited with code: 1 
Feb 23 09:27:20 Baileys-MacBook-Pro com.apple.launchd[1] (org.apache.httpd): Throttling respawn: Will start in 10 seconds 
Feb 23 09:27:20 Baileys-MacBook-Pro.local sudo[8773]: bailey : TTY=ttys000 ; PWD=/private/var/log ; USER=root ; COMMAND=/usr/sbin/apachectl restart 
Feb 23 09:27:20 Baileys-MacBook-Pro com.apple.launchd[1] (org.apache.httpd[8777]): Exited with code: 1 
Feb 23 09:27:20 Baileys-MacBook-Pro com.apple.launchd[1] (org.apache.httpd): Throttling respawn: Will start in 10 seconds 
Feb 23 09:27:26 Baileys-MacBook-Pro.local sudo[8778]: bailey : TTY=ttys000 ; PWD=/private/var/log ; USER=root ; COMMAND=/usr/bin/vi system.log 

Vấn đề này vẫn còn sau khi khởi động lại. Kể từ ngày hôm sau, nó sẽ không bắt đầu nhưng tin rằng mô-đun httpd được nạp.

Tôi đang cố gắng tìm hiểu qua Google, nhưng - có ai biết Apache kiểm tra xem nó có được tải không? Tôi biết rất nhiều dịch vụ khóa tập tin để chạy; là nó có thể Apache có một tập tin khóa một nơi nào đó mà vẫn bị khóa mặc dù Apache hiện không chạy?



LƯU Ý: Tôi cũng đã đăng bài này lên ServerFault - tôi cũng đăng bài này tại đây vì tôi chưa nhận được gì trên ServerFault và tôi đã xem các bài đăng trên Apache StackOverflow, vì vậy tôi giả định các câu hỏi Apache là tốt cho Stack.

Trả lời

19

Tôi có thể tạo lại vấn đề (kinda) bằng cách khởi động Apache khi có một quá trình khác đang lắng nghe trên cùng một cổng mà Apache muốn liên kết với (thường là cổng 80). Vì vậy, kiểm tra xem có lẽ một quá trình lắng nghe trên cổng đó:

sudo lsof -i tcp:80 | grep LISTEN 

EDIT: lẽ dễ dàng hơn: bạn có thể bắt đầu Apache bằng tay trong chế độ gỡ lỗi để xem những gì lý do là nó không khởi động:

sudo /usr/sbin/httpd -k start -e Debug -E /dev/stdout 

Trong trường hợp của tôi (một cái gì đó đã lắng nghe trên cổng 80), nó sẽ tạo ra: con trỏ

(48)Address already in use: make_sock: could not bind to address 0.0.0.0:80 
+0

Khi tôi chạy, đầu ra không có gì. –

+0

Apache của bạn nghe trên cổng 80? Nếu không, bạn sẽ phải thay đổi số cổng sau 'tcp:'. Bạn đang chạy Apache 2 tích hợp, hay bạn đã cài đặt MAMP hay cái gì đó? – robertklep

+0

Apache của tôi chạy trên cổng 80, có. Đó là tích hợp sẵn Apache 2 cho OS X 10.8.2. –

0

robertklep của:

sudo/usr/sbin/httpd -k bắt đầu -e Debug -E/dev/stdout

giải quyết một vấn đề liên quan đến tôi. Các triệu chứng tương tự, nguyên nhân khác nhau, tôi nghĩ vậy. Tôi thiết lập máy chủ ảo thử nghiệm với SSL & chứng chỉ tự ký.

Tôi đã tạo khóa riêng với cụm mật khẩu. Vì vậy, httpd đang chờ cụm từ mật khẩu (mà tôi không cung cấp). Khi tôi bắt đầu với tùy chọn gỡ lỗi, tôi nhận được lời nhắc, cung cấp cụm mật khẩu & httpd khởi động.

Vì vậy, sẽ làm lại khóa riêng mà không có một cụm từ mật khẩu ...

1

Trong trường hợp của tôi tôi nhận:

(2) Không có tập tin hoặc thư mục: httpd: không thể lỗi mở tập tin đăng nhập /private/var/log/apache2/error_log. Không thể mở nhật ký

Tạo apache2 thư mục đã chạy nó.

+0

Điều này làm việc cho tôi, tôi đã cố gắng để xem xét/mnt/apache2 vì vậy tôi tạo ra một thư mục "apache2" trong mnt và nó đã làm việc! –

0

Không biết nếu điều này là có liên quan, nhưng kể từ khi tôi phải đối mặt với cùng một vấn đề và tôi tìm thấy một giải pháp thay thế, hãy để tôi đặt trong 2c của tôi anyway.

Nhìn vào bài đăng này khi tôi gặp vấn đề tương tự. Hóa ra tập tin httpd.conf là thủ phạm. Tôi đã thay đổi nó để cài đặt một cái gì đó. Mặc dù tôi đã xóa các tệp trình cài đặt, tôi đã quên thay đổi lại httpd.conf. Tôi hy vọng bạn không gặp phải vấn đề tương tự.

Về câu hỏi trên cổng 80, tôi đã thấy skype hog cổng cũng như 443, (Thiên Chúa biết điều gì) và tôi có kết quả tốt hơn sau khi tôi tắt nó đi. Hãy chắc chắn rằng bạn không có skype đang chạy trên cổng 80.