Znova zaženite Apache na Ubuntu, RedHat, Gentoo in drugih Linuxovih distrosih
Če gostite svojo spletno stran na odprtokodni platformi, je zelo verjetno, da je ta platforma Apache. Če je temu tako in gosti s strežnikom Apache, potem ko delate na urejanju datoteke Apache httpd.conf ali druge konfiguracijske datoteke (na primer dodajanja novega virtualnega gostitelja), boste morali znova zagnati Apache, tako da bodo vaše spremembe začele veljati. To se lahko zdi grozno, vendar na srečo je to zelo enostavno.
Dejansko lahko to naredite v približno eni minuti (ne upoštevate, koliko časa bo trajalo, da preberete ta članek, da boste dobili navodila po korakih).
Začetek
Če želite znova zagnati spletni strežnik Linux Apache, je najboljši način, da uporabite ukaz init.d. Ta ukaz je na voljo na mnogih distribucijah Linuxa, vključno z Red Hat, Ubuntu in Gentoo. Evo, kako bi to naredili:
- Prijavite se na svoj spletni strežnik z uporabo SSH ali telnet in se prepričajte, da vaš sistem vključuje ukaz init.d. Običajno se nahaja v imeniku / etc, zato navedite ta imenik:
ls / etc / i *
- Če vaš strežnik uporablja init.d, boste prejeli seznam datotek za inicializacijo v tej določeni mapi. Poiščite apache ali apache2 v tej mapi. Če imate init.d, vendar nimate datoteke za inicializacijo Apache, pojdite v razdelek tega članka z naslovom, ki se glasi »Ponovni zagon strežnika brez init.d«, sicer lahko nadaljujete.
- Če imate init.d in datoteko za inicializacijo Apache, lahko Apache s tem ukazom znova zaženete:
/etc/init.d/apache2 ponovno naloži
Morda boste morali uporabiti root kot uporabnik za zagon tega ukaza.
Ponovno ponastavi
Uporaba možnosti ponovnega nalaganja je najboljši način za ponovni zagon strežnika Apache, saj strežnik deluje (proces se ne uniči in ponovno zažene). Namesto tega samo znova naloži datoteko httpd.conf, kar je običajno vseeno, kar želite narediti v tem primeru.
Če možnost ponovnega nalaganja ne deluje za vas, lahko poskusite uporabiti tudi naslednje ukaze:
- /etc/init.d/apache2 restart - ta ukaz ubije proces strežnika in ga znova zažene
- /etc/init.d/apache2 stop - ta ukaz ubije proces strežnika
- /etc/init.d/apache2 start - ukaz zažene strežnik (in prikaže sporočilo o napaki, če se strežnik že izvaja)
Ponovni zagon strežnika brez init.d
V redu, zato vas prosimo, da preskočite, če vaš strežnik nima init.d. Če ste to vi, ne obupajte, lahko še vedno znova zaženete strežnik. Ravno to morate narediti ročno s ukazom apachectl. Tukaj so koraki za ta scenarij:
- Prijavite se na vaš spletni strežnik z SSH ali telnetom
- Zaženite nadzorni program Apache:
Apachectl graceful
Morda boste morali uporabiti root kot uporabnik za zagon tega ukaza.
Apachectl graceful ukaz pove Apacheu, da želite znova zagnati strežnik, brez prekinitve odprtih povezav. Pred začetkom ponovnega zagona samodejno preveri konfiguracijske datoteke, s čimer se prepričajte, da Apache ne umre.
Če apachectl graceful ne zažene vašega strežnika, lahko poskusite še nekaj drugih stvari.
- apachectl znova zaženite, da znova zaženete strežnik. Če se strežnik ne izvaja, se zažene. Ta ukaz tudi izvaja konfiguracijski preskus, s katerim se prepričajte, da Apache ne bo umrl, ko se znova zažene.
- apachectl zaustaviti strežnik Apache
- Apachectl začne zagon strežnika Apache (pri zagonu Apache-a prikaže sporočilo o napaki)
- apachectl configtest za preizkus sintakse konfiguracijske datoteke.
Nasveti za ponovni zagon vašega strežnika Apache:
- init.d ponovno naložite in apachectl graceful znova naložite konfiguracijske datoteke in graciozno znova zaženite spletni strežnik. Vsaka trenutna povezava je dovoljena za dokončanje. To je najprimernejši pristop, zato bi morali biti tisto, kar najprej poskusite.
- init.d restart in restart apachectl znova naložite konfiguracijske datoteke in se znova zaženejo. Vse trenutne povezave se takoj prekinejo.
- Če se strežnik ne izvaja, se bodo ti ukazi zagnali.
- Če nobeden od teh ukazov ne deluje, morate s strežnikom Apachectl stop init.d ali apachectl zaustaviti vaš strežnik Apache (če ga kratko zaustavite), počakajte vsaj 10 sekund in nato zaženite zagon začetka apachectl init.d
- Če to ne deluje, bi morali preveriti vaše konfiguracijske datoteke, da se prepričate, da ni težav z njimi, tako da zaženete apachectl graceful