Các cách khác nhau để khởi động lại Apache?


11

Tôi đã có một câu hỏi Apache ở đây.

Đối với toàn bộ sự nghiệp là một nhà phát triển, tôi đã khởi động lại Apache như thế này:

sudo /etc/init.d/apache2 restart

Hôm nay tôi mới triển khai ứng dụng Rails đầu tiên của mình, nhưng tôi gặp sự cố khi Apache khởi động lại trên máy chủ. Khi tôi thử nó theo cách đó, Apache sẽ cố gắng khởi động lại, nhưng cuối cùng sẽ bị treo.

Điều này, tuy nhiên, hoạt động tốt:

sudo apachectl restart

Sự khác biệt giữa hai kỹ thuật này là gì? Tôi đã giả định rằng cái sau tốt nhất là "đường cú pháp" cho cái đầu tiên, nhưng đó không phải là trường hợp, cho rằng cái sau hoạt động trong khi cái trước thì không.

Nếu nó có liên quan (và tôi nghi ngờ nó có thể), ứng dụng Rails này sử dụng Phusion Pasbah. Kinh nghiệm phát triển trước đây của tôi (theo đó phương thức cũ hoạt động tốt) chủ yếu là với PHP. Tôi khá mới với Rails.

Máy chủ được đề cập là chạy Ubuntu 11.04 (Natty).


1
Một cách khác là khởi động lại dịch vụ apache2, mặc dù tôi không chắc nó khác với 2 lần trước như thế nào
Phil

Câu trả lời:


6
sudo /etc/init.d/apache2 restart

Phương pháp này sử dụng các tập lệnh init distro Linux của bạn để khởi động lại quá trình. Các kịch bản này được chạy tại thời điểm khởi động để bắt đầu apache.

sudo apachectl restart

Phương pháp này sử dụng chương trình điều khiển apachectl . Trong hầu hết các trường hợp, tôi sẽ khuyên bạn nên sử dụng apachectl để điều khiển daemon apache. Bạn có quyền kiểm soát chi tiết hơn về cách quá trình khởi động lại (xem duyên dáng so với khởi động lại), các tùy chọn xác thực cấu hình và cách nhận thông tin trạng thái.

Sự khác biệt chính giữa việc sử dụng các tập lệnh init để khởi động lại apache và apachectl là apachectl được thiết kế đặc biệt để cho phép các nhà quản trị kiểm soát apache trong khi các tập lệnh init được thiết kế như một cách tổng quát để Unix bắt đầu xử lý sau khi kernel và init daeamon được tải.

EDIT: Thật không may, tôi không biết làm thế nào để giải quyết vấn đề của bạn với Rails hoặc Phusion Pasbah. Hãy thử xem qua nhật ký Apache của bạn để tìm manh mối.


2
Chính xác thì bạn nghĩ hệ điều hành của bạn sẽ làm gì khi nó khởi động lại và dịch vụ apache2 của bạn bắt đầu không hoạt động? Sử dụng apachectl là tốt để thử nghiệm và phát triển công việc, nhưng chạy các máy chủ sẽ gây ra vấn đề. Dán nó trong RC.local cũng không phải là một giải pháp.
kashani

Tôi nên đề cập rằng tôi chỉ trả lời một nửa câu hỏi: sự khác biệt giữa hai phương pháp để khởi động lại apache. Thật không may, tôi không biết về Rails ... kiểu đọc nhanh về điều đó trong lần đầu tiên tôi đi vòng quanh.

cảm ơn đã giúp đỡ. Điều đó đã làm sáng tỏ sự khác biệt giữa hai người đối với tôi. Về công cụ Rails, tôi đã thực sự giải quyết điều đó trước khi tôi đăng ở đây. apachectl thực tế đã làm việc như một nhà vô địch, trong khi phương thức init.d thì không. Vì vậy, bây giờ tôi biết! Cảm ơn.
Chris Allen Lane
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.