Hoe u gratis een website host op uw Linux-systeem thuis

De term webserver kan worden gebruikt om zowel hardware als software aan te duiden, of beide samen. Voor het doel van deze gids zullen we ons richten op de softwarekant en zien hoe je een website kunt hosten op je Linux-box.

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 inhoud is inhoud die vaak verandert of voortdurend wordt bijgewerkt. Om dynamische inhoud te serveren, moet een webserver ook samenwerken met een databaseserver en server-side scripttalen.

Deze gids zal demonstreren hoe je een Apache webserver kunt opzetten om gratis een website te hosten op je Linux-systeem.

Vereisten

Om deze handleiding te volgen, zorg ervoor dat je het volgende hebt.

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

Bekijk een paar handleidingen die je inzichten kunnen geven over het installeren van een Linux-server.

Je hebt ook een LAMP-server nodig, wat een afkorting is voor Linux, Apache en MySQL (dit kan ook MariaDB zijn). Hier zijn een paar handleidingen over hoe je de LAMP-stack installeert in Linux.Hoe installeer je LAMP op Debian 11 Server

In dit gedeelte zullen we doorgaan en de belangrijkste componenten van een webserver bespreken.

Wat is Apache?

Apache is een populaire gratis en open-source cross-platform webserver die wordt uitgebracht onder Apache License 2.0. Het is een van de meest gebruikte webservers, goed voor bijna 32,2% van het marktaandeel van webservers.

Om de nieuwste versie van Apache te controleren die beschikbaar is, en of deze is geïnstalleerd op uw server, voert u het volgende commando uit:

# apt-cache policy apache2 (On Debian-based OS)

Uit de uitvoer blijkt dat de parameter Geïnstalleerd: (none) wat impliceert dat het nog niet is geïnstalleerd. U krijgt ook informatie over de nieuwste versie die wordt aangeboden door de repository van Debian / Ubuntu, die in dit geval 2.4.52 is.

Check Apache Package Availability

Op moderne Red Hat-distributies kunt u controleren of Apache beschikbaar is met behulp van het volgende dnf-commando, zoals hieronder wordt weergegeven.

# dnf search httpd
Search Apache Package Availability

Uit de bovenstaande uitvoer blijkt dat het Apache httpd-pakket beschikbaar is om te downloaden. Als Apache niet is geïnstalleerd op uw systeem, gebruikt u de ‘apt’ of ‘dnf’-pakketbeheerders om Apache te installeren zoals hieronder wordt getoond. Op op Debian-gebaseerde systemen: Op Red-Hat-gebaseerde systemen:

Op Debian-gebaseerde systemen:

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

Op Red-Hat-gebaseerde systemen:

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

Wat is 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.

Om MariaDB te installeren, Op Debian-gebaseerde systemen:

	 
$ sudo apt install mariadb-server mariadb-client -y	 
$ sudo systemctl start mariadb	 
$ sudo systemctl enable mariadb	 
$ sudo systemctl status mariadb	 

Het volgende uitvoer toont dat MariaDB geïnstalleerd is en zoals verwacht draait.

Check MariaDB Status

Om MariaDB te installeren, Op RHEL-gebaseerde systemen:

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

Wat is PHP?

PHP is een recursief acroniem voor PHP Hypertext Preprocessor, wat een populaire algemeen doel scripttaal is die voornamelijk gebruikt wordt in web ontwikkeling.

Om PHP te installeren, Op Debian-gebaseerde 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 

Om PHP te installeren, Op RHEL-gebaseerde systemen, moet je eerst de EPEL repository inschakelen.

$ 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]

Vervolgens, schakel de Remi repository in, die de nieuwste versie van PHP aanbiedt op RHEL-gebaseerde systemen.

$ 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]

Zodra EPEL en Remi repositories op het systeem zijn ingeschakeld, kun je PHP zoals getoond installeren.

# dnf module list php
# dnf module enable php:remi-8.0 -y 
# dnf install php php-cli php-common

Met alle componenten geïnstalleerd, kun je nu je website bouwen met behulp van WordPress CMS, wat software is die het makkelijk maakt voor gebruikers om een website te ontwikkelen en te beheren zonder noodzakelijk kennis te hebben van web ontwerp talen zoals HTML, CSS, PHP, en Javascript.

Het maken van een eenvoudige website met WordPress in Linux

Voor demonstratie doeleinden zullen we WordPress installeren op Debian 11 en RHEL 9 systemen, wat een voorbeeldwebsite zal bieden die verder kan worden aangepast aan uw voorkeur.

Deze sectie gaat ervan uit dat u al de LAMP stack hebt geïnstalleerd.

Stap 1: Extra PHP-modules installeren

Om verder te gaan, installeer extra PHP-modules die nodig zijn voor WordPress zoals hieronder weergegeven.

Om PHP modules te installeren, Op Debian-gebaseerde 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

Om PHP modules te installeren, Op RHEL-gebaseerde systemen:

# dnf install php-gd php-soap php-intl php-mysqlnd php-pdo php-bcmath php-curl php-zip php-xmlrpc wget

Stap 2: Een database voor WordPress aanmaken

Geschreven in PHP, is WordPress een data-gestuurde, gratis en open-source contentmanagementsysteem. Een database is een essentieel onderdeel van WordPress.

De database wordt gebruikt om alle blogberichten, pagina’s, categorieën, opmerkingen, thema’s, plugins en WordPress configuratiebestanden op te slaan.

Om een database voor WordPress aan te maken, meld u aan bij de MariaDB databaseserver:

$ sudo mysql -u root -p

Vervolgens, maak een database aan zoals weergegeven

CREATE DATABASE wordpress_db;

Vervolgens, maak een databasegebruiker aan en geef alle rechten aan de gebruiker op de database.

GRANT ALL PRIVILEGES ON wordpress_db.* to wordpress_user@localhost identified by 'P@ssword321';

Dan eindelijk laad je de grant tabellen opnieuw om de gemaakte wijzigingen op te slaan en verlaat je de database.

FLUSH PRIVILEGES;
QUIT;

Stap 3: WordPress downloaden

Met de database op zijn plaats, ga je verder en download je het meest recente WordPress tarball-bestand met behulp van de wget-opdracht.

$ wget https://wordpress.org/latest.tar.gz

Zodra het bestand is gedownload, haal je het gecomprimeerde bestand uit met behulp van de tar-opdracht.

$ tar -xvzf latest.tar.gz

De opdracht haalt de inhoud van het bestand uit in een map genaamd wordpress. Verplaats of kopieer de map naar de Document Root voor de Apache webserver.

$ sudo mv wordpress/ /var/www/html/

Vervolgens geef je de volgende rechten en eigendomsrechten op.
$ sudo chmod 755 -R /var/www/html/wordpress/
$ sudo chown -R www-data:www-data /var/www/html/wordpress/

Stap 4: Een Apache Virtual Host voor WordPress maken

Met de term virtual host wordt bedoeld het praktijk van het hosten van meerdere websites op een enkele server. Als je van plan bent meerdere websites op een enkele server te hosten, moet je een virtuele host voor elke website maken.

In dit geval moet je een virtuele host voor de WordPress-website als volgt maken.

$ sudo nano /etc/apache2/sites-available/wordpress.conf  [On Debian]
# vi /etc/httpd/conf/httpd.conf [On RHEL]

Voeg de volgende regels code toe om de virtuele host te definiëren. Voor de ServerName directive, geef het IP-adres of de volledig gekwalificeerde domeinnaam van de server op, die moet wijzen naar het toegewijde openbare IP-adres.

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

Sla de wijzigingen op en verlaat het bestand.

Om verbinding te maken met de database zijn enkele aanvullende wijzigingen nodig. Navigeer dus naar de wordpress map.

$ cd /var/www/html/wordpress/

Vervolgens, update het wp-config.php bestand met de inhoud van het wp-config-sample.php bestand.

$ cp wp-config-sample.php wp-config.php
$ sudo nano wp-config.php

Vervolgens, update de database naam, db gebruikersnaam, en wachtwoord directives met de database details.

Vervolgens, activeer de nieuwe WordPress site als volgt op Debian-gebaseerde 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

Om de wijzigingen door te voeren, herstart Apache.

$ sudo systemctl restart apache2   [On Debian]
# systemctl restart httpd  [On RHEL]

Stap 4: Voltooi WordPress Setup in een Browser

Om de setup te voltooien, ga naar het IP-adres van uw webserver zoals weergegeven:

http://server-ip

U zou de welkomstpagina van WordPress moeten zien. Selecteer uw voorkeurstaal en klik op ‘Doorgaan’.

WordPress Installation Setup

Vul vervolgens de sitegegevens in.

WordPress Site Details

Klik vervolgens op ‘WordPress installeren’ om de WordPress-setup te voltooien.

Install WordPress

Als alles goed is gegaan, krijgt u een bevestiging dat de installatie succesvol was. Klik op de ‘Inloggen‘ knop om in te loggen.

WordPress Admin Login

Dit brengt je naar het WordPress-dashboard zoals je kunt zien. Op dit punt kun je experimenteren met verschillende thema’s om het uiterlijk van je voorbeeldwebsite te verbeteren.

WordPress Admin Dashboard

Stap 5: Toegang tot WordPress via Poortdoorschakeling

Omdat je je webserver zelf host vanaf een Linux-systeem thuis of je Local Area Network (LAN), is de volgende stap om deze toegankelijk te maken voor externe gebruikers of gebruikers buiten je LAN (Local Area Network). Hier komt poortdoorschakeling om de hoek kijken.

Poortdoorschakeling, ook wel poorttoewijzing genoemd, is een techniek die externe apparaten in staat stelt om servers of bronnen binnen een privénetwerk via internet te benaderen. Het hele idee is om toegang te krijgen tot privénetwerken van buitenaf, zonder welke het onmogelijk zou zijn omdat externe apparaten niet kunnen communiceren met interne IP-adressen.

In jouw opstelling moet je de poort doorsturen waarop de webserver luistert, (in de meeste gevallen is dit poort 80 voor HTTP-verkeer of 443 voor HTTPS), evenals het statische privé-IP-adres van de webserver.

Dus log in op je router en ga naar de Poortdoorschakelingssectie. In ons voorbeeld gebruiken we de DLink router om de poorten van de webserver (80 en 443) en privé-IP (192.168.0.100) door te sturen naar het Toegewezen Openbare IP-adres dat door de ISP is toegewezen.

In jouw geval, specificeer de poorten en het privé-IP van de webserver en sla de wijzigingen op.

Port Forwarding for WordPress

Om de wijzigingen op te slaan, moet je mogelijk de router opnieuw opstarten. Ga dus verder en doe precies dat.

Zodra de poortdoorsturing correct is uitgevoerd, kunt u nu uw webserver buiten uw netwerk bereiken via het openbare IP-adres.

Conclusie

In deze handleiding hebben we gedemonstreerd hoe u uw webserver zelf kunt hosten met Apache op een Linux-systeem. Uw feedback over deze handleiding is welkom.

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