Berbagai cara untuk memulai ulang Apache?

11

Saya punya pertanyaan Apache di sini.

Sepanjang karier saya sebagai pengembang, saya telah memulai kembali Apache seperti ini:

sudo /etc/init.d/apache2 restart

Saya baru hari ini menggunakan aplikasi Rails pertama saya, tetapi saya mengalami kesulitan membuat Apache untuk memulai kembali pada mesin host. Ketika saya mencobanya seperti itu, Apache akan mencoba untuk me-restart, tetapi pada akhirnya akan hang.

Ini, bagaimanapun, bekerja dengan baik:

sudo apachectl restart

Apa perbedaan antara kedua teknik ini? Saya berasumsi bahwa yang terakhir, yang terbaik, "gula sintaksis" untuk yang pertama, tetapi itu tidak boleh terjadi, mengingat bahwa yang terakhir bekerja sementara yang pertama tidak.

Jika relevan (dan saya kira itu mungkin), aplikasi Rails ini menggunakan Penumpang Phusion. Pengalaman pengembangan saya sebelumnya (dimana metode sebelumnya berfungsi dengan baik) sebagian besar dengan PHP. Saya cukup baru untuk Rails.

Server yang dimaksud menjalankan Ubuntu 11.04 (Natty).

Chris Allen Lane
sumber
1
Alternatif lain adalah restart layanan apache2, meskipun saya tidak yakin bagaimana itu berbeda dari 2 sebelumnya jika sama sekali
Phil

Jawaban:

6
sudo /etc/init.d/apache2 restart

Metode ini menggunakan skrip init distro Linux Anda untuk memulai kembali proses. Skrip ini dijalankan saat boot untuk memulai apache.

sudo apachectl restart

Metode ini menggunakan program kontrol apachectl . Dalam hampir setiap kesempatan saya akan merekomendasikan penggunaan apachectl untuk maniuplate apache daemon. Anda memiliki kontrol berbutir halus tentang bagaimana proses restart (lihat anggun vs restart), opsi validasi konfigurasi dan cara untuk mendapatkan informasi status.

Perbedaan utama antara menggunakan skrip init untuk memulai ulang apache dan apachectl adalah bahwa apachectl dirancang khusus untuk memungkinkan administrator mengontrol apache sedangkan skrip init dirancang sebagai cara umum bagi Unix untuk memulai proses setelah daeamon kernel dan init telah dimuat.

EDIT: Sayangnya, saya tidak tahu bagaimana mengatasi masalah Anda dengan Rails atau Penumpang Phusion. Coba cari melalui log Apache Anda untuk petunjuk.


sumber
2
Menurut Anda apa yang OS Anda akan lakukan ketika reboot dan layanan apache2 Anda mulai tidak berfungsi? Menggunakan apachectl tidak masalah untuk pengujian dan pekerjaan dev, tetapi menjalankan server yang akan menyebabkan masalah. Menempelnya di rc.local juga bukan solusi.
kashani
Saya harus menyebutkan bahwa saya hanya menjawab setengah dari pertanyaan: perbedaan antara dua metode untuk me-restart apache. Sayangnya saya tidak tahu semua tentang Rails ... semacam membaca cepat yang pada pertama saya berkeliling.
Terima kasih untuk bantuannya. Itu menjelaskan perbedaan antara saya berdua. Mengenai hal-hal Rails, saya benar-benar menyelesaikannya sebelum saya diposting di sini. apachectl sebenarnya bekerja seperti jagoan, sedangkan metode init.d tidak. Jadi sekarang saya tahu! Terima kasih.
Chris Allen Lane