Apache-Minikurs 2

☰ Menü

 Bevor wir beginnen:
Diesen Apache-Minikurs zum Mitnehmen gibt's im Fundus zum Download .

Einen Download-Pool einrichten

Üblicherweise werden Webseiten in Verzeichnissen geordnet. So kann man die Seite beispielsweise nach Inhalten, Multimediadateien (Bilder, Videos), Formatierungen mit CSS-Dateien, PHP-Skripten usw. strukturieren. Verweist man aus der Startdatei index.html auf einen Unterordner relativ zum DocumentRoot-Verzeichnis des Apache-Servers, so wird die Index-Datei dieser Unterseite geöffnet, falls dieser Ordner eine Index.html-Datei enthält.

 

Drei Beispiele aus der Praxis

Im DocumentRoot-Ordner des Webservers, bei Debian Stretch (Debian 9) ist dies das Verzeichnis /var/www/html liegt eine index.html-Datei, worin drei Unterordner verlinkt sind.

Die Links verweisen auf die Unterordner namens subfolder, public und private. Der Ordner Subfolder enthält als einziger eine index.html-Datei.

<html>
  <head>
    <meta charset='utf-8'>
    <title>Webserver</title>
	<style>
		body{font-family:sans-serif; margin:32px}
	</style>
  </head>
  <body>
    <h1>Apache Webserver</h1>

    <p>Dies ist die Datei <b>index.html</b> im Ordner DocumentRoot.</p>
    <p>Der Unterordner <a href="subfolder/" target="_blank">subfolder</a>.</p>
    <p>Der Unterordner <a href="public/" target="_blank">public</a>.</p>
    <p>Der Unterordner <a href="private/" target="_blank">private</a>.</p>
  </body>
</html>

Box 1: Datei /var/www/html/index.html

<!doctype html>
<html>
  <head>
    <title>Subfolder</title>
    <meta charset="utf-8">
    <style>
       body{font-family:sans-serif; margin:32px}
    </style>
  </head>
  <body>
    <h1>Dies ist auch eine Index-Datei</h1>
    <p>Diese Datei heißt
    <b>/var/www/html/subfolder/index.html</b>.</p>
    <p>Sie wurde durch einen Link auf den Ordner
    <b>/var/www/html/subfolder</b>
    ohne Angabe des Dateinamens geöffnet.</p>
</body>
</html>

Box 2: Datei /var/www/html/subfolder/index.html

Falls Sie diese Datei von einem Webserver betrachten, können Sie die Ordner public und private noch nicht öffnen, da sie in der Konfiguration des Apache-Servers erst noch nicht freigeschaltet sind. Was ist zu tun, wenn im Ordner public beliebige Dateien (PDF, JPEG, ICO...) zum Download bereit gestellt werden sollen?

 

Zentrale Stellschrauben

Wie Sie der zentralen Konfigurationsdatei /etc/apache2/apache2.conf entnehmen können, wird die Basiskonfiguration - Main server configuration - in den Ordnern /etc/apache2/conf-enabled und /etc/apache2/sites-enabled vorgenommen. Sie sollten sich diese Ordner also einmal genau ansehen...

 Stopp!  Jetzt ist genau der richtige Zeitpunkt, die Verzeichnisstruktur der Apache-Konfiguration zu sichern:
   mkdir /etc/apache2.org
   cd /etc
   cp -R apache2 apache2.org

Box 3: Konfigurationsdateien sichern

Den Inhalt des folgenden Abschnitts der Datei /etc/apache2/sites-available/default sollten Sie nachvollziehen. Alle hier vorgenommenen Einstellungen wirken sich auch auf die Unterordner der DocumentRoot aus.

Die Version können Sie mit dem Konsolenbefehl dpkg-query -W apache2 bestimmen.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<VirtualHost *:80>
	ServerAdmin webmaster@localhost

	DocumentRoot /var/www
	<Directory />
		Options FollowSymLinks
		AllowOverride None
	</Directory>
	<Directory /var/www>
		Options Indexes FollowSymLinks MultiViews
		AllowOverride None
		Order allow,deny
		allow from all
	</Directory>
</VirtualHost>

Box 4: Datei /etc/apache2/sites-available/default (Auszug, ab Apache 2.2)

1
2
3
4
5
6
7
8
9
10
11
<Directory />
	Options FollowSymLinks
	AllowOverride None
	Require all denied
<Directory>

<Directory /var/www/>
	Options Indexes FollowSymLinks
	AllowOverride None
	Require all granted
</Directory>

Box 4: Datei /etc/apache2/apache2.conf (Auszug, ab Apache 2.4)

 

Eine einfache .htaccess-Datei:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
Options +Indexes
AddDescription "HTML-Datei" *.htm *.html
AddDescription "GIF-Grafik" *.gif
AddDescription "JPEG-Grafik" *.jpg
AddDescription "ZIP-Archiv" *.zip
AddDescription "GZ-Archiv" *.gz
AddDescription "PDF-Datei" *.pdf
AddDescription "EXE-Datei" *.exe
AddIcon /subfolder/pdf.gif pdf
AddIcon /subfolder/html.gif html htm
AddIcon /subfolder/zip.gif zip gz
AddIcon /subfolder/gif.gif gif
AddIcon /subfolder/jpg.gif jpg jpeg
AddIcon /subfolder/exe.gif exe

Box 5: Datei /var/www/html/private/.htaccess
Die Gif-Dateien finden Sie im Archiv subfolder.zip.

 

Hilfen

 

Es ist eine gute Idee, das Apache-Hilfesystem auf der virtuellen Maschine selbst zu installieren. So ist es immer verfügbar.

Vorgehensweise:

 

Apache-Manual

 

 

Aufgaben

  1. Was ist die DocumentRoot?
  2. Was wird durch die Verzeichnisdirektiven Options None, Options All bzw. Options Indexes bewirkt?
    Aus Sicherheitsgründen sollte hier die Standardeinstellung Options None beibehalten werden.
  3. Was bezweckt die Verzeichnisdirektive AllowOverride None?
    Warum sollten Sie hier AllowOverride All wählen?
  4. Wozu kann man die Parameter Require all granted bzw. Require ip 192.168.0.0/16 verwenden?
  5. Wozu dient die Datei .htaccess und wo wird sie platziert?
  6. Beschreiben Sie den Inhalt der in Box 5 abgebildeten .htaccess-Datei!
  7. Schalten Sie in der Konfiguration des Apache-Servers den Unterordner public für den Download beliebiger Dateien frei!
    Achten Sie auf passende Ordner- (755) und Dateirechte (644)!
  8. Dokumentieren Sie Ihre Vorgehensweise!

 

W. Hermanns, © 2018