Cara memuat ulang konfigurasi apache untuk situs tanpa memulai ulang apache


141

Saya telah mengedit variabel AllowOverride untuk salah satu situs web saya di direktori yang didukung situs . Bagaimana cara memuat ulang konfigurasi baru tanpa memulai ulang apache? Apa itu mungkin?



1
Sepertinya semua jawabannya salah.
Tigran

Jawaban:


182

harus dimungkinkan menggunakan perintah

sudo /etc/init.d/apache2 reload

berharap itu bisa membantu


11
Saya cukup yakin ini tidak benar. Melihat dalam skrip init.d dari server Ubuntu, memuat ulang merujuk ke restart anggun. Ini berarti bahwa memuat ulang sebenarnya adalah restart, tetapi anggun. Pendapat saya adalah apache tidak dapat dimuat ulang tanpa mengganggu layanan.
SteffenNielsen

4
Jawaban Aruman adalah yang benar. Sebagian besar skrip init Apache mengirim SIGHUP yang setara dengan 'apachectl restart', yang diminta secara khusus oleh OP untuk dihindari. Skrip init Apache lain mengirim SIGUSR1 yang setara dengan 'apachectl anggun', yang juga merupakan restart, tetapi dilakukan lebih anggun, dan itulah jawaban Aruman.
Bryan Larsen

@SteffenNielsen Saya pikir Anda benar ... Beberapa akan baik-baik saja dengan menggunakan penyeimbang beban, menonaktifkan yang akan dimulai kembali, memulai kembali, berurusan dengan versi db, kemudian melakukan hal yang sama untuk server / wadah apache lainnya. K8 menghilangkan beberapa masalah ini.
Ray Foss

1
Oke, inilah yang terjadi, proses apache2 utama tidak berubah, tetapi anak-anak atau pekerja (saya tidak tahu terminologi yang tepat) semua restart, PID itu memang berubah.
Elijah Lynn

1
Dan saya pikir anggun dalam hal ini hanya berarti bahwa para pekerja anak-anak selesai melayani permintaan mereka sebelum dibunuh dan direspawn.
Elijah Lynn


28

Melakukan

apachectl -k graceful

Periksa tautan ini untuk informasi lebih lanjut: http://www.electrictoolbox.com/article/apache/restart-apache/


18
Ini akan memulai ulang daemon Apache httpd, yang pertanyaannya khusus harus dihindari.
cs01

6
@ cs01 Di mana Anda membaca bahwa daemon httpd akan di-restart? Semua yang saya baca pada tautan yang disediakan dalam jawaban mengatakan hal-hal sepertiapachectl 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
Kalimat pertama dari dokumentasi yang Anda kirim mengatakan hanya itu, bukan?
cs01

3
@ cs01 Anda perlu memahami mengapa mereka khawatir tentang restart. Itu tidak ditentukan, tetapi dugaan saya mereka tidak ingin koneksi dibatalkan, bukan restart sendiri. Restart yang baik akan melakukan ini dengan baik dalam banyak kasus. Jika ada koneksi yang berumur panjang, ini mungkin masalah. Anda juga memerlukan definisi restart yang baik, karena semua restart yang dilakukan dengan anggun adalah menginisialisasi ulang proses induk yaitu pid tidak berubah, di mana sebagai restart normal meruntuhkan seluruh pohon proses, dan memunculkan yang baru. Karena itu jawaban Tyler Collier benar-benar sah.
krad

7

Diperbarui untuk Apache 2.4, untuk non-systemd (mis., CentOS 6.x, Amazon Linux AMI) dan untuk systemd (mis., CentOS 7.x):

Ada dua cara agar proses apache memuat ulang konfigurasi, tergantung pada apa yang ingin Anda lakukan dengan utas saat ini, baik menyarankan untuk keluar saat idle, atau membunuhnya secara langsung.

Perhatikan bahwa Apache merekomendasikan penggunaan apachectl -ksebagai perintah, dan untuk systemd, perintah digantikan olehhttpd -k

apachectl -k graceful atau httpd -k graceful

Apache akan menyarankan utasnya untuk keluar saat idle, dan kemudian apache memuat ulang konfigurasi (tidak keluar sendiri), ini berarti statistik tidak diatur ulang.

apachectl -k restart atau httpd -k restart

Ini mirip dengan berhenti, dalam proses membunuh thread-nya, tetapi kemudian proses memuat ulang file konfigurasi, daripada membunuh sendiri.

Sumber: https://httpd.apache.org/docs/2.4/stopping.html


apache 2.4.39 (win) tidak httpd -k gracefulhanya mendukung httpd -k restart: httpd /?=>-k restart : tell running Apache to do a graceful restart
Andreas Dietrich
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.