Einrichten des Rootserver als Webserver mit Apache2 – Teil 3

Grundkonfiguration von Apache2 zum Hosten von Webseiten

Überblick

Im dritten Teil beschreibe ich, wie man den  Apache2 Server auf dem  Linux Ubuntu Server installiert und konfiguriert, so dass man auch virtuelle Hosts verwenden kann.

Installation von Apache2

Die Installation hätte man natürlich auch gleich bei der Installation des Betriebssystems ausführen lassen können, jedoch finde ich es sinnvoller den Server Schritt für Schritt zu installieren, da man dadurch mehr Kontrolle hat.

sudo apt-get install apache2

Wiederum über die APT-Paketverwaltung kann der  Apache2  Dienst eingerichtet werden. Sofern dieser installiert ist, läuft er in der Regel auch sofort. Wenn man über einen Browser per IP-Adresse auf den Server zugreift, sollte man die folgende Seite erhalten.

Linux Apache Webserver - Default Seite nach der Installation
Linux Apache Webserver – Default Seite nach der Installation

Sobald der Apache Dienst fertig konfiguriert ist, findet man im Verzeichnis /etc/apache2 die folgenden verschiedenen Ordner bzw. Konfigurationsdateien:

Dateien bzw. OrdnerInhalt
/etc/apache2/apache2 .confStartpunkt - Grundkonfiguration
/etc/apache2/httpd.c onfbenutzerspezifische Konfiguration
/etc/apache2/ports.confüberwachte Ports, normalerweise Port 80 oder für SSL 443
/etc/apache2/conf.d/*weitere Konfigurationsdateien
/etc/apache2/mods-available/verfügbare Erweiterungsmodule
/etc/apache2/mods-enabled/*.confLinks auf aktive Erweiterungsmodule
/etc/apache2/conf-available/verfügbare Konfigurationsdateien
/etc/apache2/conf-enabled/*.confLinks auf aktive Konfigurationsdateien
/etc/apache2/sites-available/verfügbare Websites (virtuelle Hosts)
/etc/apache2/sites-enabled/*.confLinks auf aktive Websites (Aktivierte Hosts)
/etc/apache2/envvarsUmgebungsvariablen für das Init-Script

Der Server bietet verschiedene Module an, welche im Verzeichnis mods-available zu finden sind. Sofern man eines aktivieren möchte, kann man das mit a2enmod. Ein Modul kann man sich prinzipiell als Feature vorstellen, das den Server um verschiedene Funktionen erweitert. So z.B. mit PHP, oder Daten Komprimierung. Eine vollständige Liste findet man natürlich auf der  Apache2 Webseite. Man sollte aber immer bedenken, je mehr man installiert umso mehr muss man schützen. Auf einem Server gilt immer, so wenig wie möglich installieren. Immer nur das nötigste. Einige Module sind standardmäßig aktiviert. Natürlich lässt sich ein Modul auch wieder deaktivieren.

a2ensite <Modul-Name> = Modul aktivieren

a2dissite <Modul-Name> = Modul deaktivieren

Am Linux Apache Webserver standarmäßig installierte Module
Am Linux Apache Webserver standarmäßig installierte Module

Konfiguration des Webverzeichnisses

Standardmäßig besitzt der Apache Webserver das Verzeichnis /var/www/. Hier sind die Dokumente der einzelnen Webseiten abzuspeichern. Z.B. wenn man einen neue Seite anlegt, könnte man in diesem Verzeichnis einen neuen Ordner mit dem Namen neue-webseite.de anlegen. Dort liegen dann sämtliche nötigen Daten der Webseite. Vorkonfiguriert ist der Ordner html, welcher die Datei index.html enthält. Dies ist genau die Default Einstellungen und enthält auch die Seite des obigen Screenshots. Der neu angelegt Ordner besitzt in der Regel  die Rechte des Benutzers root und gehört auch der Gruppe root an. Das muss man auf jeden Fall ändern, da man sonst nicht damit arbeiten kann und man erhält den typischen Serverfehler, das der Zugriff verweigert wurde. Übrigens wird in diesem Ordner später auch WordPress installiert und gerade für das updaten von WordPress ist es nötig, dass der Seiteneigentümer der Benutzer www-data ist.

Linux Apache2 Webserver - Das Document Verzeichnis
Linux Apache2 Webserver – Das Document Verzeichnis

Der Benutzer unter dem der Apache Server läuft heißt www-data. Dieser sollte auch der Eigentümer des Werbeverzeichnisses sein. Bei der Gruppe kann man sich überlegen, wie man das am sinnvollsten macht. Ich verwende hierfür eine eigene Gruppe für die FTP user, z.B. mit dem Namen ftp-user. Dann kann ich nämlich Benutzer für den FTP Zugang erstellen, die beim Zugriff auf das Webverzeichnis Schreib -und Leserechte besitzen. Die Rechte erhalten die entrechenden Benutzer durch die Mitgliedschaft in der Gruppe ftp-user. Was man hier auf keinen Fall vergessen darf, ist dass man die ganze Benutzeränderungen und Rechteänderungen rekursiv anwenden muss, damit auch die Unterordner und Dateien die entsprechenden Rechte besitzen.

chown -R www-data:ftp-user neue-seite.de
chmod -R 660 neue-seite.de

Virtuelle Hosts anlegen

Nachdem man das Dokumentenverzeichnis (var/www/neue-seite.de) angelegt hat, geht es noch um die Konfiguration des virtuellen Hosts. Die dafür nötige Konfigurationsdatei befindet sich im Verzeichnis: /etc/apache2/sites-available. Als Default findet man hier die 000-Default.conf Datei. Am besten man kopiert diese und bearbeitet sie anschließend entsprechend.

cp 000-Default.conf meine-seite-de.conf

Jetzt kann man diese Datei zum bearbeiten öffnen. Ich habe den Konsoleneditor nano verwendet, da er sehr einfach zu bedienen ist.

nano meine-seite-de.conf
Linux Apache2 Webserver - Die Konfigurationsdatei für virtuelle Hosts
Linux Apache2 Webserver – Die Konfigurationsdatei für virtuelle Hosts

Diese Datei ist nun die Konfigurationsdatei unserer neuen Webseite. Hier müssen einige Einstellungen vorgenommen werden, u.a. die folgenden:

  • Anpassen des Dokumentenverzeichnisses
  • Anpassen der Email Adresse des Server Admins
  • Anpassen des Server Namens
  • Pfade des Logfiles und des Accessfiles anpassen
  • Evlt. Einbau eines Verzeichnisschutzes z.B. für Login Seiten. 

Zur Änderung des Server Namens muss das Raute Zeichen (#) entfernt werden und anschließend kann man den Namen eintragen. Bei mir z.B. sv.neue-seite.de. Natürlich muss der Name auch aufgelöst werden können. Der korrekte und vollständige Name sollte dann auch in der /etc/hosts Datei eingetragen werden. Beim Server Admin ändert man ebenso die Adresse auf [email protected]. Ganz wichtig ist jetzt das DocumentRoot, den hier muss man den richtigen Pfad angeben. In unserem Fall ist das /var/www/neue-seite.de. Das Verzeichnis für ErrorLog und CustomLog wird standardmäßig direkt im Verzeichnis /var/log/apache2 erstellt. Hat man jedoch mehrere Seiten bzw. virtuelle Hosts so könnte man einen Unterordner anlegen, damit man weis welche Logfiles zu welcher Webadresse gehören.

ErroLog /var/log/apache2/neue-seite.de/error.log
CustomLog /var/log/apache2/neue-seite.de/access.log combined.

Das Absichern eines bestimmten Pfades möchte ich im letzten Teil der Artikelserie erläutern, wenn es um das Thema Sicherheit geht. Test weise kann man jetzt gleich im Verzeichnis /var/www/meine-seite.de einen neue index.html Datei anlegen.

Jetzt muss man nur noch den virtuellen Host aktivieren und die Konfigurationsdateien des Webservers neu laden oder den Apache2 Dienst neu starten.

Virtuelle Seite aktivieren:

a2ensite neue-seite.de

Konfigurationsdatei von Apache neu laden

service apache2 reload

Apache2 Dienst neu starten

/etc/init.d/apache2 restart

Ein erneuter Aufruf der IP-Adresse über den Browser, sollte jetzt die neue Seite laden. Falls es sich um eine Domain handelt, die man bei einem Provider registriert hat, so muss beim Provider direkt ein sogenannter A-Record für die Domain zu dem Server erstellt werden. Da bedeutet im Prinzip nur, dass der Domain eine bestimmte IP-Adresse zugeordnet wird. Also diese Webadresse ist unter dieser IP-Adresse erreichbar. Da es sich hier um eine Teststellung im lokalen Netz handelt, habe dich den DNS-Namen nur in die lokal, für die DNS-Namensauflösung zuständige Datei, eingetragen. Also in die hosts Datei. Diese befindet sich im Windows System unter /windows/system32/drivers/etc und im Linux System unter /etc/hosts.

Aufruf der Webseite des virtuellen Hosts unter dem Linux Apache Webserver
Aufruf der Webseite des virtuellen Hosts unter dem Linux Apache Webserver

Ausblick

Der Apache Server ist prinzipiell in wenigen Schritten eingerichtet. Am wichtigsten ist zum einen das Verzeichnis für die Webseiten (/var/www/neue-seite.de) und natürlich die virtuellen Host. Der Apache Server bietet natürlich eine Vielzahl an weiteren möglichen Konfigruationseinstellungen. Aber man sollte aus Sicherheitstechnischen Gründen sich immer genau überlegen, was wirklich genau benötigt wird, den je mehr Module aktiviert sind, umso mehr Angriffsfläche bietet somit auch der Server. Wer sich detaillierter mit Apache beschäftigen möchte, dem empfehle ich das Buch Apache 2.4 vom Rheinwerk Verlag*.

Im nächsten Teil der Artikelserie geht es um die Installation und Konfiguration von PHP  auf dem Server, den ohne diese Sprache ist der Betrieb einer Modernen Webseite wie WordPress nicht möglich.

Zum Teil 2   Artikelserie   Zum Teil 4

2 Kommentare

Kommentar hinterlassen

E-Mail Adresse wird nicht veröffentlicht.


*