Winkelwagen

/ VPS-Infrastructuur

Alles over de zelfontwikkelde VPS-infrastructuur

Register now

/ Up to date

/ Nieuws

Lancering PerformanceVPS

Meer info
Hulp nodig?

    Sorry, we konden geen resultaten vinden voor jouw zoekopdracht.

    Een apache webserver installeren in Rocky Linux 8

    In dit artikel leggen wij de installatie en initiële configuratie van een Apache web server (met httpd-tools, mod_ssl en PHP-FPM) in Rocky Linux 8 uit. 

    Apache vormt samen met MariaDB en PHP de zogeheten LAMP-Stack (Linux Apache MySQL PHP) en wordt gebruikt voor het hosten van dynamische websites. Host je een dynamische website op je VPS (e.g. WordPress), dan heb je ook MariaDB nodig (of een vergelijkbaar alternatief).

    In dit artikel behandelen wij de volgende onderdelen:

    • Apache installeren
    • Apache poorten openen in je firewall
    • PHP installeren
    • DNS configureren
    • Vhosts gebruiken

    Daarnaast raden wij ook aan om een SFTP-server op te zetten, en de websites die je host te beveiligen met SSL.

    • Voer de stappen in dit artikel uit als root user, of gebruik sudo
    • Wil je je Apache server meteen kunnen testen? Wijs dan voor je begint de DNS van een domein naar je VPS (i.e. via het root A- en AAAA-record).

    Apache installeren

    Stap 1

    Verbind met je VPS via SSH of gebruik de VPS-console en update eerst je server:

    dnf -y update

    Stap 2

    Installeer Apache (en de benodigde extra packages) met het commando:

    dnf -y install httpd httpd-tools mod_ssl

    Hiermee installeer je:

    • httpd: De Apache-software zelf.
    • httpd-tools: Administratieve- en beveiligingsscripts.
    • mod_ssl: SSL v3 en TLS v1.x ondersteuning voor Apache.

    Apache toestaan in je firewall

    Rocky Linux 8 komt standaard met Firewalld als firewall en out-of-the-box staan alle poorten daarin dicht. Je zet de http-(80) en https-(443) poorten open met de commando's:

    firewall-cmd --zone=public --permanent --add-service=http
    firewall-cmd --zone=public --permanent --add-service=https
    firewall-cmd --reload

    Het laatste commando hierboven voert de wijziging live door. Rocky Linux komt standaard met Selinux als aanvullende beveiliging. De http- en https-poorten staan hier standaard al in open en hoef je verder niets voor aan te passen.


    Testen

    Je kunt nu direct de werking van je web server testen door in een browser naar http://voorbeeld.nl te gaan, waarbij je voorbeeld.nl vervangt door je hostname (te controleren met het commando 'hostname'), of het IP-adres van je VPS. Je ziet dan de standaard test-pagina.


    PHP installeren en updaten

    Stap 1

    Apache komt na de installatie zonder PHP. Wil je een dynamische PHP-website hosten (e.g. WordPress), dan heb je PHP nodig. Oude versies van PHP zijn onveilig. Voor de installatie van PHP 8.1 gebruik je de stappen hieronder.

    Wil je een andere versie installeren, bijvoorbeeld 7.4? Vervang dan hieronder remi-release-8 door remi-release-7 en in de volgende stappen 8.1 door het gewenste versienummer.

    Installeer eerst de EPEL-release, Remi repository (waar PHP 8.1 in is opgenomen) en yum-utils:

    dnf -y install epel-release dnf-utils http://rpms.remirepo.net/enterprise/remi-release-8.rpm

    Stap 2

    Schakel de Remi-repository in met:

    dnf -y module enable php:remi-8.1

    Stap 3

    Installeer vervolgens PHP 8.1 met:

    dnf -y install php php-common php-mysql php-fpm
    
    • php-mysql voegt mysql-ondersteuning toe
    • php-fpm is een PHP-FastCGI Process Manager die ten opzichte van reguliere FastCGI o.a. betere performance biedt bij beter bezochte websites.

    Je PHP-versie is nu geïnstalleerd. Je controleert de preciese versie met:

    php -v

    Stap 4

    Apache komt met een minimale configuratie waar niet automatisch er van uit wordt gegaan dat je een PHP website wil hosten. Het gevolg hiervan is dat bij bezoek van een website die PHP gebruikt (i.e. via index.php) de Apache placeholder getoond wordt in plaats van je website.

    Het is dus belangrijk om hiervoor een kleine aanpassing in Apache te maken zodat Apache daadwerkelijk je website toont. Open hiervoor httpd.conf:

    nano /etc/httpd/conf/httpd.conf

    Stap 5

    Zoek naar het stukje dat er uit ziet zoals hier onder:

    #
    # DirectoryIndex: sets the file that Apache will serve if a directory
    # is requested.
    #
    <IfModule dir_module>
        DirectoryIndex index.html
    </IfModule>

    Pas het aan naar:

    #
    # DirectoryIndex: sets the file that Apache will serve if a directory
    # is requested.
    #
    <IfModule dir_module>
        DirectoryIndex index.html index.php
    </IfModule>

    Sla de wijzigingen op en sluit Nano (ctrl + > > enter). Het maakt nu niet meer uit of een website index.html of index.php gebruikt.


    Stap 6

    Apache's configuratie gaat ook niet uit van extra opties zoals PHP-FPM. Er is dan ook een kleine aanpassing in de Apache-configuratie nodig om PHP-FPM te gebruiken.

    Open het PHP-FPM configuratiebestand:

    nano /etc/httpd/conf.d/php.conf

    Stap 7

    Scroll naar onderen naar de regel die begint met 'SetHandler' en pas die aan van:

    SetHandler application/x-httpd-php

    naar:

    SetHandler "proxy:fcgi://127.0.0.1:9000"

    Sla je wijzigingen op en sluit nano met ctrl + > > enter.


    Stap 8

    Apache en PHP-FPM staan na de installatie uitgeschakeld en starten ook niet automatisch na een herstart van Rocky Linux. Je schakelt beide in en laat ze automatisch starten met de commando's:

    systemctl enable httpd
    systemctl enable php-fpm
    systemctl start httpd
    systemctl start php-fpm

    Je Apache-server is nu helemaal klaar voor PHP. Vergeet niet MariaDB te installeren als er ook een database aan je website gekoppeld is en je VHost te configureren als je meerdere sites host.

    Host je één website op je server? Dan kun je die nu uploaden (bijvoorbeeld via FTP) in de map /var/www/html.


    DNS

    Om een website te hosten is het niet alleen belangrijk dat de bestanden van je website op een server staan. Deze moet uiteraard ook vindbaar zijn via het internet. Hiervoor wordt wereldwijd gebruik gemaakt van DNS-records; DNS-records geven aan op welke servers diensten zoals webhosting of e-mail voor een domein te vinden zijn.

    Hieronder zie je een voorbeeld van hoe je DNS-records kunt instellen voor een domein dat bij TransIP geregistreerd staat en gehost wordt op een VPS. Een uitgebreidere uitleg over het instellen van DNS-records vind je in deze handleiding.

    cp domein geavanceerd domeinbeheer

    Gebruik je een SandboxVPS? Dan stel je enkel IPv6-records in.


    Een VHost gebruiken

    Wil je meer dan één domein hosten? Dan gebruik je een VHost-systeem (ook bekend als VirtualHost). Een VHost-file bevat o.a. de gegevens waar op je VPS specifieke domeinen gehost worden. Hierdoor worden bezoekers van domeinen die je op je VPS host automatisch naar de juiste mappen op je VPS gestuurd waar de websites zich bevinden (zonder dat die bezoekers daar iets van merken).

    Stap 1

    Maak de vhost file aan met het commando:

    nano /etc/httpd/conf.d/vhost.conf

    Stap 2

    Neem de inhoud hieronder over, waarbij je example.com vervangt door de naam van het domein dat je wil hosten op je VPS.

    NameVirtualHost *:80
    
    <VirtualHost *:80>
        ServerAdmin admin@example.com
        ServerName example.com
        ServerAlias www.example.com
        DocumentRoot /var/www/html/example.com/
        ErrorLog /var/log/httpd/example.com/error.log
        CustomLog /var/log/httpd/example.com/access.log combined
    </VirtualHost>

    Voor ieder domein dat je extra wil toevoegen (ongeacht het aantal), voeg je het stukje vanaf <VirtualHost *:80> t/m </VirtualHost> opnieuw toe, waarbij je de domeinnaam vervangt door het daadwerkelijke andere domein. Voor example.com en voorbeeld.nl zou dit er als volgt uitzien:

    NameVirtualHost *:80
    
    <VirtualHost *:80>
        ServerAdmin admin@example.com
        ServerName example.com
        ServerAlias www.example.com
        DocumentRoot /var/www/html/example.com/
        ErrorLog /var/log/httpd/example.com/error.log
        CustomLog /var/log/httpd/example.com/access.log combined
    </VirtualHost>
    
    <VirtualHost *:80>
        ServerAdmin admin@voorbeeld.nl
        ServerName voorbeeld.nl
        ServerAlias www.voorbeeld.nl
        DocumentRoot /var/www/html/voorbeeld.nl/
        ErrorLog /var/log/httpd/voorbeeld.nl/error.log
        CustomLog /var/log/httpd/voorbeeld.nl/access.log combined
    </VirtualHost>

    Stap 3

    De directories die in de vorige stap staan bestaan nog niet en maak je samen met de log files eerst aan. Vervang hier example.com door de naam van het domein dat je toevoegt:

    mkdir -p /var/www/html/example.com
    mkdir -p /var/log/httpd/example.com
    touch /var/log/httpd/example.com/error.log
    touch /var/log/httpd/example.com/access.log

    De toevoeging -p (-parent) maakt indien nodig alle mapstructuren aan die voor /example.com staan. In principe zouden deze allemaal al moeten bestaan.


    Stap 4

    Je kunt nu direct aan de slag met je website, door deze via SFTP of FTPS te uploaden, of door met een teksteditor vanuit command-line een html-website te maken (voor PHP, zie PHP installeren). Je kunt bijvoorbeeld als volgt een info.php pagina maken:

    • Open php.info:
      nano /var/www/html/example.com/info.php
    • Voeg de volgende inhoud toe:
      <?php
      phpinfo();
      ?>

    Je Apache-server is nu klaar! Gebruikt je website een database? Neem dan ook een kijkje in onze MariaDB-handleiding. Voor het beveiligen van je website kun je onze Apache SSL-handleiding gebruiken.

    Mocht je aan de hand van dit artikel nog vragen hebben, aarzel dan niet om onze supportafdeling te benaderen. Je kunt hen bereiken via de knop 'Neem contact op' onderaan deze pagina.

    Kom je er niet uit?

    Ontvang persoonlijke hulp van onze supporters

    Neem contact op