So installierst du den Apache Webserver und alle wichtigen Grundpakete auf deinem Ubuntu Server.
In diesem Teil unseres Webserver-Projektes beschäftigen wir uns damit, den Apache-Webserver und alle wichtigen Grundpakete zu installieren. Die Grundpakete sind für den reibungslosen Betrieb des Ubuntu-Servers in unserem Netzwerk erforderlich.
Dieser Beitrag baut auf Teil 1 – Installation Ubuntu 24.04 LTS Server auf. Falls du das Grundsystem noch nicht eingerichtet hast, starte dort.
Wichtige Grundpakete installieren
Als Erstes loggen wir uns über SSH auf unserem frisch installierten Ubuntu-Server ein. Dabei ist es vollkommen unerheblich, ob wir uns direkt am Server einloggen oder über ein Terminal-Programm wie Putty.
Um diese Pakete jetzt zu installieren, geben wir die nachfolgende Anweisung ein. Am besten hier rauskopieren und im Terminal einfügen. Das -y am Ende der Befehlszeile bedeutet, dass automatisch alle Nachfragen während der Paket-Installation mit Ja bestätigt werden und die Installation komplett durchläuft.
sudo apt install ca-certificates apt-transport-https lsb-release gnupg curl wget nano unzip -y
Folgende Pakete haben wir damit installiert:
| Befehl/Option | Bedeutung |
| curl | Kommandozeilen-Werkzeug zum Herunterladen von Dateien und Aufrufen von URLs. Wird benötigt, um Software-Repositories einzurichten. |
| wget | Ähnlich wie curl, aber einfacher für das Herunterladen einzelner Dateien. wget -O datei.tar.gz https://… speichert eine Datei direkt. |
| nano | Einfacher Kommandozeilen-Texteditor. Wird in dieser Anleitung durchgehend zum Bearbeiten von Konfigurationsdateien verwendet. |
| unzip | Entpackt ZIP-Dateien. Benötigt für viele Software-Downloads, z.B. PHPMyAdmin. |
| apt-transport-https | Erlaubt apt, Pakete auch von HTTPS-Quellen herunterzuladen (z.B. MariaDB-Repository). |
| ca-certificates | Enthält Zertifikate für vertrauenswürdige Zertifizierungsstellen. Nötig, damit HTTPS-Downloads als sicher erkannt werden. |
| gnupg | GPG-Verschlüsselungswerkzeug. Wird benötigt, um Software-Signaturen (GPG-Keys) von Paketquellen zu pruefen. |
| lsb-release | Gibt Informationen zur Linux-Distribution aus, z.B. lsb_release -cs liefert 'noble‘ fuer Ubuntu 24.04. |
Installation des Apache-Webservers
Apache HTTP Server ist der meistgenutzte Webserver der Welt. Er ist erprobt, hochgradig konfigurierbar und bietet durch sein Modul-System eine enorme Flexibilität. Für unser Vorhaben – mehrere PHP-Versionen – ist der Apache die optimale Wahl.
Apache installieren:
sudo apt install -y apache2
Aktuellen Status anzeigen:
sudo systemctl status apache2
Der Apache sollte nach der Installation gleich aktiv sein und auch im Autostart des Servers eingetragen sein.
Mit nachfolgendem Befehl können wir uns alle aktiven System-Dienste auflisten lassen. Hier sieht man sehr übersichtlich, was alles läuft.
systemctl list-units --type=service --state=running
An dieser Stelle können wir gleich einmal testen, ob der Webserver schon Webseiten ausliefert. Bei der Installation des Apache wird ein www Verzeichnis mit einer Test-HTML-Seite angelegt. Diese Testseite können wir mit einem Browser aufrufen. Wir geben dazu einfach ein: http://SERVER_NAME
Da mein Testserver den Hostnamen demosrv hat, gebe ich hier http://demosrv in der URL-Eingabezeile des Browsers ein. Wenn alles klappt, wird die Testseite an unseren Browser ausgeliefert.

Apache-Modul prüfen und aktivieren
Apache ist modular aufgebaut: Funktionen werden als Module nachgeladen. Der Apache bringt eine große Auswahl an Modulen mit, aber nicht alle sind standardmäßig aktiviert. Darum werden wir jetzt erst einmal prüfen, welche Module bereits aktiviert sind.
apache2ctl -M
An dieser Stelle werden wir alle notwendigen Module aktivieren, die wir für unser Projekt benötigen.
sudo a2enmod rewrite actions ssl http2 headers proxy_fcgi alias expires
Anschließend starten wir den Apache-Server einmal neu.
sudo systemctl restart apache2
Mit folgendem Befehl prüfen wir erneut, ob alle Apache-Module korrekt aktiviert sind.
apache2ctl -M
Apache per HTTPS erreichbar machen
Da aktuell die Testseite noch nicht über HTTPS (SSL verschlüsselt) vom Server ausgeliefert wird, müssen wir das SSL-Protokoll aktivieren.
Für unser Projekt reicht das Standard-Zertifikat, welches Ubuntu bei der Installation mitbringt.
Als Erstes soll der Apache das Standard-Zertifikat laden.
sudo a2ensite default-ssl.conf
Anschließend müssen wir den Apache neu laden, damit die SSL-Konfiguration auch geladen wird.
sudo systemctl reload apache2
Jetzt sollte die Testseite auch über HTTPS erreichbar sein. Da es sich hierbei um ein von Ubuntu selbst erstelltes Zertifikat handelt, wird der Browser eine Sicherheitswarnung ausgeben. Du kannst bestätigen, dass dir das bewusst ist und du eine Ausnahme machen willst.

SSL und HTTP2 prüfen
Damit später auch Einträge in der .htaccess Datei funktionieren, tragen wir eine Standard-Direktive in die VirtualHost-Dateien und die VirtualHost-Datei für SSL ein.
Diese Direktive muss in beide Dateien am Ende, gleich vor dem schließenden </VirtualHost>-Tag, eingefügt werden.
<Directory /var/www>
Options -Indexes +FollowSymlinks +Multiviews
AllowOverride All
Require all granted
</Directory>
Hier ist die Standard-VirtualHost Konfiguration:
sudo nano /etc/apache2/sites-available/000-default.conf
Hier findest du die VirtualHost für SSL:
sudo nano /etc/apache2/sites-available/default-ssl.conf
Jetzt müssen wir die Apache-Konfiguration erneut neu laden.
sudo systemctl reload apache2
Zum Abschluss prüfen wir noch, ob das HTTP2-Modul geladen wird. Moderne Webserver können die Webseiten über das neuere und schnellere Protokoll ausliefern.
sudo apachectl -M | grep http2
Um das jetzt im Browser zu prüfen, müssen wir die Webdeveloper-Console im Browser aufrufen. Dort können wir unter dem Tab Netzwerkanalyse (Firefox) oder Netzwerk (Chrome) sehen, über welches Protokoll die HTML-Seite geladen wird. Sollte die Spalte Protokoll nicht angezeigt werden, können weitere Spalten über einen Rechtsklick auf eine Tabellenüberschrift ausgewählt werden.

Freigabe des WWW-Verzeichnisses einrichten
Zum Schluss richten wir noch das Apache-Verzeichnis für die Webseiten als Samba-Freigabe ein, damit wir ganz komfortabel über das Netzwerk an die Dateien der Webseiten kommen.
Die Konfigurationsdatei des Samba-Servers aufrufen:
sudo nano /etc/samba/smb.conf
Am Ende der Datei fügen wir eine weitere Freigabe ein. Diese nennen wir einfach „webseiten“. Den folgenden Code an das Ende der Konfigurationsdatei anfügen.
[webseiten]
comment = Webseiten
path = /var/www/html
writeable = yes
browseable = yes
force group = www-data
force user = www-data
create mask = 0644
directory mask = 0755
guest ok = yes
Nun kannst du die Datei mit Strg + O wieder speichern, und den Editor mit Strg + X verlassen. Zum Schluss muss der Samba-Server einmal neu gestartet werden, damit die Änderungen wirksam werden.
sudo systemctl restart smbd.service
Damit wir die Dateien in unserem HTML-Ordner schreiben können, müssen wir die Besitzrechte richtig setzen:
sudo chown -R www-data:www-data /var/www
Zum Test rufen wir jetzt freigegebene Ordner unseres Servers mit dem Windows-Explorer auf. Wenn alles geklappt hat, sehen wir unsere zwei freigegebenen Ordner und können auch darauf zugreifen.

Abschluss Installation Apache Webserver
Damit haben wir unseren Apache-Webserver fertig installiert. Im dritten Teil des Projektes geht es dann um die Installation und Konfiguration des Datenbank-Servers MariaDB.
Weiter geht's mit Teil 3 – Installation MariaDB und Freigaben.


0 Kommentare