Der Begriff Webserver kann sowohl Hardware als auch Software oder beides zusammen bezeichnen. Für diesen Leitfaden konzentrieren wir uns auf die Softwareseite und zeigen, wie Sie eine Website auf Ihrem Linux-Rechner hosten können.
A web server is a software program that receives and responds to client requests via the HTTP/HTTPS protocols. Its primary purpose is to display website content which, oftentimes, is in the form of text, images, and video.
A web server can either serve static or dynamic content. Static content, as the name infers, refers to content that hardly changes and is bound to remain the same. The server sends back content to the user’s browser as is.
Dynamische Inhalte sind Inhalte, die sich häufig ändern oder ständig aktualisiert werden. Um dynamische Inhalte bereitzustellen, muss ein Webserver auch mit einem Datenbankserver und serverseitigen Skriptsprachen zusammenarbeiten.
Dieser Leitfaden wird zeigen, wie Sie einen Apache-Webserver einrichten, um eine Website auf Ihrem Linux-System kostenlos zu hosten.
Inhaltsverzeichnis
Anforderungen
Um dieser Anleitung zu folgen, stellen Sie sicher, dass Sie Folgendes haben.
- A dedicated Public IP address can be obtained from your ISP.
- A Linux box, which can be a Linux server installation of your preferred OS variant. For this guide, we will use Debian 11.
Schauen Sie sich einige Anleitungen an, die Ihnen Einblicke in die Installation eines Linux-Servers geben können.
- So installieren Sie einen Debian 11 (Bullseye) Minimal Server
- So installieren Sie einen Debian 10 (Buster) Minimal Server
- So installieren Sie Ubuntu 20.04 Server
- So installieren Sie Rocky Linux 9 Server
- So installieren Sie AlmaLinux 9 Server
- So installieren Sie RHEL 9 kostenlos
Sie benötigen auch einen LAMP-Server, der für Linux, Apache und MySQL steht (dies kann auch MariaDB sein). Hier sind einige Anleitungen zur Installation des LAMP-Stapels in Linux.
- Wie man LAMP auf einem Debian 10 Server installiert
- Wie man den LAMP-Stack in Ubuntu 20.04 installiert
- Wie man LAMP auf Rocky Linux 9/8 installiert
- Wie man den LAMP-Stack in AlmaLinux 9/8 installiert
- Wie man LAMP auf RHEL 9/8 installiert
- Wie man eine Website auf einem Linux-Server hostet
In diesem Abschnitt werden wir die Hauptkomponenten eines Webservers besprechen.
Was ist Apache?
Apache ist ein beliebter kostenloser und Open-Source plattformübergreifender Webserver, der unter der Apache-Lizenz 2.0 veröffentlicht wird. Es ist einer der am weitesten verbreiteten Webserver, der fast 32,2 % des Webserver-Marktanteils ausmacht.
Um die neueste Version von Apache zu überprüfen und festzustellen, ob sie auf Ihrem Server installiert ist, führen Sie den Befehl aus:
# apt-cache policy apache2 (On Debian-based OS)
Aus der Ausgabe können Sie sehen, dass der Parameter „Installiert“ (keine) besagt, dass er noch nicht installiert ist. Sie erhalten auch Informationen über die neueste Version, die vom Debian / Ubuntu Repository angeboten wird, was in diesem Fall 2.4.52 ist.

Auf modernen Red Hat Distributionen können Sie die Verfügbarkeit von Apache mit folgendem dnf Befehl überprüfen.
# dnf search httpd

Aus der obigen Ausgabe können Sie sehen, dass das Apache httpd Paket zum Download verfügbar ist. Wenn Apache nicht auf Ihrem System installiert ist, verwenden Sie die Paketverwaltungen ‚apt‚ oder ‚dnf‚, um Apache zu installieren, wie unten gezeigt.
Auf Debian-basierten Systemen:
$ sudo apt install apache2 -y $ sudo systemctl start apache2 $ sudo systemctl enable apache2 $ sudo systemctl status apache2

Auf Red-Hat-basierten Systemen:
# dnf install httpd -y # systemctl start httpd # systemctl enable httpd # systemctl status httpd

Was ist MariaDB?
A fork of MySQL, MariaDB is one of the most popular and open-source relational database management systems. Nowadays, it’s preferred to MySQL due to its faster speeds in replication and performing queries as well as security and a vast array of storage engines.
Um MariaDB zu installieren, Auf Debian-basierten Systemen:
$ sudo apt install mariadb-server mariadb-client -y $ sudo systemctl start mariadb $ sudo systemctl enable mariadb $ sudo systemctl status mariadb
Die folgende Ausgabe zeigt, dass MariaDB korrekt installiert und ausgeführt wird.

Um MariaDB zu installieren, Auf Red-Hat-basierten Systemen:
# dnf install mariadb-server -y # systemctl start mariadb # systemctl enable mariadb # systemctl status mariadb

Was ist PHP?
PHP ist ein rekursives Akronym für PHP Hypertext Preprocessor, eine beliebte Skriptsprache für allgemeine Zwecke, die hauptsächlich für die Webentwicklung verwendet wird.
Um PHP zu installieren, Auf Debian-basierten Systemen:
$ sudo apt update $ sudo apt upgrade $ sudo apt install ca-certificates apt-transport-https software-properties-common $ sudo add-apt-repository ppa:ondrej/php $ sudo apt update $ sudo apt install php8.0 libapache2-mod-php8.0
Um PHP zu installieren, Auf Red-Hat-basierten Systemen, müssen Sie zunächst das EPEL Repository aktivieren.
$ sudo dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm [RHEL 9] $ sudo dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm [RHEL 8]
Als nächstes aktivieren Sie das Remi-Repository, das die neueste Version von PHP für Red-Hat-basierte Systeme anbietet.
$ sudo dnf install -y https://rpms.remirepo.net/enterprise/remi-release-9.rpm [RHEL 8] $ sudo dnf install -y https://rpms.remirepo.net/enterprise/remi-release-8.rpm [RHEL 8]
Sobald EPEL und Remi Repositorys auf dem System aktiviert sind, können Sie PHP wie gezeigt installieren.
# dnf module list php # dnf module enable php:remi-8.0 -y # dnf install php php-cli php-common
Mit allen installierten Komponenten können Sie nun Ihre Website mit dem WordPress CMS erstellen, das Software ist, die es Benutzern leicht macht, eine Website zu entwickeln und zu verwalten, ohne notwendigerweise Kenntnisse von Webdesign-Sprachen wie HTML, CSS, PHP und Javascript zu haben.
Erstellen einer einfachen Website mit WordPress unter Linux
Zur Demonstration werden wir WordPress auf Debian 11 und RHEL 9 Systemen installieren, was eine Beispielwebsite bereitstellt, die nach Ihren Vorlieben weiter angepasst werden kann.
Dieser Abschnitt geht davon aus, dass Sie bereits die LAMP Stack installiert haben.
Schritt 1: Zusätzliche PHP-Module installieren
Um fortzufahren, installieren Sie zusätzliche PHP-Module, die von WordPress benötigt werden, wie gezeigt.
Zum Installieren von PHP Modulen, Auf Debian-basierten Systemen:
$ sudo apt install php libapache2-mod-php php-pear php-cgi php-common php-mbstring php-zip php-net-socket php-gd php-mysql php-bcmath
Zum Installieren von PHP Modulen, Auf RHEL-basierten Systemen:
# dnf install php-gd php-soap php-intl php-mysqlnd php-pdo php-bcmath php-curl php-zip php-xmlrpc wget
Schritt 2: Datenbank für WordPress erstellen
In PHP geschrieben, ist WordPress ein datengetriebenes, kostenloses und quelloffenes Content-Management-System. Eine Datenbank ist ein unverzichtbarer Bestandteil von WordPress.
Die Datenbank wird verwendet, um alle Blog-Beiträge, Seiten, Kategorien, Kommentare, Themes, Plugins sowie WordPress-Konfigurationsdateien zu speichern.
Um eine Datenbank für WordPress zu erstellen, melden Sie sich beim MariaDB-Datenbankserver an:
$ sudo mysql -u root -p
Als nächstes erstellen Sie eine Datenbank, wie gezeigt
CREATE DATABASE wordpress_db;
Als nächstes erstellen Sie einen Datenbankbenutzer und weisen dem Benutzer alle Berechtigungen für die Datenbank zu.
GRANT ALL PRIVILEGES ON wordpress_db.* to wordpress_user@localhost identified by 'P@ssword321';
Schließlich lade die Gültigkeitsdatenbanken neu, um die vorgenommenen Änderungen zu speichern, und beende die Datenbank.
FLUSH PRIVILEGES; QUIT;
Schritt 3: WordPress herunterladen
Mit der Datenbank an Bord, fahre fort und lade die neueste WordPress-Tarball-Datei mit dem wget-Befehl herunter.
$ wget https://wordpress.org/latest.tar.gz
Sobald sie heruntergeladen ist, extrahiere die komprimierte Datei mit dem tar-Befehl.
$ tar -xvzf latest.tar.gz
Der Befehl extrahiert den Inhalt der Datei in einem Ordner namens wordpress. Verschiebe oder kopiere den Ordner in den Document Root für den Apache-Webserver.
$ sudo mv wordpress/ /var/www/html/
Als nächstes weise die folgenden Berechtigungen und Eigentumsrechte zu.
$ sudo chmod 755 -R /var/www/html/wordpress/
$ sudo chown -R www-data:www-data /var/www/html/wordpress/
Schritt 4: Erstellen eines Apache Virtual Hosts für WordPress
Der Begriff Virtual Host bezieht sich auf die Praxis, mehrere Websites auf einem einzigen Server zu hosten. Wenn du mehrere Websites auf einem einzigen Server hosten möchtest, musst du einen Virtual Host für jede Website erstellen.
In diesem Fall musst du einen Virtual Host für die WordPress-Website wie folgt erstellen.
$ sudo nano /etc/apache2/sites-available/wordpress.conf [On Debian] # vi /etc/httpd/conf/httpd.conf [On RHEL]
Fügen Sie den folgenden Code hinzu, um den virtuellen Host zu definieren. Für die ServerName-Direktive geben Sie die IP-Adresse oder den vollständigen Domänennamen des Servers an, der auf die dedizierte öffentliche IP-Adresse verweisen sollte.
<VirtualHost *:80> ServerAdmin admin@your_domain.com DocumentRoot /var/www/html/wordpress ServerName 192.168.0.100 <Directory /var/www/html/wordpress> Options FollowSymlinks AllowOverride All Require all granted </Directory> ErrorLog ${APACHE_LOG_DIR}/your-domain.com_error.log CustomLog ${APACHE_LOG_DIR}/your-domain.com_access.log combined </VirtualHost>
Speichern Sie die Änderungen und verlassen Sie die Datei.
Um eine Verbindung zur Datenbank herzustellen, sind einige zusätzliche Änderungen erforderlich. Navigieren Sie daher in den WordPress-Ordner.
$ cd /var/www/html/wordpress/
Aktualisieren Sie dann die Datei wp-config.php mit dem Inhalt der Datei wp-config-sample.php.
$ cp wp-config-sample.php wp-config.php $ sudo nano wp-config.php
Aktualisieren Sie als Nächstes die Datenbanknamen-, Benutzernamen- und Passwort-Direktiven mit den Details der Datenbank.
Aktivieren Sie als Nächstes die neue WordPress-Website wie folgt auf Debian-basierten Systemen.
$ sudo ln -s /etc/apache2/sites-available/wordpress.conf /etc/apache2/sites-enabled/wordpress.conf $ sudo a2ensite wordpress $ sudo a2enmod rewrite $ sudo a2dissite 000-default
Um die Änderungen zu übernehmen, starten Sie Apache neu.
$ sudo systemctl restart apache2 [On Debian] # systemctl restart httpd [On RHEL]
Schritt 4: WordPress-Einrichtung im Browser abschließen
Um die Einrichtung abzuschließen, rufen Sie die IP-Adresse Ihres Webservers auf, wie gezeigt:
http://server-ip
Sie sollten die WordPress-Begrüßungsseite angezeigt bekommen. Wählen Sie Ihre bevorzugte Sprache und klicken Sie auf ‚Fortsetzen‘ (Continue).

Füllen Sie als Nächstes die Standortdetails aus.

Klicken Sie dann auf ‚WordPress installieren‘ (Install WordPress), um die WordPress-Einrichtung abzuschließen.

Wenn alles richtig gelaufen ist, erhalten Sie eine Bestätigung, dass die Installation erfolgreich war. Klicken Sie zum Anmelden auf die Schaltfläche ‚Anmelden‘ (Log In).

Das bringt Sie zum WordPress-Dashboard, wie Sie sehen können. Zu diesem Zeitpunkt können Sie mit verschiedenen Themen experimentieren, um das Erscheinungsbild Ihrer Beispielseite zu verbessern.

Schritt 5: Zugriff auf WordPress mit Portweiterleitung
Da Sie Ihren Webserver von einem Linux-System zu Hause oder Ihrem lokalen Netzwerk (LAN) selbst hosten, ist der nächste Schritt, ihn für externe Benutzer oder Benutzer außerhalb Ihres LANs (lokales Netzwerk) zugänglich zu machen. Hier kommt die Portweiterleitung ins Spiel.
Die Portweiterleitung, auch als Port-Mapping bezeichnet, ist eine Technik, die es externen Geräten ermöglicht, auf Server oder Ressourcen innerhalb eines privaten Netzwerks über das Internet zuzugreifen. Die ganze Idee besteht darin, auf private Netzwerke von außen zuzugreifen, ohne die es unmöglich wäre, da externe Geräte nicht mit internen IP-Adressen kommunizieren können.
In Ihrer Konfiguration müssen Sie den Port weiterleiten, auf dem der Webserver lauscht (in den meisten Fällen ist dies Port 80 für HTTP-Verkehr oder 443 für HTTPS), sowie die statische private IP-Adresse des Webservers.
Melden Sie sich also bei Ihrem Router an und gehen Sie zum Abschnitt für die Port-Weiterleitung. In unserem Beispiel verwenden wir den DLink-Router, um die Ports des Webservers (80 und 443) und die private IP (192.168.0.100) an die vom ISP zugewiesene dedizierte öffentliche IP weiterzuleiten.
In Ihrem Fall geben Sie die Ports und die private IP des Webservers an und speichern Sie die Änderungen.

Um die Änderungen zu speichern, müssen Sie möglicherweise den Router neu starten. Also machen Sie genau das.
Sobald die Portweiterleitung ordnungsgemäß durchgeführt wurde, können Sie nun über die öffentliche IP-Adresse außerhalb Ihres Netzwerks auf Ihren Webserver zugreifen.
Schlussfolgerung
In diesem Leitfaden haben wir gezeigt, wie Sie Ihren Webserver mithilfe von Apache auf einem Linux-Rechner selbst hosten können. Ihr Feedback zu diesem Leitfaden ist willkommen.