Bagaimana Anda me-restart Apache?

249

Saya beralih dari SLES ke Ubuntu dan sekarang saya ingin me-restart server lokal saya. Di SLES saya menggunakan:

rcapache2 restart

tapi ini sepertinya tidak berfungsi di Ubuntu. :(

Bagaimana saya me-restart Apache saya?

Jai Puri
sumber

Jawaban:

364

sudo service apache2 restart untuk cara yang dipinjam dari Red Hat.

maco
sumber
1
Saya pikir itu serviceadalah cara LSB, dan harus bekerja di sebagian besar distribusi, sekarang Debian dan Ubuntu akhirnya mendapatkannya.
Marius Gedminas
10
sudo restart apache2tidak bekerja di Ubuntu 12.04. Tidak yakin dengan versi Ubuntu lainnya.
saji89
2
@ saji89 yang perlu Anda lakukan sudo service apache2 restart, maka itu akan berhasil.
Kevdog777
9
sudo restart apache2tidak bekerja di Ubuntu 14.04. sudo service apache2 restartbekerja keras.
toesslab
105

Apakah Anda ingin memulai kembali Apache, atau Anda ingin memuat ulang konfigurasinya dengan anggun ?

Semua orang menjawab pertanyaan pertama; Anda dapat melakukan yang kedua dengan

sudo service apache2 reload

Reload dengan anggun sedikit lebih cepat, dan tidak ada downtime.

Ada satu peringatan: jika file konfigurasi apache Anda mengandung kesalahan (mis., Mengonfigurasi file log di direktori yang tidak ada), server dapat secara diam-diam keluar tanpa mencetak pesan kesalahan apa pun ke konsol. Sebagian besar kesalahan lain ditangkap oleh apache2ctl configtestyang service apache2 reloadberjalan sebelum melakukan reload sebenarnya apache2ctl graceful.

Marius Gedminas
sumber
1
Iya! Gunakan anggun jauh lebih baik jika Anda ingin memulai kembali tanpa memulai pemirsa situs web Anda!
tommed
Saya menemukan keuntungan memulai kembali bahwa jika Apache tidak berjalan maka akan mulai . -> Akankah memuat ulang juga memulainya ?
Torben Gundtofte-Bruun
Saya rasa tidak - bahkan lebih buruk, memuat ulang akan menghentikan apache yang berjalan jika Anda membuat kesalahan sintaksis dalam file konfigurasi.
Marius Gedminas
3
Selalu jalankan sudo apache2ctl configtestsebelum melakukan restart dengan anggun. Restart dengan anggun akan gagal dan apache akan dihentikan jika konfigurasi memiliki kesalahan sintaks.
Mikko Rantalainen
@MikkoRantalainen: terima kasih, saya telah mengedit jawaban untuk menjatuhkan mentah apache2ctl gracefuldan sebagai gantinya merekomendasikan service apache2 reload, yang menjalankan configtestsebelumnya graceful.
Marius Gedminas
26

Cara yang disarankan di bawah Ubuntu untuk memulai / menghentikan layanan (bukan hanya Apache) adalah dengan menggunakan perintah start / stop / reload (yang sebenarnya adalah tautan simbolis ke program initctl , bagian dari pemula ).

Untuk layanan yang menggunakan /etc/init.dskrip lawas , skrip yang sesuai akan dipanggil dengan parameter yang benar; untuk layanan yang menggunakan infrastruktur pemula, transisi acara yang sesuai akan ditandai ke daemon pemula melalui initctl .

Jadi, untuk memulai / menghentikan / memuat ulang / memulai ulang apache di Ubuntu, Anda dapat menggunakan:

sudo start apache2
sudo stop apache2
sudo reload apache2
sudo restart apache2
Riccardo Murri
sumber
20
sudo /etc/init.d/apache2 restart

Tentu saja Anda dapat swap keluar restartuntuk stop, startdan (saya pikir)reload

Oli
sumber
2
Ketika melakukan ini di bawah Ubuntu baru-baru ini, Anda mendapatkan pesan tentang melakukannya dengan cara baru, meskipun masih akan menjalankan perintah yang Anda inginkan.
jfmessier
Saya tidak menyadari bahwa Apache telah pindah ke Upstart.
Oli
Saya tidak melihat pesan itu lagi.
Tim
17

Cara Ubuntu:

sudo service apache2 restart|stop|start 
kaki
sumber
11

Seperti yang dikatakan Marius, anggun harus digunakan untuk memulai kembali:

sudo apache2ctl graceful

atau

sudo apache2ctl graceful-stop

untuk menghentikan Apache dengan anggun.

Perintah-perintah ini menunggu sampai semua permintaan untuk halaman web telah dilayani sebelum memulai kembali / menghentikan server web sehingga pengguna Anda tidak mendapatkan setengah halaman web.

kemra102
sumber
4

Pertama, Anda memeriksa status Anda menggunakan perintah ini

sudo service apache2 status

kemudian hentikan layanan yang sedang berjalan

sudo service apache2 stop

lalu gunakan perintah ini:

sudo /opt/lampp/lampp start

solusi ini telah berhasil untuk saya.

Nyahalal
sumber
2

jika Anda menginstal versi Apache 2.4 di sistem Anda, untuk memulai restart atau menghentikan server Apache Anda di sistem lokal Anda, maka Anda harus menjalankan perintah berikut

./apachectl start

atau Anda dapat menggunakan restart , berhenti juga sesuai kebutuhan Anda. ini adalah kode yang diuji

mukesh kumar
sumber
1

Anda dapat menggunakan layanan untuk memulai ulang Apache

service apache2 restart

dan Anda dapat menggunakan semua fungsionalitas untuk itu (Stop - Start - Reload)

vipmaa
sumber
1

Cara terbaik untuk me-restart server Apache Anda adalah dengan menggunakan perintah berikut:

$ sudo service apache2 restart

Mengubah Anda dapat menggunakan perintah di bawah ini:

$ sudo /etc/init.d/apache2 restart
Razor Rassh
sumber
1
Sumber Perintah: Restart Apache Ubuntu
Razor Rassh
0
sudo systemctl restart apache2

systemctl - Mengontrol systemd system dan service manager.

systemctl dapat digunakan untuk mengintrospeksi dan mengontrol keadaan manajer sistem dan layanan "systemd".

Michal Przybylowicz
sumber
-1

jika Anda root: (Di root Ubuntu dinonaktifkan, saya pikir, daripada menggunakan perintah 'sudo'!)

$ /etc/init.d/apache stop
$ /etc/init.d/apache start
$ /etc/init.d/apache restart
$ /etc/init.d/apache reload 

(Jika Anda menggunakan a2ensite atau a2dissite, Anda harus memuat ulang konfigurasi apache Anda)

Rinzwind
sumber
roottidak dinonaktifkan, itu hanya tidak memiliki kata sandi jika Anda tidak memberikannya sendiri.
Mikael Auno
1
adalah //stop apacheseharusnya komentar? jika demikian, notasi shell standar akan #stop apache, //tidak bekerja di bash
Mikel
Akun root @MikaelAuno dinonaktifkan jika tidak memiliki kata sandi
T0xicCode
1
@ xav0989 Cukup masalah definisi. Tentu Anda tidak dapat langsung masuk sebagai root, atau masuk seperti rootapa pun yang memerlukan rootkata sandi, tetapi ada beberapa cara lain untuk melakukannya root. Coba misalnya sudo -idiikuti oleh whoamidan Anda akan melihat bahwa Anda memang masuk sebagai root. Juga, jika Anda melakukannya ps aux | grep rootAnda akan melihat bahwa Anda sudah memiliki banyak proses pada sistem Anda berjalan root. Jadi, bisa dibilang, roottidak dinonaktifkan.
Mikael Auno
@MikaelAuno atau sudo -E -s. Dengan menonaktifkan, saya berasumsi bahwa yang dimaksud adalah Anda tidak dapat masuk secara langsung root, tetapi Anda masih dapat menjalankan proses sebagai root.
T0xicCode