Wie man eine Website kostenlos auf seinem Heim-Linux-System hostet

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.

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.

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.So installieren Sie LAMP auf Debian 11 Server

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.

Check Apache Package Availability

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

# dnf search httpd
Search Apache Package Availability

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: Auf Red-Hat-basierten Systemen:

Auf Debian-basierten Systemen:

$ sudo apt install apache2 -y 	 
$ sudo systemctl start apache2	 
$ sudo systemctl enable apache2	 
$ sudo systemctl status apache2
Check Apache2 Status

Auf Red-Hat-basierten Systemen:

# dnf install httpd -y 	 
# systemctl start httpd	 
# systemctl enable httpd	 
# systemctl status httpd
Check httpd Status

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.

Check MariaDB Status

Um MariaDB zu installieren, Auf Red-Hat-basierten Systemen:

	 
# dnf install mariadb-server -y	 
# systemctl start mariadb	 
# systemctl enable mariadb	 
# systemctl status mariadb	 
Verify MariaDB Status

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).

WordPress Installation Setup

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

WordPress Site Details

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

Install WordPress

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).

WordPress Admin Login

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.

WordPress Admin Dashboard

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.

Port Forwarding for WordPress

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.

Source:
https://www.tecmint.com/host-website-locally/