Sådan installeres LEMP på Debian 10 Server


En "LEMP" -stak er en blanding af open source-software, der typisk installeres på en Linux-server for at implementere dynamiske applikationer. Dette udtryk er et akronym, der repræsenterer Linux-operativsystemet, Nginx-webserveren, en MariaDB-database og PHP-programmering.

Selvom denne "LEMP" -stak normalt indeholder MySQL som databasestyringssystem, bruger nogle Linux-distributioner som Debian - MariaDB som en erstatning for drop-in til MySQL.

  1. Sådan installeres en Debian 10 (Buster) minimal server

I denne artikel vil vi forklare dig, hvordan du installerer og opsætter et LEMP-miljø på en Debian 10-server ved hjælp af MariaDB som databasestyringsplatform.

Installation af Nginx-webserver på Debian 10

Nginx er en open source og cross-platform, let, men alligevel stærk og nem at konfigurere HTTP og reverse proxyserver, en mail-proxyserver og en generisk TCP/UDP-proxyserver med en modulær arkitektur.

Nogle af dens grundlæggende funktioner inkluderer visning af statiske filer og indeksfiler; accelereret support med caching af FastCGI-, uwsgi-, SCGI- og Memcached-servere, belastningsbalancering og fejltolerance, SSL og TLS SNI-understøttelse, understøttelse af HTTP/2 med vægtet og afhængighedsbaseret prioritering.

For at installere Nginx-pakken skal du bruge Debians apt-pakkehåndtering som vist.

# apt update 
# apt install nginx 

Når Nginx-installationen er afsluttet, aktiverer installationsprogrammet systemd for at starte Nginx-tjenesten indtil videre og gør det muligt automatisk at starte ved systemstart. Du kan kontrollere status for Nginx ved hjælp af følgende systemctl-kommando.

# systemctl status nginx

Du kan også bruge følgende vigtige kommandoer til at starte, genstarte, stoppe og genindlæse konfigurationen af Nginx-tjenesten under systemd.

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

Dernæst, hvis du har UFW-firewall kørende (den er normalt deaktiveret som standard), skal du åbne port 80 (HTTP) og 443 (HTTPS) for at tillade indgående trafik på Nginx.

# ufw allow 80
# ufw allow 443
# ufw status

På dette tidspunkt skal du teste, om Nginx er korrekt installeret, om den kører og kan tjene websider. For at gøre det skal du åbne en webbrowser og pege den på følgende URL for at få adgang til Nginx Debians standardwebside.

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

Installation af MariaDB på Debian 10

Dernæst skal du installere et databasesystem for at kunne gemme og administrere data til dit websted eller din webapp. Debian 10 understøtter MariaDB som standard som drop-in-erstatning for MySQL.

For at installere MariaDB skal du køre følgende kommando.

# apt install mariadb-server

Dernæst skal du kontrollere MariaDB-servicestatusen, da den automatisk startes af systemd og aktiveres til at starte ved systemstart, for at sikre, at den er i gang, skal du bruge følgende kommando.

# systemctl status mariadb

For at administrere (starte, genstarte, stoppe og genindlæse) MariaDB-tjenesten under systemd kan du bruge følgende kommando.

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

Dernæst vil MariaDB-implementeringen være usikker som standard. Du skal køre et shell-script, der leveres med pakken, for at gøre det muligt for dig at forbedre databasesikkerheden.

# mysql_secure_installation

Efter at have kørt scriptet, tager det dig gennem en række følgende spørgsmål for at ændre standardindstillingerne for MariaDB-installationen som vist i følgende skærmbillede.

Installation af PHP-FPM (Fast Process Manager) på Debian 10

I modsætning til Apache og andre webservere leverer Nginx ikke native support til PHP, da den bruger PHP-FPM til at håndtere anmodninger om PHP-sider. PHP-FPM er en alternativ FastCGI-dæmon til PHP, der tillader et websted at håndtere høje belastninger ved hjælp af arbejdsprocesser til at håndtere anmodninger.

For at installere PHP-FPM version 7.3 og et PHP-modul til at kommunikere med et MariaDB/MySQL-databasesystem skal du køre følgende kommando.

# apt install php-fpm php-mysqli

Når PHP-FPM er installeret, vil installationsprogrammet aktivere systemd for at starte PHP-FPM-tjenesten indtil videre og aktivere den til automatisk start ved systemstart. For at kontrollere, om den er i gang, skal du udstede følgende kommando.

# systemctl status php-fpm

Du kan også starte, genstarte stop og genindlæse konfigurationen af PHP-FPM-tjenesten under systemd som følger.

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

Dernæst skal du sikre PHP-FPM ved at foretage nogle ændringer i konfigurationsfilen /etc/php/7.3/fpm/php.ini som følger.

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

Se efter; cgi.fix_pathinfo = 1 fjern kommentar ved at fjerne; tegn i starten, indstil dens værdi til 0. Dette forhindrer Nginx i at tillade, at ikke-PHP-filer udføres som PHP.

cgi.fix_pathinfo=0

Som standard er PHP-FPM konfigureret til at lytte på en UNIX soxket, /run/php/php7.3-fpm.sock som defineret i /etc/php/7.3/fpm/pool.d/www.conf konfigurationsfilen. Du skal konfigurere al din serverblok (eller virtuelle værter) til at bruge denne stikkontakt, hvis de skal behandle og servere PHP-sider.

Du kan bruge Nginx-konfigurationsfilen til standardserverblok/etc/nginx/sites-tilgængelig/standard til at teste den.

# vi /etc/nginx/sites-available/default 

Se efter det følgende afsnit og fjern kommentar til det for at overføre PHP-scripts til FastCGI-serveren som vist på skærmbilledet.

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

Test derefter, om Nginx-konfigurationsstrukturen er OK ved hjælp af følgende kommando.

# nginx -t

Hvis Nginx-konfigurationen er OK, skal du starte php7.3-fpm- og nginx-tjenesterne som følger for at anvende de nyligt foretagne ændringer.

# systemctl restart php7.2-fpm
# systemctl restart nginx

Test af PHP-FPM-behandling på Nginx

Efter konfiguration af PHP-FPM og Nginx til at arbejde sammen, skal du teste, om to tjenester kan behandle og servere PHP-sider til klienter. For at gøre det skal du oprette et simpelt PHP-script i dit web DocumentRoot som følger.

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

Endelig skal du åbne en browser og skrive følgende adresse for at se PHP-konfigurationerne på systemet som genereret af phpinfo () -funktionen.

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

I denne artikel har vi vist, hvordan du installerer og konfigurerer LEMP-stakken i Debian 10. Hvis du har spørgsmål eller feedback, bedes du kontakte os og give os besked via nedenstående kommentarformular.