Jak zrestartować Apache?


249

Zmieniłem SLES na Ubuntu i teraz chcę zrestartować mój lokalny serwer. W SLES użyłem:

rcapache2 restart

ale wydaje się, że to nie działa w Ubuntu. :(

Jak zrestartować Apache?

Odpowiedzi:


364

sudo service apache2 restart za sposób zapożyczony z Red Hat.


1
Myślę, że servicejest to metoda LSB i powinna działać w większości dystrybucji, teraz, gdy Debian i Ubuntu w końcu ją dostały.
— Marius Gedminas,

10
sudo restart apache2nie działa Ubuntu 12.04. Nie jestem pewien innych wersji Ubuntu.
— saji89

2
@ saji89 musisz zrobić sudo service apache2 restart, to zadziała.
— Kevdog777

9
sudo restart apache2nie działa w Ubuntu 14.04. sudo service apache2 restartciężko pracuje.
— toesslab

105

Czy chcesz zrestartować Apache, czy chcesz z wdziękiem ponownie załadować jego konfigurację?

Wszyscy odpowiadali na pierwsze pytanie; możesz zrobić drugie z

sudo service apache2 reload

Wdzięczne przeładowywanie jest nieco szybsze i nie ma przestojów.

Jest jedno zastrzeżenie: jeśli pliki konfiguracyjne Apache zawierają błąd (np. Konfiguruje plik dziennika w katalogu, który nie istnieje), serwer może cicho wyjść bez drukowania komunikatów o błędach na konsoli. Większość inne błędy są wychwytywane przez apache2ctl configtestktóry service apache2 reloadbiegnie przed wykonaniem rzeczywistego przeładuj apache2ctl graceful.


1
Tak! Korzystanie z wdzięku jest znacznie lepsze, jeśli chcesz zrestartować komputer bez uruchamiania przeglądarek!
— tommed

Uważam, że zaletą ponownego uruchomienia jest to, że jeśli Apache nie działa, to się uruchomi . -> Czy przeładowanie również go uruchomi ?
— Torben Gundtofte-Bruun

Nie sądzę - nawet gorzej, przeładowanie zatrzyma działający apache, jeśli popełnisz błąd składniowy w pliku konfiguracyjnym.
— Marius Gedminas

3
Zawsze uruchamiaj sudo apache2ctl configtestprzed ponownym uruchomieniem. Pełne ponowne uruchomienie zakończy się niepowodzeniem, a apache zostanie zatrzymany, jeśli w konfiguracji wystąpił błąd składniowy.
— Mikko Rantalainen

@MikkoRantalainen: dziękuję, zredagowałem odpowiedź, aby upuścić surowe apache2ctl gracefuli zamiast tego polecam tylko service apache2 reload, która działa configtestwcześniej graceful.
— Marius Gedminas

26

Zalecanym sposobem Ubuntu do uruchamiania / zatrzymywania usług (nie tylko Apache) jest użycie poleceń start / stop / reload (które tak naprawdę są symbolicznymi linkami do programu initctl , części upstart ).

W przypadku usług korzystających ze starszych /etc/init.dskryptów odpowiedni skrypt zostanie wywołany z poprawnymi parametrami; w przypadku usług korzystających z infrastruktury upstart odpowiednie przejście zdarzenia zostanie zasygnalizowane demonowi upstart poprzez initctl .

Tak więc, aby uruchomić / zatrzymać / przeładować / ponownie uruchomić apache na Ubuntu, możesz użyć:

sudo start apache2
sudo stop apache2
sudo reload apache2
sudo restart apache2

20
sudo /etc/init.d/apache2 restart

Oczywiście można zamienić się restartna stop, starti (chyba)reload


2
Robiąc to w ramach ostatniego Ubuntu, otrzymujesz komunikat o zrobieniu tego w nowy sposób, chociaż nadal wykonasz pożądane polecenie.
— jfmessier,

Nie zdawałem sobie sprawy, że Apache przeprowadził się jeszcze do Upstart.
— Oli

Nie widzę już tej wiadomości.
— Tim


11

Jak powiedział Marius, wdzięku należy użyć do ponownego uruchomienia:

sudo apache2ctl graceful

lub

sudo apache2ctl graceful-stop

z wdziękiem zatrzymać Apache.

Te polecenia czekają, aż wszystkie żądania stron internetowych zostaną obsłużone, przed ponownym uruchomieniem / zatrzymaniem serwera WWW, aby użytkownik nie dostał połowy strony internetowej.


4

Najpierw sprawdź swój status za pomocą tego polecenia

sudo service apache2 status

następnie zatrzymaj działającą usługę

sudo service apache2 stop

następnie użyj tego polecenia:

sudo /opt/lampp/lampp start

to rozwiązanie zadziałało dla mnie.


2

jeśli instalujesz wersję Apache 2.4 w swoim systemie, aby rozpocząć restart lub zatrzymać serwer Apache w systemie lokalnym, powinieneś uruchomić następującą komendę

./apachectl start

lub możesz użyć restartu , zatrzymaj również zgodnie z wymaganiami. to jest przetestowany kod


1

możesz użyć usług do zrestartowania Apache

service apache2 restart

i możesz użyć do tego wszystkich funkcji (Stop - Start - Przeładuj)



0
sudo systemctl restart apache2

systemctl - kontroluje systemd i menedżera usług.

Systemctl może być wykorzystywany do introspekcji i kontroli stanu systemu systemd i menedżera usług.


-1

jeśli jesteś rootem: (W Ubuntu root jest wyłączony, myślę, niż użyj polecenia „sudo”!)

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

(Jeśli używałeś a2ensite lub a2dissite, musisz ponownie załadować konfigurację Apache)


rootnie jest wyłączone, po prostu nie ma hasła, jeśli sam go nie podasz.
— Mikael Auno

1
to //stop apachemiał być komentarz? jeśli tak, to standardowy zapis powłoka będzie #stop apache, //nie działa w bash
— Mikel

Konto główne @MikaelAuno jest wyłączone, jeśli nie ma hasła
— T0xicCode

1
@ xav0989 To kwestia definicji. Na pewno nie możesz zalogować się bezpośrednio rootlub zalogować się w rootjakikolwiek sposób, który wymaga roothasła do tego celu, ale istnieją inne sposoby, aby się do niego dostać root. Spróbuj na przykład sudo -iwykonać, whoamia zobaczysz, że naprawdę jesteś zalogowany jako root. Ponadto, jeśli to zrobisz ps aux | grep root, zobaczysz, że masz już wiele procesów w systemie uruchomionych jako root. Prawdopodobnie rootnie jest wyłączony.
— Mikael Auno,

@MikaelAuno lub sudo -E -s. Wyłączone Zakładam, że chodziło o to, że nie możesz zalogować się bezpośrednio jako root, ale nadal możesz uruchamiać procesy jako root.
— T0xicCode
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.