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.log und error.log
  • /usr/sbin/apache2 – das eigentliche Binärprogramm (httpd)

Verwandte Grundlagen: Webserver, Nginx-Befehle, Tomcat-Befehle, Reverse-Proxy, Load-Balancer, SSL/TLS.