Rocky www

Aus Xinux Wiki
Version vom 20. Mai 2026, 06:10 Uhr von Thomas.will (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „= Apache Webserver auf Rocky Linux = Der Webserver läuft in der DMZ und stellt Webinhalte über HTTP und HTTPS bereit. HTTP-Anfragen werden automatisch auf H…“)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen

Apache Webserver auf Rocky Linux

Der Webserver läuft in der DMZ und stellt Webinhalte über HTTP und HTTPS bereit. HTTP-Anfragen werden automatisch auf HTTPS umgeleitet. Das Zertifikat kommt von web.samogo.de und liegt unter /etc/ssl/.

Installation

  • dnf install -y httpd mod_ssl

Zertifikat holen

PHP installieren

PHP wird über das dnf-Modul installiert – so lässt sich später auch eine andere Version aktivieren
  • dnf install -y php php-fpm php-mysqlnd php-json php-mbstring
PHP-FPM starten – httpd übergibt PHP-Anfragen an diesen Prozess
  • systemctl enable --now php-fpm

VirtualHost konfigurieren

Wir legen eine eigene Konfigurationsdatei an – nicht die default ssl.conf anfassen
  • vi /etc/httpd/conf.d/www.it2XX.int.conf
# HTTP → HTTPS Redirect
<VirtualHost *:80>
    ServerName www.it2XX.int
    Redirect permanent / https://www.it2XX.int/
</VirtualHost>

# HTTPS VirtualHost
<VirtualHost *:443>
    ServerName www.it2XX.int
    DocumentRoot /var/www/it2XX

    SSLEngine on
    SSLCertificateFile    /etc/ssl/own.crt
    SSLCertificateKeyFile /etc/ssl/own.key

    <Directory /var/www/it2XX>
        AllowOverride None
        Require all granted
    </Directory>

    # PHP über FPM
    <FilesMatch \.php$>
        SetHandler "proxy:unix:/run/php-fpm/www.sock|fcgi://localhost"
    </FilesMatch>

    ErrorLog  /var/log/httpd/www.it2XX.int_error.log
    CustomLog /var/log/httpd/www.it2XX.int_access.log combined
</VirtualHost>

Verzeichnis anlegen

DocumentRoot erstellen
  • mkdir -p /var/www/it2XX

Beispielseite

Eine einfache PHP-Seite die den Hostnamen und die aktuelle Zeit anzeigt
  • vi /var/www/it2XX/index.php
<!DOCTYPE html>
<html lang="de">
<head>
    <meta charset="UTF-8">
    <title>Willkommen auf <?= gethostname() ?></title>
    <style>
        body { font-family: sans-serif; max-width: 600px; margin: 4em auto; }
        h1   { color: #c0392b; }
        p    { color: #333; }
    </style>
</head>
<body>
    <h1>Willkommen auf <?= gethostname() ?></h1>
    <p>Server: <strong><?= $_SERVER['SERVER_NAME'] ?></strong></p>
    <p>Zeit:   <strong><?= date('d.m.Y H:i:s') ?></strong></p>
    <p>PHP:    <strong><?= phpversion() ?></strong></p>
</body>
</html>

Konfiguration prüfen

Syntaxfehler erkennen bevor httpd neu gestartet wird
  • apachectl configtest
Syntax OK

Dienst starten

  • systemctl enable --now httpd
  • systemctl restart httpd

Firewall

HTTP und HTTPS auf dem www-Server freigeben
  • firewall-cmd --permanent --zone=public --add-service=http
  • firewall-cmd --permanent --zone=public --add-service=https
  • firewall-cmd --reload

SELinux

SELinux läuft auf Rocky standardmäßig im enforcing-Modus. Auch wenn die Dateiberechtigungen stimmen, blockiert SELinux den Zugriff wenn der Sicherheitskontext falsch ist.

Kontext setzen

Das Verzeichnis muss als Webinhalt markiert sein damit httpd darauf zugreifen darf
  • chcon -Rt httpd_sys_content_t /var/www/it2XX
Kontext prüfen
  • ls -Zd /var/www/it2XX

Fehleranalyse

Falls der Zugriff trotzdem fehlschlägt – SELinux-Blockaden anzeigen
  • ausearch -m avc -ts recent

Logs

  • journalctl -fu httpd
  • tail -f /var/log/httpd/www.it2XX.int_error.log
  • tail -f /var/log/httpd/www.it2XX.int_access.log

Test

Im Browser aufrufen – HTTP muss automatisch auf HTTPS umleiten
http://www.it2XX.int
https://www.it2XX.int
Zertifikat prüfen
  • openssl s_client -connect www.it2XX.int:443 -showcerts