Apache2 on SUSE: Enterprise Web Serving (Artikel 157)
Konfiguration des Apache2 Webservers unter SUSE. Erfahren Sie alles über die SUSE-spezifische Modulverwaltung, vHost-Management via YaST und sysconfig-Integration.
# Apache2 on SUSE: Web-Services im SUSE-Standard
TL;DR / Management Summary Während Apache unter Debian oder RHEL oft rein über Textdateien verwaltet wird, bietet SUSE mit dem YaST HTTP Server Modul eine tiefe System-Integration. Ein Senior Admin muss wissen, dass SUSE die geladenen Module und globalen Flags in der Datei
/etc/sysconfig/apache2verwaltet. Manuelle Änderungen an derhttpd.confsollten vermieden werden – der “SUSE-Way” nutzt modulare.conf-Dateien und Variablen.
# 1. Einführung & Architektur
Die SUSE-spezifische Struktur.
- Config-Root:
/etc/apache2/ - Module:
/etc/sysconfig/apache2(VariableAPACHE_MODULES). - Virtual Hosts:
/etc/apache2/vhosts.d/ - Standard-Document-Root:
/srv/www/htdocs/
# Lade-Logik (Mermaid)
graph TD
A[/etc/apache2/httpd.conf] --> B[/etc/sysconfig/apache2]
A --> C[/etc/apache2/loadmodules.conf]
A --> D[/etc/apache2/vhosts.d/*.conf]
B -->|Defines| C
D --> E[vHost: App 1]
D --> F[vHost: App 2]
G[YaST] --> B
# 2. Installation & YaST-Wizard
Sicher zum ersten vHost.
# Pakete installieren
sudo zypper install apache2 yast2-http-server
sudo systemctl enable --now apache2
# Der YaST HTTP-Server Wizard
sudo yast2 http-server
- Listen Ports: Definieren Sie IPs und Ports (Standard 80/443).
- Modules: Aktivieren Sie Module wie
proxy_fcgioderrewriteper Checkbox. YaST schreibt diese direkt in diesysconfig. - Virtual Hosts: Erstellen Sie neue vHosts mit separaten Log-Pfaden.
# 3. Manuelle Modul-Verwaltung
Schnell auf der Konsole.
Anstatt a2enmod nutzt SUSE oft direkte Manipulation der sysconfig oder den Befehl a2enmod (der hier ein Wrapper ist).
# Modul aktivieren
sudo a2enmod rewrite
# Globales Flag setzen (z.B. für SSL)
sudo a2enflag SSL
Wichtig: Nach diesen Befehlen müssen Sie systemctl restart apache2 ausführen, damit die Änderungen aus der sysconfig in die Server-Runtime übernommen werden.
# 4. Day-2 Operations: vHost-Management
Ordnung in den Konfigurationen.
Legen Sie für jedes Projekt ein eigenes File unter /etc/apache2/vhosts.d/ an.
# Beispiel: Ein sauberer vHost (myapp.conf)
ServerName myapp.intern
DocumentRoot "/srv/www/vhosts/myapp"
AllowOverride None
Require all granted
ErrorLog /var/log/apache2/myapp-error_log
CustomLog /var/log/apache2/myapp-access_log combined
# 5. Troubleshooting & “War Stories”
Wenn der Indianer schweigt.
# Story 1: “Der ignorierte Modul-Parameter”
Symptom: Ein Admin fügt ein Modul in die httpd.conf ein, aber es wird nicht geladen.
Ursache: SUSE überschreibt beim Start die Modul-Liste basierend auf der /etc/sysconfig/apache2. Manuelle LoadModule Einträge in der Hauptkonfig werden oft ignoriert oder führen zu Fehlern.
Lösung: Nutzen Sie immer a2enmod <name>, was den Eintrag sauber in die sysconfig schreibt.
# Story 2: “Das SSL-Zertifikats-Chaos”
Symptom: Der Webserver startet nicht, Log zeigt SSLCertificateFile: file ... does not exist.
Ursache: Bei der Migration von Debian/RHEL wurden die Pfade übernommen (/etc/ssl/certs). SUSE hat jedoch eigene Standards für die Zertifikats-Verwaltung.
Lösung: Nutzen Sie das YaST-Modul CA Management, um Zertifikate systemweit zu registrieren, oder pflegen Sie die Pfade absolut in den vHost-Dateien.
# 6. Fazit & Empfehlung
- Pfade: Gewöhnen Sie sich an
/srv/www/statt/var/www/. - YaST: Nutzen Sie YaST für die Modul-Auswahl – es prüft Abhängigkeiten zwischen Modulen.
- Logging: Die Log-Pfade in SUSE sind unter
/var/log/apache2/standardisiert.
# Anhang: Cheatsheet
| Aufgabe | SUSE Befehl |
|---|---|
| Config testen | apache2ctl configtest |
| Geladene Module | apache2ctl -M |
| vHosts auflisten | apache2ctl -S |
| Modul aktivieren | a2enmod <name> |
| vHost aktivieren | a2ensite <file> |
| Server Status | systemctl status apache2 |
| Log-Datei live | tail -f /var/log/apache2/error_log |
| YaST Modul | yast2 http-server |