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.