Im Durchschnitt wird dieses Tutorial Apache2 vHosts auf Debian 8 erstellen mit 5 bewertet, wobei 1.0 die schlechteste und 5.0 die beste Bewertung ist. Es haben insgesamt 460 Besucher eine Bewertung abgegeben.
460 0

Apache2 vHosts auf Debian 8 erstellen

vom gridscale Team Apache Debian
tutorial Apache 2 vHosts debian erstellen

Apache2 auf Debian 8 installieren

Vor einiger Zeit habe ich dir in diesem Artikel gezeigt wie, du vHosts für Apache unter Ubuntu anlegst und richtig konfigurierst. Da es einige Nachfragen bezüglich der Installation unter Debian gab, zeige ich dir in diesem Artikel die Unterschiede zur Installation unter Debian, denn obwohl Ubuntu auf Debian aufbaut, gibt es doch den einen oder anderen Unterschied.

Debian 8 Server Vorbereitung

Verbinde dich via SSH als Root mit deinem Debian 8 Server. Hast du gerade keinen zur Hand, erstelle dir schnell einen bei dem Cloud Provider deiner Wahl. Bei gridscale dauert dies nur wenige Sekunden. In unserem Artikel „How to gridscale“ zeige ich dir, wie du schnell und einfach, bei gridscale einen Server erstellen kannst. Wie vor jeder Installation, ist es empfehlenswert, den Server auf den neuesten Stand zu bringen. Der Syntax zum Updaten von Debian ist identisch mit dem von Ubuntu:

apt -y update; apt -y upgrade

apt ist der Paket-Manger unter Ubuntu und Debian, eine zentrale Anlaufstelle zum Installieren, verwalten und updaten von Softwarepaketen. Einer der großen Vorteile einer zentralen Verwaltung ist das einfache Updaten aller Systemkomponenten mit nur einem Befehl.
Nachdem dein Server jetzt auf dem neusten Stand ist, installierst du im nächsten Schritt Apache2. Dazu kannst du auch wieder APT benutzen:

Apache vHosts erstellen und konfigurieren

apt -y install apache2

Ist die Installation von Apache abgeschlossen, kannst du jetzt bereits die Debian-Default-Website in deinem Browser sehen, wenn du in die Adresszeile die IP deines Servers eingibst. Bei genauerem Betrachten fällt allerdings auf, dass diese noch über http, also unverschlüsselt dargestellt wird. Um das zu ändern, benötigst du 3 Dinge:

– Eine Domain (Sub-Domain oder Top-Level-Domain)
– Ein gültiges SSL-Zertifikat für deine Domain
– Eine automatische Weiterleitung von http auf https, um alle Anfragen zu verschlüsseln

Aber eins nach dem anderen. Zuerst solltest du die Config-Datei, also den vHost-Eintrag der Default-Seite, anpassen. Apache hinterlegt alle Config-Dateien unter /etc/apache2/sites-available/. Werden diese aktiviert, wird ein Link in /etc/apache2/sites-enabled/ erstellt. Am einfachsten ist es, für alle Projekte auf deinem Server eine eigene Config zu erstellen. Das hat den Vorteil, dass du die Projekte einfach ein- und ausschalten kannst. Um dir ein bisschen Schreibarbeit zu ersparen, kannst du die Default-Config als Vorlage benutzen. Deaktiviere sie zunächst und erstelle dann eine Kopie der Default-Config:

a2dissite 000-default default-ssl && cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/.conf

Danach solltest du Apache einmal neustarten:

service apache2 restart

Anschließend kannst du mit einem Editor deiner Wahl die neu erstellte Config bearbeiten. Ich nutze dafür Nano, aber du kannst natürlich auch jeden anderen Editor benutzen:

nano /etc/apache2/sites-available/.conf

Zum Aufbau der Datei:

Umschlossen wird die Konfiguration mit den VirtualHost-Tags, wobei direkt in der ersten Zeile die erste Änderung vorgenommen wird. Anstelle des Sternchens wird die Domain deines Projektes angegeben. Damit gilt der Inhalt, also der Teil zwischen den Tags, nur für diese Domain.
Der nächste Punkt, den du ändern solltest, ist der ServerName. Noch ist dieser auskommentiert, aber durch das Entfernen der Raute wird die Zeile für die Config relevant. Hinter ServerName kommt ebenfalls deine Domain. In der Zeile darunter fügst du ServerAlias ein und nennst dahinter alle weiteren Domains, die auf dieses Projekt zeigen, zum Beispiel die www-Variante deiner Top-Level Domain.
Anschließend solltest du noch hinter ServerAdmin eine gültige E-Mail-Adresse angeben. Automatisch generierte Fehlermeldungen nutzen diese Adresse, um den Besuchern deiner Webseite eine Kontaktmöglichkeit anzubieten.
In der nächsten Zeile wird das Root-Verzeichnis deiner Webseite festgelegt, also der Pfad zum Inhalt deiner Seite. Der Standardpfad ist /var/www/html. Ich empfehle dir jedoch, einen eigenen anzugeben, der genau wie die Config zum Namen deines Projektes passt. Dies hat den Vorteil, dass du bei mehreren Projekten auf dem Server immer noch den Überblick behältst. Trage also zum Beispiel /var/www/<meinprojekt> ein. Merke dir diesen Pfad, denn anschließend muss auch der Ordner erstellt werden.
Die nächste relevante Zeile ist etwas weiter unten und nennt sich ErrorLog. Ändere den Dateinamen der Log-Dateien so ab, dass du diese ebenfalls einwandfrei dem Projekt zuordnen kannst.
Dasselbe gilt für die nächste Zeile CostumLog.

Das Ganze könnte dann so aussehen:

Konfiguration

Speichere deine Config und beende nano mit Strg+X. Jetzt kann deine Config aktiviert werden. Doch zunächst muss auch der Ordner für das Projekt erstellt werden und mit den richtigen Rechten ausgestattet werden:

mkdir /var/www/<meinprojekt> && chown www-data:www-data –R /var/www/<meinprojekt>

Jetzt kannst du deine Config aktivieren:

a2ensite meinprojekt

Hier wird der Name deiner Config Datei ohne Endung angegeben, aus meinprojekt.conf wird also mein-projekt.
Damit der Server nun auch über deine Domain erreichbar ist, musst du bei deinem Domain-Provider in den DNS-Einstellungen einen A- und einen AAAA-Record anlegen. Wie das im Einzelnen funktioniert, erfährst du bei deinem Domain-Provider. Im A-Record hinterlegst du die IPv4-Adresse deines Servers und im AAAA-Record die IPv6-Adresse. Je nach Anbieter kann es einige Zeit dauern, bis die Änderungen aktiv sind. Um zu testen, ob die Weiterleitung auf deinem Server funktioniert, kannst du deine Domain einmal anpingen. Dazu öffnest du einen Terminal unter Linux oder OS X, oder die CMD unter Windows und gibst folgenden Befehl ein:

ping <deine-domain.tld>

Die Ausgabe des Befehls sollte jetzt die Domain auflösen und die dahinterliegende IP anzeigen. Entspricht sie der deines Servers, kannst du mit dem nächsten Schritt fortfahren.

Let’s Encrypt

Im nächsten Schritt installierst du dir den Let’s Encrypt Certbot, mit dessen Hilfe du ein gültiges SSL-Zertifikat anfordern kannst. Im Vergleich zu der Installation unter Ubuntu ist dies allerdings etwas komplizierter. Der Certbot war bei dem Release der Debian-Version noch nicht veröffentlicht. Daher ist er auch nicht im Repository. Neue Software wird bei Debian diesem nicht gleich hinzugefügt, sondern bis zum nächsten Release erstmal im Backports-Repository hinterlegt. Um die Software dennoch zu installieren, musst du das Backports-Repository auf deinem Server einrichten:

echo 'deb http://ftp.debian.org/debian jessie-backports main' | sudo tee /etc/apt/sources.list.d/backports.list

Dadurch wird das Repository ans Ende der Source-List geschrieben.
Nachdem das Repository hinterlegt ist, updaten wir noch einmal den Paketmanager APT. Dadurch liest APT die neue Liste mit ein und vervollständigt so die Liste der verfügbaren Pakete:

apt -y update

Nachdem die Paketliste aktualisiert wurde, kannst du den Let’s Encrypt Certbot installieren.
Die vollständige Kompatibilität ist bei über Backports installierten Programmen nicht immer garantiert. Um den User also vor fehlerhafter Software zu schützen, muss bei der Installation einer Software aus dem Backports-Repository der Flag -t gesetzt und der Name des entsprechenden Repository angegeben werden.
Um nun den Certbot zu installieren, nutze folgenden Befehl:

apt -y install python-certbot-apache -t jessie-backports

Ab hier ist das Vorgehen identisch mit dem unter Ubuntu. Mit dem folgenden Befehl gibst du an, dass Let’s Encrypt für deine-domain.tld ein Zertifikat ausstellen soll. Beachte hierbei, dass es empfehlenswert ist, bei Top-Level Domains die Schreibweise mit www auch zu berücksichtigen, da diese teilweise immer noch benutzt wird. Nutzt du eine Subdomain, ist dieser Schritt nicht nötig.

Mit Top-Level Domain:

letsencrypt --apache -d meine-domain.tld -d www.meine-domain.tld

Mit Sub-Domain:

letsencrypt --apache -d meine.domain.tld

Es öffnet sich ein Fenster, in dem du nach deiner E-Mail-Adresse gefragt wirst. Hier solltest du eine gültige Adresse eingeben, da dich Let’s Encrypt über diese informiert, sobald dein Zertifikat ausläuft – es ist nämlich nur 90 Tage lang gültig.
Anschließend wirst du gebeten die AGBs zu bestätigen. Darauf folgt abschließend die Frage, ob du deinen Server Easy oder Secure konfigurieren möchtest. Der Unterschied besteht in der Weiterleitung. Wie eingangs erwähnt, ist es von Vorteil, wenn http-Anfragen automatisch auf https weitergeleitet werden. So werden 100 % der Anfragen verschlüsselt. Wähle hier bitte Secure aus und bestätige dies mit Enter.
Nach kurzer Wartezeit gratuliert dir Let’s Encrypt zum neuen Zertifikat und zeigt dir noch einige Informationen an.
Jetzt ist der Webspace für dein Projekt fertig eingerichtet und kann von dir mit Inhalt befüllt werden. Hierzu einfach alle zum Projekt gehörenden Dateien in den Ordner /var/www/<meinprojekt> hochladen. Sie sind sofort unter deiner Domain verfügbar.
Ein weiteres Projekt anlegen
Um jetzt ein weiteres Projekt auf demselben Server zu betreiben, gehst du wie folgt vor.

Erstelle zuerst einen Ordner für dein neues Projekt:

mkdir /var/www/<meinzweitesprojekt> && chown www-data:www-data –R /var/www/<meinzweitesprojekt>

Kopiere anschließend deine Config und benenne die Kopie nach deinem neuen Projekt:

cp /etc/apache2/sites-available/<meinprojekt>.conf /etc/apache2/sites-available/<meinzweitesprojekt >.conf

Anschließend bearbeitest du die Config:

nano /etc/apache2/sites-available/<meinzweitesprojekt>.conf

Ändere alle Domains auf die des neuen Projekts und den Dokument-Root auf den neuen Dateipfad.
Nachdem du die Änderungen gespeichert hast, kannst du die Config-Datei aktivieren:

a2ensite meinzweitesprojekt

Jetzt muss nur noch das Zertifikat auf die neue Domain erweitert und die Weiterleitung von http auf https auch für die neue Domain konfiguriert werden.

Mit Top-Level Domain:

letsencrypt --apache -d meine-domain.tld -d www.meine-domain.tld -d meine-zweite-domain.tld -d www.meine-zweite-domain-tld

Mit Sub-Domain:

letsencrypt --apache -d meine.domain.tld -d meine.zweite-domain.tld

Nach einiger Ladezeit fragt dich Let’s Encrypt ob du das bestehende Zertifikat um die neue Domain erweitern möchtest. Dem stimmst du zu. Im nächsten Schritt wählst du wieder Secure aus und dein neues Projekt ist einsatzbereit.
Möchtest du später eines deiner Projekte wieder schließen, also vom Netz nehmen, reicht dafür zukünftig ein einzelner Befehl:

a2dissite namederconfig

Mit diesem Aufbau ist es ganz einfach, mehrere Projekte auf einem Server zu hosten und dennoch den Überblick zu behalten.

Zusammenfassung

Die vHosts bieten dir die Möglichkeit, unterschiedliche Domains auf ein bestimmtes Verzeichnis weiterzuleiten. Dadurch ist es theoretisch möglich, unendlich viele Webseiten auf einem Server zu betreiben. Das ist nicht nur praktisch, sondern auch bares Geld wert. Denke aber immer daran, dass durch diese Art des Hostings schnell die physische Grenze des Servers erreicht sein kann und die Performance der einzelnen Webseiten spürbar beeinträchtigt wird. Sollte dir das mal bei gridscale passieren, kannst du im laufenden Betrieb einfach die Leistung erhöhen.
Damit ist das System aber noch nicht ausfallsicher, denn jedes System kann mal ausfallen. Um dem entgegen zu wirken, kannst du mehrere Server mit dem gleichen Inhalt betreiben und davor einen Load Balancer schalten, der die Last gleichmäßig verteilt. Sollte nun einer der Server ausfallen, sind deine Webseiten immer noch erreichbar und du kannst dich in Ruhe um die Reparatur kümmern.
Wenn du wissen willst, wie du so ein System erstellst, lies dir den Artikel Reverse Proxy mit Apache unter Ubuntu erstellen einmal durch. Hier beschreibe ich dir, wie du deinen eigenen Load Balancer baust und was die Vorteile sind. Oder du nutzt den kostenlosen Load Balancer as a Service von gridscale. Wie du diesen erstellst und noch einiges mehr über die Features von gridscale, erfährst du im Artikel „How to gridscale“.

Apache2 auf Debian 8 installieren Vor einiger Zeit habe ich dir in diesem Artikel gezeigt wie, du vHosts für Apache unter Ubuntu anlegst und richtig konfigurierst. Da es einige Nachfragen bezüglich der Installation unter Debian gab, zeige ich dir in diesem Artikel die Unterschiede zur Installation unter Debian, denn obwohl Ubuntu auf Debian aufbaut, gibt […]

Schade, dass dir der Artikel nicht gefallen hat.
Was sollten wir deiner Meinung nach besser machen?

Vielen Dank für dein Feedback!
Wir melden uns bei dir, sobald der Artikel zu deinem Wunschthema fertig ist.

Übrigens: kennst du schon unser Tutorial zum Thema Magento auf Ubuntu 16.04 installieren?

×

Entwickler?

Dann einfach hier für unsere Tutorial-Updates anmelden.
Keine Sorge: Wir spammen dich nicht zu