Als u wijzigingen heeft aangebracht in het Apache-configuratiebestand httpd.conf of een van de andere meegeleverde configuratiebestanden zoals de vhosts.d-bestanden, moet u de Apache-service opnieuw laden om de wijzigingen door te voeren. Vanaf de commandoregel doe je dit met het apachectl commando. De exacte locatie van dit commando varieert afhankelijk van de Unix- of Linux-variant die je gebruikt (bijv. Fedora, OSX, FreeBSD, Slackware, Mandrake, SUSE) en de instellingen voor de compilatietijd, maar meestal is het toegankelijk via / usr / sbin / apachectl
Apache netjes herstarten
Een voorbeeld van het netjes herstarten van Apache wordt hieronder getoond:
/usr/sbin/apachectl graceful
Merk op dat je ofwel als root moet draaien of het” sudo “commando moet gebruiken om dit commando uit te voeren .
Als Apache nog niet draait, zal het worden gestart. Als het al actief is, wordt het opnieuw geladen met de nieuwe wijzigingen, maar worden actieve verbindingen niet afgebroken, wat betekent dat iedereen die bezig is met downloaden, het kan blijven downloaden.
Een configuratie uitvoeren test eerst
Voordat de Apache-service opnieuw wordt opgestart, wordt een controle uitgevoerd op de configuratiebestanden om er zeker van te zijn dat ze geldig zijn. Als er een fout in staat, wordt de fout weergegeven en blijft de Apache-service werken met de oude instellingen. U moet uw instellingen corrigeren voordat u opnieuw probeert op te starten.
U kunt ook gewoon de instellingen controleren zonder Apache opnieuw op te starten, zoals:
/usr/sbin/apachectl configtest
Hiermee wordt het httpd.conf-bestand gecontroleerd en wordt gerapporteerd of de syntaxis van het bestand geldig of niet. Er wordt een lijst met fouten weergegeven, inclusief de regelnummers als die er zijn. Dit maakt het gemakkelijk om eventuele problemen te isoleren.
Beschikbare opties voor het apachectl-commando
De volgende zijn allemaal de beschikbare opties die kunnen worden doorgegeven aan het apachectl-commando. Deze tekst is van de man-pagina van apachectl.
apachectl start: Start de Apache-daemon. Geeft een foutmelding als deze al actief is.
apachectl stop: stopt de Apache-daemon.
apachectl herstart: Start de Apache-daemon opnieuw door hem een SIGHUP te sturen. Als de daemon niet draait, wordt deze gestart. Deze opdracht controleert automatisch de configuratiebestanden via configtest voordat de herstart wordt gestart om er zeker van te zijn dat Apache niet doodgaat.
fullstatus: geeft een volledig statusrapport weer van mod_status. Om dit te laten werken, moet je mod_status hebben ingeschakeld op je server en een tekstgebaseerde browser zoals lynx beschikbaar hebben op je systeem. De URL die wordt gebruikt om toegang te krijgen tot het statusrapport kan worden ingesteld door de STATUSURL-variabele in het script te bewerken.
apachectl status: geeft een kort statusrapport weer. Vergelijkbaar met de fullstatus-optie, behalve dat de lijst met verzoeken die momenteel worden bediend, wordt weggelaten.
apachectl graceful: herstart de Apache-daemon sierlijk door hem een SIGUSR1 te sturen. Als de daemon niet draait, wordt deze gestart. Dit verschilt van een normale herstart doordat momenteel geopende verbindingen niet worden afgebroken. Een neveneffect is dat oude logfiles niet direct worden afgesloten. Dit betekent dat bij gebruik in een logboekrotatiescript een aanzienlijke vertraging nodig kan zijn om ervoor te zorgen dat de oude logboekbestanden worden gesloten voordat ze worden verwerkt. Deze opdracht controleert automatisch de configuratiebestanden via configtest voordat de herstart wordt gestart om er zeker van te zijn dat Apache niet doodgaat.
apachectl configtest: voer een syntaxis-test van het configuratiebestand uit. Het parseert de configuratiebestanden en rapporteert ofwel Syntax Ok ofwel gedetailleerde informatie over de specifieke syntaxisfout.
apachectl help: geeft een kort helpbericht weer .
Update 19 maart 2007
Ik schreef dit artikel oorspronkelijk voor Apache 1.3 en toen ik Gentoo Linux en OSX gebruikte om pagina’s met Apache te serveren. Op mijn huidige openSUSE-machines die Apache 2.2 draaien, is er niet langer een apachectl-programma. In plaats van de bovenstaande opdracht kunt u in plaats daarvan de volgende zeer vergelijkbare opdracht en opties uitvoeren:
/etc/init.d/apache2 start|stop|reload|restart|configtest
Draait /etc/init.d/apache2
op zijn eigen voert een helpbericht uit met de verschillende opties zoals hieronder vermeld:
start – start httpd
startssl – start httpd met -DSSL
stop – stop httpd (stuur SIGTERM naar ouder)
probeer opnieuw te starten – stop httpd en als dit lukt (als het al eerder draaide), start het weer.
status – controleer of httpd draait
herstart – stop httpd als het draait; start httpd
reload | graceful – doe een elegante herstart door een SIGUSR1 te sturen of start indien niet actief
configtest – doe een configuratiesyntaxis-test
extreme-configtest – probeer httpd uit te voeren als niemand (detecteert meer fouten door de configuratie daadwerkelijk te laden, maar kan geen SSL-certificaten lezen)
onderzoek – onderzoek naar de noodzaak van herladen, geef het argument op dat vereist is voor een herlaadbeurt. (door conf-bestanden te vergelijken met pidfile timestamp)
full-server-status – dump een volledig statusscherm; vereist lynx of w3m en mod_status ingeschakeld
serverstatus – dump een kort statusscherm; vereist lynx of w3m en mod_status ingeschakeld
help – dit scherm