Häufig wird Apache in Ver­bin­dung mit Linux-Systemen ein­ge­setzt. Ins­be­son­de­re Ubuntu ist durch die starke Community und Do­ku­men­ta­ti­on ideal für die In­stal­la­ti­on des Web­ser­vers. Wir erklären Ihnen alle Schritte, mit denen Sie unter Ubuntu Apache in­stal­lie­ren und ein­rich­ten können.

Apache unter Ubuntu: Das sind die Vor­aus­set­zun­gen

Apache ist einer der ältesten und sta­bils­ten Webserver. Seine Po­pu­la­ri­tät verdient er seiner Ska­lier­bar­keit und einfachen Kon­fi­gu­ra­ti­on. Für die In­stal­la­ti­on von Apache unter Ubuntu 22.04 gibt es keine spe­zi­fi­schen An­for­de­run­gen an den Prozessor. Die meisten modernen Pro­zes­so­ren sollten aus­rei­chen, um Apache unter Ubuntu aus­zu­füh­ren. Aus­schlag­ge­bend sind vor allem der ver­füg­ba­re Ar­beits­spei­cher und die Spei­cher­ka­pa­zi­tät der Fest­plat­te.

Apache ver­braucht eine minimale Menge an Sys­tem­res­sour­cen und kann auf ver­schie­de­nen Arten von Systemen kon­fi­gu­riert werden, ein­schließ­lich Desktop-Computern, Laptops, Servern und vir­tu­el­len Maschinen. Wenn Sie eine leis­tungs­fä­hi­ge Website oder Anwendung hosten möchten, kann es sein, dass mehr Res­sour­cen er­for­der­lich sind, um eine optimale Leistung zu erzielen. Sie sollten auch daran denken, dass der Einsatz von Modulen die Sys­tem­vor­aus­set­zun­gen mög­li­cher­wei­se erhöht. Wenn Sie bei­spiels­wei­se ein Modul zur Ver­bes­se­rung der Per­for­mance des Apache Web­ser­vers in­te­grie­ren wollen, benötigt Ihr System zu­sätz­li­chen Spei­cher­platz für Caching und andere Op­ti­mie­run­gen.

Um den Apache-Webserver ein­rich­ten zu können, sollten folgende Ei­gen­schaf­ten erfüllt werden:

  • Ar­beits­spei­cher (RAM): 4 Gigabyte
  • Be­triebs­sys­tem: Ubuntu, Benutzer mit sudo-Zu­griffs­rech­ten
  • Fest­plat­ten­spei­cher: 5 Gigabyte
  • Firewall: für HTTP-Da­ten­ver­kehr und zum Blo­ckie­ren nicht not­wen­di­ger Ports
  • In­ter­net­ver­bin­dung: zum Down­loa­den von Paketen
Tipp

Linux Hosting von IONOS un­ter­stützt eine Vielzahl an Apache-Modulen, mit denen Sie schnell und effektiv Ihren eigenen Apache Reverse-Proxy kon­fi­gu­rie­ren können. Pro­fi­tie­ren Sie zudem von flexibel ska­lier­ba­rer Per­for­mance, DDOS-Schutz und Top-PHP-Features.

Schritt-für-Schritt-Anleitung: Apache-In­stal­la­ti­on unter Ubuntu

Ubuntu 22.04 verwendet für die In­stal­la­ti­on von Apache das Pa­ket­ver­wal­tungs­tool APT. Zuerst sollten Sie den Pa­ke­t­in­dex auf Ihrem Ubuntu-System ak­tua­li­sie­ren, um si­cher­zu­stel­len, dass alle be­nö­tig­ten Ab­hän­gig­kei­ten auf dem neuesten Stand sind.

Handelt es sich nicht um eine lokale In­stal­la­ti­on, loggen Sie sich über SSH auf Ihrem Ubuntu-Server ein.

Schritt 1: Ak­tua­li­sie­ren der Liste der Pakete

Rufen Sie das Terminal auf und führen Sie ein Update aus.

$ sudo apt update
bash

Schritt 2: In­stal­lie­ren des Apache-Pakets

Als Nächstes in­stal­lie­ren Sie das Apache-Paket mit allen da­zu­ge­hö­ri­gen Ab­hän­gig­kei­ten mithilfe des APT-Befehls „install“.

$ sudo apt install apache2
bash

Schritt 3: Firewall-Ein­stel­lun­gen ändern

Für die Kon­fi­gu­ra­ti­on von Apache muss die Un­com­pli­ca­ted Firewall (UFW) in Ubuntu aktiviert werden. Nachdem Sie unter Ubuntu Apache in­stal­liert haben, richtet Apache An­wen­dungs­pro­fi­le in UFW ein, mit denen der Da­ten­ver­kehr zu den Webports geregelt werden kann.

Mit dem folgenden Befehl können Sie die Liste der An­wen­dungs­pro­fi­le anzeigen:

$ sudo ufw app list
bash

Die Ausgabe zeigt drei Profile für Apache an:

Bild: Linux-Terminal: Liste der Anwendungsprofile für Apache
Terminal: Liste der An­wen­dungs­pro­fi­le für Apache
  • Apache: öffnet TCP-Port 80 für HTTP (un­ver­schlüs­sel­te Ver­bin­dung)
  • Apache Full: öffnet TCP-Port 80 (HTTP, un­ver­schlüs­selt) und 443 (HTTPS, mit TLS/SSL ver­schlüs­selt)
  • Apache Secure: öffnet nur den HTTPS-Port 443 für eine ver­schlüs­sel­te Ver­bin­dung

Da wir noch kein SSL ein­ge­rich­tet haben, können wir nur Port 80 öffnen.

$ sudo ufw allow 'Apache'
bash

Mit dem Kommando „status“ können Sie über­prü­fen, ob die korrekte Ein­stel­lung vor­ge­nom­men wurde.

$ sudo ufw status
bash

Schritt 4: Status von Apache testen

Kon­trol­lie­ren Sie mit dem Sys­tem­ma­na­ger „systemd“, ob der Apache-Dienst aktiv ist.

$ sudo systemctl status apache2
bash

Schritt 5: Stan­dard­start­sei­te von Apache aufrufen

Geben Sie Ihre IP-Adresse in die Adress­zei­le des Browsers ein, um die Stan­dard­sei­te von Apache zu erhalten. Falls Sie Ihre IP-Adresse nicht kennen, können Sie sie etwa mit „hostname“ anzeigen lassen.

$ hostname -I
bash

Sie können auch das icanhazip-Tool verwenden.

$ curl -4 icanhazip.com
bash

Rufen Sie nun die Apache-Stan­dard­sei­te in Ihrem Browser auf und fügen Sie Ihre IP-Adresse anstelle von „server_ip“ ein.

http://server_ip
bash

Hier ist ein Aus­schnitt der Seite unter Ubuntu:

Bild: Webbrowser: Apache-Startseite unter Ubuntu
Web­brow­ser: Apache-Start­sei­te unter Ubuntu

Schritt 6: Verwalten des Apache-Daemons

Den Daemon bzw. den Dienst des Apache-Web­ser­vers können Sie mit „systemctl“ verwalten.

Starten des Apache-Web­ser­vers:

$ sudo systemctl start apache2
bash

Stoppen des Apache-Web­ser­vers:

$ sudo systemctl stop apache2
bash

Stoppen und Neu­star­ten des Apache-Web­ser­vers:

$ sudo systemctl restart apache2
bash

Neustart von Apache und erneutes Laden der Kon­fi­gu­ra­ti­on:

$ sudo systemctl reload apache2
bash

Wenn Sie Apache unter Ubuntu in­stal­lie­ren, startet der Webserver nach der Ein­rich­tung beim Booten au­to­ma­tisch. Sie können diese Funktion auch de­ak­ti­vie­ren:

$ sudo systemctl disable apache2
bash

Um den au­to­ma­ti­schen Start von Apache beim Booten wieder zu ak­ti­vie­ren, geben Sie folgenden Befehl ein:

$ sudo systemctl enable apache2
bash

Schritt 7: Virtuelle Hosts verwenden

Apache hostet Dokumente stan­dard­mä­ßig in /var/www/html. Um mehrere Domains auf einem Server zu nutzen, können Sie virtuelle Hosts ein­rich­ten. Innerhalb von /var/www/ legen wir eine Ver­zeich­nis­struk­tur für eine eigene Domain an.

$ sudo mkdir /var/www/your_domain
bash

Ersetzen Sie „your_domain“ mit Ihrer Domain.

Weisen Sie die Ei­gen­tü­mer­schaft des Ver­zeich­nis­ses mit der Um­ge­bungs­va­ria­ble $USER zu:

$ sudo chown -R $USER:$USER /var/www/your_domain
bash

Sie können die Lese-, Schreib- und Aus­füh­rungs­rech­te auch explizit im Oktal-Modus vergeben:

$ sudo chmod -R 755 /var/www/your_domain
bash

Schritt 8: Testseite erstellen

Legen Sie eine index.html als Start­sei­te für Ihre Domain an. Dazu können Sie bei­spiels­wei­se den Text­edi­tor nano verwenden.

$ sudo nano /var/www/your_domain/index.html
bash

Wählen Sie eine For­mu­lie­rung und fügen Sie diese in die HTML-Datei ein:

<html>
    <head>
        <title>Welcome to your_domain!</title>
    </head>
    <body>
        <h1>Here you can see that your_domain virtual host is successfully working!</h1>
    </body>
</html>
html

Schritt 9: Kon­fi­gu­ra­ti­ons­da­tei für Virtual Host anlegen

Zum Anzeigen der Bei­spiel­sei­te muss Apache für die Domain ent­spre­chend kon­fi­gu­riert werden. Erstellen Sie eine eigene Kon­fi­gu­ra­ti­ons­da­tei für Ihre Domain und lassen Sie die Stan­dard­kon­fi­gu­ra­ti­ons­da­tei von Apache unberührt.

$ /etc/apache2/sites-available/your_domain.conf
bash

Fügen Sie folgenden Block ein und tauschen Sie „your_domain“ mit dem Namen Ihrer Domain aus. Geben Sie außerdem bei „Ser­ver­Ad­min“ eine E-Mail-Adresse für den Ad­mi­nis­tra­tor an:

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    ServerName your_domain
    ServerAlias www.your_domain
    DocumentRoot /var/www/your_domain
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Ak­ti­vie­ren Sie die Kon­fi­gu­ra­ti­ons­da­tei mit „a2ensite“:

$ sudo a2ensite your_domain.conf
bash

De­ak­ti­vie­ren Sie die alte Stan­dard­sei­te:

$ sudo a2dissite 000-default.conf
bash

Testen Sie die Kon­fi­gu­ra­ti­on auf Fehler:

$ sudo apache2ctl configtest
bash

Wenn alles feh­ler­frei ist, starten Sie Apache neu:

$ sudo systemctl restart apache2
bash

Na­vi­gie­ren Sie zu Ihrer Start­sei­te:

http://your_domain
bash

Sie sollten nun Ihre Bei­spiel­sei­te sehen können:

Bild: Webbrowser: Beispielseite für einen Virtual Host
Web­brow­ser: Bei­spiel­sei­te für einen Virtual Host

Schritt 10: Wichtige Apache-Dateien und Ver­zeich­nis­se

Für eine ef­fi­zi­en­te Bedienung des Apache-Web­ser­vers ist es hilfreich, einige häufig ge­brauch­te Dateien und Ver­zeich­nis­se zu kennen:

  • /var/www/html: In diesem Ver­zeich­nis stellt Apache stan­dard­mä­ßig Dokumente bereit. Dies kann in den Kon­fi­gu­ra­ti­ons­da­tei­en geändert werden.
  • /etc/apache2: Hier werden alle Kon­fi­gu­ra­ti­ons­da­tei­en von Apache auf­be­wahrt.
  • /etc/apache2/apache2.conf: Dies ist die Haupt­kon­fi­gu­ra­ti­ons­da­tei. Damit können Sie die globale Kon­fi­gu­ra­ti­on ändern.
  • /etc/apache2/ports.conf: In dieser Datei sind die ge­öff­ne­ten Ports gelistet. Dies sind in der Regel Port 80 und/oder Port 443.
  • /etc/apache2/sites-available/: In diesem Ordner befinden sich ein­ge­rich­te­te virtuelle Hosts. Kon­fi­gu­ra­ti­ons­da­tei­en, die hierin abgelegt werden, müssen mit dem Ver­zeich­nis „site-enabled“ verknüpft werden, damit sie funk­tio­nie­ren.
  • /etc/apache2/conf-available/, /etc/apache2/conf-enabled/: Diese Ver­zeich­nis­se speichern zu­sätz­li­che Kon­fi­gu­ra­ti­ons­da­tei­en, die nicht zu vir­tu­el­len Hosts gehören. Die Ak­ti­vie­rung der Kon­fi­gu­ra­ti­on können Sie mit „a2enconf“ und die De­ak­ti­vie­rung mit „a2disconf“ vornehmen.
  • /etc/apache2/mods-available/, /etc/apache2/mods-enabled/: In diesen Ver­zeich­nis­sen werden ver­füg­ba­re und ak­ti­vier­te Module auf­be­wahrt. Ein Modul kann mit „a2enmod“ aktiviert und mit „a2dismod“ de­ak­ti­viert werden.
  • /var/log/apache2/access.log: Diese Logdatei zeichnet alle Anfragen an den Webserver auf.
  • /var/log/apache2/error.log: In dieser Datei werden alle Feh­ler­mel­dun­gen pro­to­kol­liert. Die LogLevel-In­for­ma­ti­on gibt den Schwe­re­grad der Er­eig­nis­se an.
Zum Hauptmenü