linux-suse-opensuse webserver apache yast sles opensuse

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/apache2 verwaltet. Manuelle Änderungen an der httpd.conf sollten 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 (Variable APACHE_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
  1. Listen Ports: Definieren Sie IPs und Ports (Standard 80/443).
  2. Modules: Aktivieren Sie Module wie proxy_fcgi oder rewrite per Checkbox. YaST schreibt diese direkt in die sysconfig.
  3. 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