Cách tải lại cấu hình apache cho một trang web mà không cần khởi động lại apache


141

Tôi đã chỉnh sửa biến AllowOverride cho một trong các trang web của mình trong thư mục hỗ trợ trang web . Làm cách nào để tải lại cấu hình mới mà không khởi động lại apache? Có thể không?


6
apache2 tải lại superuser.com/questions/192686/
Mạnh

1
Hình như tất cả các câu trả lời đều không chính xác.
Tigran

Câu trả lời:


182

nên có thể sử dụng lệnh

sudo /etc/init.d/apache2 reload

mong rằng sẽ giúp


11
Tôi khá chắc chắn rằng điều này là không chính xác. Nhìn vào tập lệnh init.d của máy chủ Ubuntu, tải lại đề cập đến khởi động lại duyên dáng. Điều này có nghĩa là tải lại trên thực tế là một khởi động lại, nhưng duyên dáng. Ý kiến ​​của tôi là apache không thể được tải lại mà không làm gián đoạn dịch vụ.
SteffenNielsen ngày

4
Câu trả lời của Aruman là câu trả lời đúng. Hầu hết các tập lệnh init Apache gửi SIGHUP tương đương với 'apachectl restart', mà OP đặc biệt yêu cầu tránh. Các tập lệnh init Apache khác gửi SIGUSR1 tương đương với 'apachectl duyên dáng', cũng là một khởi động lại, nhưng được thực hiện một cách duyên dáng hơn, và đó là những gì câu trả lời của Aruman cung cấp.
Bryan Larsen

@SteffenNielsen Tôi nghĩ rằng bạn đúng ... Một số người sẽ ổn khi sử dụng bộ cân bằng tải, vô hiệu hóa cái được khởi động lại, khởi động lại, xử lý phiên bản db, sau đó làm tương tự cho máy chủ / bộ chứa apache khác. K8s không giải quyết được một số vấn đề này.
Ray Foss

1
Được rồi, đây là những gì xảy ra, quá trình apache2 chính không thay đổi, nhưng trẻ em hoặc công nhân (tôi không biết thuật ngữ đúng) tất cả đều khởi động lại, những điều đó thực sự thay đổi.
Elijah Lynn

1
Và tôi nghĩ duyên dáng trong trường hợp này chỉ có nghĩa là những công nhân trẻ em đó đã hoàn thành việc phục vụ các yêu cầu của họ trước khi bị giết và được hồi đáp.
Elijah Lynn


28

Làm

apachectl -k graceful

Kiểm tra liên kết này để biết thêm thông tin: http://www.electrictoolbox.com/article/apache/restart-apache/


18
Điều này sẽ khởi động lại daemon Apache httpd, câu hỏi đặc biệt cần tránh.
cs01

6
@ cs01 Bạn đọc rằng httpd daemon sẽ được khởi động lại ở đâu? Tất cả mọi thứ tôi đọc trên liên kết được cung cấp trong câu trả lời đều nói lên những điều nhưapachectl graceful: Gracefully restarts the Apache daemon by sending it a SIGUSR1. If the daemon is not running, it is started. This differs from a normal restart in that currently open connections are not aborted.
Tyler Collier

5
Câu đầu tiên của tài liệu bạn đăng chỉ nói rằng, phải không?
cs01

3
@ cs01 Bạn cần hiểu lý do tại sao họ lo lắng về việc khởi động lại. Điều đó không được chỉ định, nhưng tôi đoán là họ không muốn các kết nối bị hủy bỏ, thay vì tự khởi động lại. Một khởi động lại duyên dáng sẽ làm điều này tốt trong hầu hết các trường hợp. Nếu có kết nối lâu dài thì điều này có thể là một vấn đề mặc dù. Bạn cũng cần một định nghĩa tốt về khởi động lại, vì tất cả các khởi động lại duyên dáng đều thực hiện lại quy trình cha mẹ, tức là pid không thay đổi, khi một khởi động lại bình thường rơi xuống toàn bộ cây quy trình và sinh ra một quy trình mới. Do đó, câu trả lời của Tyler Collier là hoàn toàn hợp pháp.
krad

7

Đã cập nhật cho Apache 2.4, cho non-systemd (ví dụ: CentOS 6.x, Amazon Linux AMI) và cho systemd (ví dụ: CentOS 7.x):

Có hai cách để quá trình apache tải lại cấu hình, tùy thuộc vào những gì bạn muốn thực hiện với các luồng hiện tại của nó, hoặc khuyên nên thoát khi không hoạt động hoặc giết chúng trực tiếp.

Lưu ý rằng Apache khuyên bạn nên sử dụng apachectl -k làm lệnh và đối với systemd, lệnh được thay thế bằnghttpd -k

apachectl -k graceful hoặc là httpd -k graceful

Apache sẽ khuyên các luồng của nó thoát khi không hoạt động và sau đó apache tải lại cấu hình (nó không tự thoát), điều này có nghĩa là số liệu thống kê không được đặt lại.

apachectl -k restart hoặc là httpd -k restart

Điều này tương tự như dừng lại, trong đó quá trình giết chết các luồng của nó, nhưng sau đó quá trình tải lại tệp cấu hình, thay vì tự hủy.

Nguồn: https://httpd.apache.org/docs/2.4/stopping.html


apache 2.4,39 (thắng) không httpd -k gracefulchỉ hỗ trợ httpd -k restart: httpd /?=>-k restart : tell running Apache to do a graceful restart
Andreas Dietrich
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.