<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki.ixheim.de/index.php?action=history&amp;feed=atom&amp;title=Rocky_www</id>
	<title>Rocky www - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.ixheim.de/index.php?action=history&amp;feed=atom&amp;title=Rocky_www"/>
	<link rel="alternate" type="text/html" href="https://wiki.ixheim.de/index.php?title=Rocky_www&amp;action=history"/>
	<updated>2026-06-28T20:32:15Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Xinux Wiki</subtitle>
	<generator>MediaWiki 1.35.1</generator>
	<entry>
		<id>https://wiki.ixheim.de/index.php?title=Rocky_www&amp;diff=70258&amp;oldid=prev</id>
		<title>Thomas.will: 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…“</title>
		<link rel="alternate" type="text/html" href="https://wiki.ixheim.de/index.php?title=Rocky_www&amp;diff=70258&amp;oldid=prev"/>
		<updated>2026-05-20T06:10:29Z</updated>

		<summary type="html">&lt;p&gt;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…“&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= Apache Webserver auf Rocky Linux =&lt;br /&gt;
&lt;br /&gt;
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 &amp;lt;code&amp;gt;/etc/ssl/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
= Installation =&lt;br /&gt;
&lt;br /&gt;
* dnf install -y httpd mod_ssl&lt;br /&gt;
&lt;br /&gt;
= Zertifikat holen =&lt;br /&gt;
&lt;br /&gt;
* wget -nv -O /tmp/it2XX.int.tgz https://web.samogo.de/certs/it2XX.int.tgz&lt;br /&gt;
* tar -C /tmp -xvzf /tmp/it2XX.int.tgz&lt;br /&gt;
* mv /tmp/fullchain.pem /etc/ssl/own.crt&lt;br /&gt;
* mv /tmp/privkey.pem /etc/ssl/own.key&lt;br /&gt;
&lt;br /&gt;
= PHP installieren =&lt;br /&gt;
;PHP wird über das dnf-Modul installiert – so lässt sich später auch eine andere Version aktivieren&lt;br /&gt;
* dnf install -y php php-fpm php-mysqlnd php-json php-mbstring&lt;br /&gt;
&lt;br /&gt;
;PHP-FPM starten – httpd übergibt PHP-Anfragen an diesen Prozess&lt;br /&gt;
* systemctl enable --now php-fpm&lt;br /&gt;
&lt;br /&gt;
= VirtualHost konfigurieren =&lt;br /&gt;
;Wir legen eine eigene Konfigurationsdatei an – nicht die default ssl.conf anfassen&lt;br /&gt;
* vi /etc/httpd/conf.d/www.it2XX.int.conf&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# HTTP → HTTPS Redirect&lt;br /&gt;
&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
    ServerName www.it2XX.int&lt;br /&gt;
    Redirect permanent / https://www.it2XX.int/&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# HTTPS VirtualHost&lt;br /&gt;
&amp;lt;VirtualHost *:443&amp;gt;&lt;br /&gt;
    ServerName www.it2XX.int&lt;br /&gt;
    DocumentRoot /var/www/it2XX&lt;br /&gt;
&lt;br /&gt;
    SSLEngine on&lt;br /&gt;
    SSLCertificateFile    /etc/ssl/own.crt&lt;br /&gt;
    SSLCertificateKeyFile /etc/ssl/own.key&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;Directory /var/www/it2XX&amp;gt;&lt;br /&gt;
        AllowOverride None&lt;br /&gt;
        Require all granted&lt;br /&gt;
    &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    # PHP über FPM&lt;br /&gt;
    &amp;lt;FilesMatch \.php$&amp;gt;&lt;br /&gt;
        SetHandler &amp;quot;proxy:unix:/run/php-fpm/www.sock|fcgi://localhost&amp;quot;&lt;br /&gt;
    &amp;lt;/FilesMatch&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    ErrorLog  /var/log/httpd/www.it2XX.int_error.log&lt;br /&gt;
    CustomLog /var/log/httpd/www.it2XX.int_access.log combined&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Verzeichnis anlegen =&lt;br /&gt;
;DocumentRoot erstellen&lt;br /&gt;
* mkdir -p /var/www/it2XX&lt;br /&gt;
&lt;br /&gt;
= Beispielseite =&lt;br /&gt;
;Eine einfache PHP-Seite die den Hostnamen und die aktuelle Zeit anzeigt&lt;br /&gt;
* vi /var/www/it2XX/index.php&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE html&amp;gt;&lt;br /&gt;
&amp;lt;html lang=&amp;quot;de&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;meta charset=&amp;quot;UTF-8&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;Willkommen auf &amp;lt;?= gethostname() ?&amp;gt;&amp;lt;/title&amp;gt;&lt;br /&gt;
    &amp;lt;style&amp;gt;&lt;br /&gt;
        body { font-family: sans-serif; max-width: 600px; margin: 4em auto; }&lt;br /&gt;
        h1   { color: #c0392b; }&lt;br /&gt;
        p    { color: #333; }&lt;br /&gt;
    &amp;lt;/style&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
    &amp;lt;h1&amp;gt;Willkommen auf &amp;lt;?= gethostname() ?&amp;gt;&amp;lt;/h1&amp;gt;&lt;br /&gt;
    &amp;lt;p&amp;gt;Server: &amp;lt;strong&amp;gt;&amp;lt;?= $_SERVER['SERVER_NAME'] ?&amp;gt;&amp;lt;/strong&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p&amp;gt;Zeit:   &amp;lt;strong&amp;gt;&amp;lt;?= date('d.m.Y H:i:s') ?&amp;gt;&amp;lt;/strong&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p&amp;gt;PHP:    &amp;lt;strong&amp;gt;&amp;lt;?= phpversion() ?&amp;gt;&amp;lt;/strong&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Konfiguration prüfen =&lt;br /&gt;
;Syntaxfehler erkennen bevor httpd neu gestartet wird&lt;br /&gt;
* apachectl configtest&lt;br /&gt;
 Syntax OK&lt;br /&gt;
&lt;br /&gt;
= Dienst starten =&lt;br /&gt;
* systemctl enable --now httpd&lt;br /&gt;
* systemctl restart httpd&lt;br /&gt;
&lt;br /&gt;
= Firewall =&lt;br /&gt;
;HTTP und HTTPS auf dem www-Server freigeben&lt;br /&gt;
* firewall-cmd --permanent --zone=public --add-service=http&lt;br /&gt;
* firewall-cmd --permanent --zone=public --add-service=https&lt;br /&gt;
* firewall-cmd --reload&lt;br /&gt;
&lt;br /&gt;
= SELinux =&lt;br /&gt;
;SELinux läuft auf Rocky standardmäßig im enforcing-Modus. Auch wenn die Dateiberechtigungen stimmen, blockiert SELinux den Zugriff wenn der Sicherheitskontext falsch ist.&lt;br /&gt;
&lt;br /&gt;
== Kontext setzen ==&lt;br /&gt;
;Das Verzeichnis muss als Webinhalt markiert sein damit httpd darauf zugreifen darf&lt;br /&gt;
* chcon -Rt httpd_sys_content_t /var/www/it2XX&lt;br /&gt;
&lt;br /&gt;
;Kontext prüfen&lt;br /&gt;
* ls -Zd /var/www/it2XX&lt;br /&gt;
&lt;br /&gt;
== Fehleranalyse ==&lt;br /&gt;
;Falls der Zugriff trotzdem fehlschlägt – SELinux-Blockaden anzeigen&lt;br /&gt;
* ausearch -m avc -ts recent&lt;br /&gt;
&lt;br /&gt;
= Logs =&lt;br /&gt;
* journalctl -fu httpd&lt;br /&gt;
* tail -f /var/log/httpd/www.it2XX.int_error.log&lt;br /&gt;
* tail -f /var/log/httpd/www.it2XX.int_access.log&lt;br /&gt;
&lt;br /&gt;
= Test =&lt;br /&gt;
;Im Browser aufrufen – HTTP muss automatisch auf HTTPS umleiten&lt;br /&gt;
 http://www.it2XX.int&lt;br /&gt;
 https://www.it2XX.int&lt;br /&gt;
&lt;br /&gt;
;Zertifikat prüfen&lt;br /&gt;
* openssl s_client -connect www.it2XX.int:443 -showcerts&lt;/div&gt;</summary>
		<author><name>Thomas.will</name></author>
	</entry>
</feed>