Zoeken op website

Hoe LEMP op Debian 10 Server te installeren


Een “LEMP”-stack is een combinatie van open-sourcesoftware die doorgaans op een Linux-server wordt geïnstalleerd om dynamische applicaties te implementeren. Deze term is een acroniem dat het Linux-besturingssysteem, de Nginx-webserver, een MariaDB-database en PHP-programmering vertegenwoordigt.

Lees ook: LAMP installeren op Debian 10 Server

Hoewel deze “LEMP”-stack normaal gesproken MySQL bevat als het databasebeheersysteem, gebruiken sommige Linux-distributies zoals Debian MariaDB als drop-in vervanging voor MySQL.

Vereisten

  1. Hoe u een Debian 10 (Buster) Minimal Server installeert

In dit artikel leggen we u uit hoe u een LEMP-omgeving op een Debian 10-server installeert en instelt, met MariaDB als databasebeheer platform.

Nginx-webserver installeren op Debian 10

Nginx is een open-source en platformonafhankelijke, lichtgewicht maar toch krachtige en eenvoudig te configureren HTTP en reverse proxy-server, een mailproxyserver en een generieke TCP/UDP-proxy server, met een modulaire architectuur.

Enkele van de basisfuncties zijn onder meer het aanbieden van statische en indexbestanden; versnelde ondersteuning met caching van FastCGI, uwsgi, SCGI en Memcached servers, taakverdeling en fouttolerantie, SSL en TLS SNI-ondersteuning, ondersteuning voor HTTP/2 met gewogen en op afhankelijkheid gebaseerde prioriteitstelling.

Om het Nginx-pakket te installeren, gebruikt u de apt-pakketbeheerder van Debian, zoals weergegeven.

apt update 
apt install nginx 

Zodra de installatie van Nginx voltooid is, activeert het installatieprogramma systemd om de Nginx-service voorlopig te starten en zorgt ervoor dat deze automatisch start bij het opstarten van het systeem. U kunt de status van Nginx controleren met behulp van de volgende systemctl-opdracht.

systemctl status nginx

U kunt ook de volgende belangrijke opdrachten gebruiken om de configuratie van de Nginx-service onder systemd te starten, opnieuw op te starten, te stoppen en opnieuw te laden.

systemctl start nginx
systemctl restart nginx 
systemctl stop nginx
systemctl reload nginx 
systemctl status nginx 

Als u vervolgens de UFW-firewall actief heeft (deze is meestal standaard uitgeschakeld), moet u poort 80 (HTTP) en 443 (HTTPS) openen om inkomend verkeer toe te staan op Nginx.

ufw allow 80
ufw allow 443
ufw status

Op dit punt moet je testen of Nginx correct is geïnstalleerd, of het actief is en webpagina's kan weergeven. Open hiervoor een webbrowser en wijs deze naar de volgende URL om toegang te krijgen tot de webpagina Nginx Debian Default.

http://SERVER_IP/
OR
http://localhost/

MariaDB installeren op Debian 10

Vervolgens moet u een databasesysteem installeren om gegevens voor uw website of webapp op te kunnen slaan en te beheren. Debian 10 ondersteunt standaard MariaDB, als drop-in vervanging voor MySQL.

Om MariaDB te installeren, voert u de volgende opdracht uit.

apt install mariadb-server

Controleer vervolgens de status van de MariaDB-service, aangezien deze automatisch wordt gestart door systemd en is ingeschakeld om te starten bij het opstarten van het systeem. Om er zeker van te zijn dat deze actief is, gebruikt u de volgende opdracht.

systemctl status mariadb

Om de MariaDB-service onder systemd te beheren (starten, herstarten, stoppen en herladen) kunt u de volgende opdracht gebruiken.

systemctl start mariadb
systemctl restart mariadb
systemctl stop mariadb
systemctl reload mariadb

Vervolgens is de MariaDB-implementatie standaard onveilig. U moet een shellscript uitvoeren dat bij het pakket wordt geleverd, zodat u de databasebeveiliging kunt verbeteren.

mysql_secure_installation

Nadat u het script hebt uitgevoerd, wordt u door een reeks volgende vragen geleid om de standaardinstellingen van de MariaDB-installatie te wijzigen, zoals weergegeven in de volgende schermafbeelding.

PHP-FPM (Fast Process Manager) installeren op Debian 10

In tegenstelling tot Apache en andere webservers biedt Nginx geen native ondersteuning voor PHP, omdat het PHP-FPM gebruikt om verzoeken voor PHP-pagina's af te handelen. PHP-FPM is een alternatieve FastCGI daemon voor PHP waarmee een website hoge belastingen kan verwerken, door werkprocessen te gebruiken om verzoeken af te handelen.

Om PHP-FPM versie 7.3 en een PHP-module te installeren om te communiceren met een MariaDB/MySQL databasesysteem, voert u de volgende opdracht uit.

apt install php-fpm php-mysqli

Nadat PHP-FPM is geïnstalleerd, activeert het installatieprogramma systemd om de PHP-FPM-service voorlopig te starten en in te schakelen om automatisch te starten bij het opstarten van het systeem. Om te controleren of het actief is, geeft u de volgende opdracht.

systemctl status php-fpm

U kunt de configuratie van de PHP-FPM service onder systemd ook als volgt starten, opnieuw starten, stoppen en opnieuw laden.

systemctl start php-fpm
systemctl restart php-fpm
systemctl stop php-fpm
systemctl reload php-fpm
systemctl status php-fpm

Vervolgens moet u PHP-FPM beveiligen door als volgt enkele wijzigingen aan te brengen in het configuratiebestand /etc/php/7.3/fpm/php.ini.

vi /etc/php/7.3/fpm/php.ini

Zoek naar ;cgi.fix_pathinfo=1 en verwijder het commentaar door het teken ; aan het begin te verwijderen, stel de waarde in op 0. Dit voorkomt dat Nginx toestaat dat niet-PHP-bestanden als PHP worden uitgevoerd.

cgi.fix_pathinfo=0

Standaard is PHP-FPM geconfigureerd om te luisteren op een UNIX-soxket, /run/php/php7.3-fpm.sock zoals gedefinieerd in /etc /php/7.3/fpm/pool.d/www.conf configuratiebestand. U moet al uw serverblokken (of virtuele hosts) configureren om deze socket te gebruiken als ze PHP-pagina's moeten verwerken en weergeven.

U kunt het Nginx standaard serverblokconfiguratiebestand /etc/nginx/sites-available/default gebruiken om het te testen.

vi /etc/nginx/sites-available/default 

Zoek het volgende gedeelte en verwijder de opmerkingen om PHP-scripts door te geven aan de FastCGI-server, zoals weergegeven in de schermafbeelding.

location ~ \.php$ {
            include snippets/fastcgi-php.conf;
            fastcgi_pass unix:/run/php/php7.3-fpm.sock;
}

Test vervolgens of de Nginx-configuratiestructuur OK is, met behulp van de volgende opdracht.

nginx -t

Als de Nginx-configuratie OK is, start u de php7.3-fpm- en nginx-services als volgt opnieuw om de recent aangebrachte wijzigingen toe te passen.

systemctl restart php7.2-fpm
systemctl restart nginx

PHP-FPM-verwerking testen op Nginx

Nadat je PHP-FPM en Nginx hebt geconfigureerd om samen te werken, moet je testen of twee services PHP-pagina's kunnen verwerken en aan klanten kunnen aanbieden. Om dat te doen, maakt u als volgt een eenvoudig PHP-script in uw web DocumentRoot.

echo “<?php phpinfo(); ?>”  | tee /var/www/html/info.php

Open ten slotte een browser en typ het volgende adres om de PHP-configuraties op het systeem te bekijken zoals gegenereerd door de functie phpinfo().

http://SERVER_IP/info.php
OR
http://localhost/info.php

Conclusie

In dit artikel hebben we laten zien hoe u de LEMP-stack in Debian 10 installeert en configureert. Als u vragen of feedback heeft, neem dan contact met ons op en laat het ons weten via het onderstaande opmerkingenformulier.