Apache HTTP Server (auf Debian/Ubuntu apache2, auf RHEL/Fedora httpd genannt) ist der meistgenutzte Webserver im Internet. Dieser Artikel zeigt die wichtigsten Kommandos für Installation, Konfiguration, Module und den laufenden Betrieb.
Dienst steuern
Unter systemd-Linuxen startet, stoppt und lädt man den Dienst über systemctl:
sudo systemctl start apache2 # Dienst starten
sudo systemctl stop apache2 # Dienst stoppen
sudo systemctl restart apache2 # kompletter Neustart
sudo systemctl reload apache2 # Konfiguration neu laden (ohne Verbindungsabbruch)
sudo systemctl status apache2 # Status anzeigen
sudo systemctl enable apache2 # Autostart aktivieren
apache2ctl und httpd
Das Steuerprogramm apache2ctl (bzw. apachectl) ist ein Frontend zum Binärprogramm httpd und kann dessen Argumente direkt durchreichen:
sudo apache2ctl configtest # Konfigurationsdateien auf Syntax prüfen (Syntax OK)
sudo apache2ctl graceful # Konfiguration neu laden, Verbindungen bleiben bestehen
sudo apache2ctl -S # virtuelle Hosts/Konfiguration anzeigen
sudo apache2ctl -M # geladene Module auflisten
sudo apache2ctl -t -D DUMP_VHOSTS # vhosts als Dump ausgeben
Module und Seiten aktivieren (Debian/Ubuntu)
Debian-basierte Systeme verwalten Module und virtuelle Hosts über Symlinks in /etc/apache2/:
sudo a2enmod ssl # Modul aktivieren (z.B. mod_ssl)
sudo a2dismod rewrite # Modul deaktivieren
sudo a2ensite meine-seite # virtuellen Host aktivieren
sudo a2dissite 000-default # virtuellen Host deaktivieren
sudo apache2ctl configtest # nach Änderungen Syntax prüfen
sudo systemctl reload apache2
Dabei liest a2enmod den Modulnamen aus /etc/apache2/mods-available/ und legt einen Symlink in mods-enabled/ an; a2ensite macht dasselbe mit Konfigurationsdateien aus sites-available/.
Zugriffsschutz mit htpasswd
Die Basic-Authentifizierung wird mit htpasswd verwaltet. Die Datei liegt typischerweise außerhalb des DocumentRoot:
sudo htpasswd -c /etc/apache2/.htpasswd michael # neue Datei anlegen, User hinzufügen
sudo htpasswd /etc/apache2/.htpasswd thomas # weiteren User ergänzen
sudo htpasswd -D /etc/apache2/.htpasswd thomas # User löschen
Die Passwörter werden dabei standardmäßig als bcrypt-Hashes gespeichert (Apache 2.4.4+).
Wichtige Verzeichnisse
/etc/apache2/– Konfiguration inkl.apache2.conf,ports.conf,sites-available/,mods-available//var/www/– DocumentRoot der Standard-Seiten/var/log/apache2/–access.logunderror.log/usr/sbin/apache2– das eigentliche Binärprogramm (httpd)
Verwandte Grundlagen: Webserver, Nginx-Befehle, Tomcat-Befehle, Reverse-Proxy, Load-Balancer, SSL/TLS.