Konfiguration des virtuellen Webservers

Viele VHost-spezifische Konfigurationseinträge können von den Benutzern selbst erstellt werden. Dazu dient das Programm myapacheconf, das mit der zu verwendenden Konfigurationsdatei aufgerufen wird. Nach einer restriktiven Syntaxprüfung wird diese nach /var/www/FQDN/conf/user.conf geschrieben und im Cluster verteilt (FQDN ist der Servername, also z.B. www.oe.kit.edu).

Wir empfehlen die Konfiguration lokal unter $HOME/FQDN/conf/user.conf abzuspeichern und diese Datei anzupassen.

Zur Aktivierung der geänderten Konfiguration ist dann folgender Befehl auszuführen:

 

myapacheconf -V FQDN < $HOME/FQDN/conf/user.conf

 

Die sich daraus ergebende Gesamtkonfiguration kann von jedem Server unter http://FQDN/server-info abgerufen werden. Zusätzlich gibt es noch eine Status-Seite http://FQDN/server-status, die auch der Loadbalancer zur Status-Überprüfung benutzt. Die PHP-Konfiguration lässt sich als http://FQDN/phpinfo.php abrufen.

myapacheconf überprüft die Konfiguration und verhindert das Verwenden von Direktiven, die die Sicherheit oder den stabilen Betrieb des Servers oder anderer Kunden-Instanzen gefährden könnten. Es kann aber nicht verhindern, dass bei falscher Verwendung der Betrieb oder die Verfügbarkeit des eigenen Auftritts beeinträchtigt werden. In Zweifelsfällen wenden Sie sich bitte vorab an unsere Webmaster.

Dadurch, dass die vom Benutzer selbst erstellte Konfiguration in alle Zugriffswege (d.h. unverschlüsselt über HTTP und verschlüsselt über HTTPS) eingespielt wird, lassen sich nicht alle Szenarien sauber abbilden. Insbesondere der Wunsch, den Zugang zu einem Web-Auftritt insgesamt nur in verschlüsselter Form zuzulassen (Seiten, die durch Authentifizierung geschützt sind, werden automatisch nur verschlüsselt übertragen!), ist so nicht einfach zu realisieren. Für genau diesen Fall gibt es aber eine serverseitige Konfiguration, die die entsprechenden Umleitungen automatisch vornimmt, die notwendigen Header setzt und auch in weiteren Details die Konfiguration anpasst, dabei aber z.B. das Monitoring des Servers über unsere Loadbalancer nicht beeinträchtigt. Wenden Sie sich bei solch einem Wunsch bitte an unsere Webmaster!

 

Ablösung der .htaccess-Funktionalität

.htaccess-Dateien werden auf den virtuellen Webservern nicht ausgewertet. Die Inhalte der .htaccess-Dateien müssen in die zentrale Konfigurationsdatei des Webservers eingetragen werden. Zum einfachen Transfer bietet das SCC das Script htaccess2myapacheconf an, das den angegebenen Verzeichnisbaum (oder das aktuelle Verzeichnis) nach .htaccess-Dateien absucht und sie mit entsprechenden <Directory> Direktiven ausgibt:

 

htaccess2myapacheconf -v FQDN/htdocs > $HOME/FQDN/conf/user.conf

 

Die so entstandene Datei  $HOME/FQDN/conf/user.conf kann dann nach o.g. Art in die Apachekonfiguration aufgenommen werden.

Beispiele für Zugangsschutz

Das Anlegen des Unterverzeichnisses conf und der Datei user.conf
   $HOME/FQDN/conf/user.conf
sowie das Erstellen der Inhalte in die user.conf können auch über eine Windows-Netzlaufwerkverbindung und so mit einem Windows-Editor gemacht werden.

Zum Anlegen/Updaten der Passwortdatei mit dem Skript htpasswd sowie zum Aktivieren der Konfiguration mit myapacheconf müssen sie über ssh (z.B. über putty) auf den Webserver eingeloggt sein.


Im Folgenden ein paar Beispiele für die user.conf und das Generieren einer Passwortdatei (siehe auch Apache Authentication and Authorisation).
Pfade und Dateinamen entsprechend anpassen für den eigenen Auftritt.


Passwortgeschützter Aufruf des Verzeichnisses verzeichnis und dessen Inhalte:

<Directory /home/ws/abc-web-0001/servername.kit.edu/htdocs/verzeichnis>
   AuthType Basic
   AuthName "Name"
   Require valid-user
   AuthUserFile /home/ws/abc-web-0001/servername.kit.edu/conf/passwortdatei
</Directory>


Directory verzeichnis nur im KIT-Intranet aufrufbar:

<Directory /home/ws/abc-web-0001/servername.kit.edu/htdocs/verzeichnis>
    Include /etc/apache2/include/kit
</Directory>


Die Mitglieder der genannten ldap-Gruppe können sich mit ihrem KIT-Account einloggen:
ldap-gruppenname ersetzen mit Namen der ldap-Gruppe
56789 ersetzen mit gidNummer der ldap-Gruppe

<Directory /home/ws/abc-web-0001/servername.kit.edu/htdocs/verzeichnis>
   AuthName "Name"
   Include /etc/apache2/include/auth_ldap
   Require ldap-group   cn=ldap-gruppenname,ou=Groups,ou=unix,ou=IDM,dc=kit,dc=edu
   Require ldap-attribute   gidNumber=56789
</Directory>


Mit der File-Directive können einzelne oder mehrere Dateien "geschützt" werden, Beispiel zeigt Passwortschutz für alle Dateien, PDFs etc. deren Namen mit int_ beginnt:

<Files int_*>
   AuthType Basic
   AuthName "Name"
   Require valid-user
   AuthUserFile /home/ws/abc-web-0001/servername.kit.edu/conf/passwortdatei
</Files>

 

Generieren der Passwortdatei mit dem Skript htpasswd:

htpasswd -cb passwortdatei loginname pass


generiert eine Datei mit Namen passwortdatei dem Benutzernamen loginname und dem Passwort pass

Weitere Optionen erhalten sie mit Aufruf von

htpasswd -h

 

Aktivieren der Konfiguration wie oben beschreiben mit Aufruf von

 

myapacheconf -V servername.kit.edu < $HOME/servername.kit.edu/conf/user.conf

 

Weiterleitung

Das Anlegen des Unterverzeichnisses conf und der Datei user.conf
 $HOME/FQDN/conf/user.conf
sowie das Erstellen der Inhalte in die user.conf können auch über eine Windows-Netzlaufwerkverbindung und so mit einem Windows-Editor gemacht werden.

 

Einfache Weiterleitung von alte_adresse.php nach neue_seite.php:

RewriteEngine On
RewriteRule ^/alte_adresse.php$ /neue_seite.php [R,L]

 

Aktivieren der Konfiguration wie oben beschreiben mit Aufruf von

 

myapacheconf -V servername.kit.edu < $HOME/servername.kit.edu/conf/user.conf

 

PHP Konfigurations-Optionen

Mit dem Wechsel von PHP 5.6.14 auf 7.3.14 läuft PHP nicht mehr im Apache-Prozess, sondern in einem separaten FPM (FastCGI-Prozessmanager), d.h. Konfigurations-Optionen wie php_value werden jetzt in der Apache-Konfiguration nicht mehr akzeptiert, sondern müssen dem FPM mitgeteilt werden.
Die Einträge lassen sich nicht durch Apache-spezifische Optionen einschränken, z.B. auf ein bestimmtes Verzeichnis o.ä., Änderungen durch die Benutzer selbst sind nicht mehr möglich. 

Falls sie Anpassungen der php-Optionen benötigen, wenden sie sich bitte an webmaster does-not-exist.kit edu
 

HTTPS-Betrieb

Seit dem 31.03.2021 sind die Webserver auf einen reinen HTTPS-Betrieb umgestellt.