Wéi installéiere ech LEMP op Debian 10 Server


E LEMP Stack ass eng Mëschung aus Open-Source Software déi typesch op engem Linux Server installéiert ass fir dynamesch Uwendungen z'installéieren. Dëse Begrëff ass en Akronym deen de Linux Betribssystem, Nginx Webserver, eng MariaDB Datebank, a PHP Programméierung duerstellt.

Och wann dësen LEMP Stack normalerweis MySQL als Datebankmanagement System enthält, e puer Linux Verdeelungen wéi Debian - benotzt MariaDB als Drop-in Ersatz fir MySQL.

  1. Wéi installéiere ech en Debian 10 (Buster) Minimal Server

An dësem Artikel erkläre mir Iech wéi Dir e LEMP-Ëmfeld op engem Debian 10-Server installéiere an opstellt, mat MariaDB als Datebankmanagementplattform.

Installéiere vum Nginx Web Server op Debian 10

Nginx ass eng Open-Source a Cross-Plattform, liicht awer mächteg an einfach ze konfiguréieren HTTP a Reverse Proxy Server, e Mail Proxy Server, an e generesche TCP/UDP Proxy Server, mat enger modulärer Architektur.

E puer vu senge Basisfeatures enthalen statesch an Indexdateien ze servéieren; Beschleunegt Ënnerstëtzung mat Caching vu FastCGI, uwsgi, SCGI, a Memcached Serveren, Laaschtbalancéierung a Feelertoleranz, SSL an TLS SNI Support, Ënnerstëtzung fir HTTP/2 mat gewiicht an Ofhängegkeet-baséiert Prioritéit.

Fir den Nginx Package z'installéieren, benotzt Debian's apt Package Manager wéi gewisen.

# apt update 
# apt install nginx 

Wann d'Nginx Installatioun fäerdeg ass, wäert den Installateur systemd aktivéieren fir den Nginx Service fir elo unzefänken an et z'aktivéieren fir automatesch beim Systemboot ze starten. Dir kënnt de Status vun Nginx iwwerpréiwen andeems Dir de folgende Systemctl Kommando benotzt.

# systemctl status nginx

Dir kënnt och déi folgend wichteg Befehle benotzen fir d'Konfiguratioun vum Nginx Service ënner systemd ze starten, nei ze starten, ze stoppen an ze lueden.

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

Als nächst, wann Dir d'UFW Firewall laaft (et ass normalerweis als Standard deaktivéiert), musst Dir den Hafen 80 (HTTP) an 443 (HTTPS) opmaachen fir den erakommen Traffic op Nginx z'erméiglechen.

# ufw allow 80
# ufw allow 443
# ufw status

Zu dësem Zäitpunkt musst Dir testen ob Nginx richteg installéiert ass, ob et leeft a kann Websäiten déngen. Fir dat ze maachen, öffnen e Webbrowser a weist et op déi folgend URL fir op d'Nginx Debian Default Websäit ze kommen.

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

MariaDB op Debian 10 installéieren

Als nächst musst Dir en Datebanksystem installéieren fir Daten fir Är Websäit oder Webapp ze späicheren an ze verwalten. Debian 10 ënnerstëtzt MariaDB par défaut, als Drop-in Ersatz fir MySQL.

Fir MariaDB z'installéieren, fuert de folgende Kommando.

# apt install mariadb-server

Als nächst, kontrolléiert de MariaDB Service Status well et automatesch vum Systemd gestart gëtt an aktivéiert fir beim Systemboot unzefänken, fir sécherzestellen datt et op a lafen ass, benotzt de folgende Kommando.

# systemctl status mariadb

Fir de MariaDB Service ënner systemd ze verwalten (Start, Restart, Stop a Reload) kënnt Dir de folgende Kommando benotzen.

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

Als nächst wäert d'MariaDB Deployment als Standard onsécher sinn. Dir musst e Shell-Skript ausféieren, deen mam Package erakënnt, fir Iech d'Datebanksécherheet ze verbesseren.

# mysql_secure_installation

Nodeems Dir de Skript ausgefouert hutt, wäert et Iech duerch eng Serie vun de folgende Froen huelen fir d'Standardastellunge vun der MariaDB Installatioun z'änneren wéi am folgenden Screenshot gewisen.

Installéiere vun PHP-FPM (Fast Process Manager) op Debian 10

Am Géigesaz zu Apache an aner Webserver, Nginx bitt keng gebierteg Ënnerstëtzung fir PHP, well et PHP-FPM benotzt fir Ufroe fir PHP Säiten ze handhaben. PHP-FPM ass en alternativen FastCGI Daemon fir PHP deen eng Websäit erlaabt héich Lasten ze handhaben, andeems Dir Aarbechterprozesser benotzt fir Ufroen ze handhaben.

Fir PHP-FPM Versioun 7.3 an e PHP Modul z'installéieren fir mat engem MariaDB/MySQL Datebanksystem ze kommunizéieren, fuert de folgende Kommando.

# apt install php-fpm php-mysqli

Nodeems PHP-FPM installéiert ass, wäert den Installateur systemd aktivéieren fir de PHP-FPM Service fir de Moment unzefänken an et z'aktivéieren fir automatesch beim Systemboot ze starten. Fir ze kontrolléieren ob et op a lafen ass, gitt de folgende Kommando aus.

# systemctl status php-fpm

Dir kënnt och d'Konfiguratioun vum PHP-FPM Service ënner systemd starten, nei starten an nei lueden, wéi follegt.

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

Als nächst musst Dir PHP-FPM sécheren andeems Dir e puer Ännerungen an der Konfiguratiounsdatei /etc/php/7.3/fpm/php.ini maacht wéi follegt.

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

Kuckt no de ;cgi.fix_pathinfo=1 decommentéiert et andeems Dir de ; Charakter am Ufank ewechhuelt, setzt säi Wäert op 0. Dëst verhënnert datt Nginx net-PHP Dateien erlaabt als PHP auszeféieren.

cgi.fix_pathinfo=0

Par défaut ass PHP-FPM konfiguréiert fir op engem UNIX-Soxket ze lauschteren, /run/php/php7.3-fpm.sock wéi an der /etc/php/7.3/fpm/pool.d/www.conf Konfiguratiounsdatei definéiert. Dir musst all Är Serverblock (oder virtuelle Hosten) konfiguréieren fir dëse Socket ze benotzen wa se PHP-Säiten veraarbecht an déngen.

Dir kënnt d'Nginx Standard Server Block Konfiguratiounsdatei /etc/nginx/sites-available/default benotzen fir se ze testen.

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

Kuckt no der folgender Sektioun an decommentéiert et fir PHP Scripten op FastCGI Server ze passéieren wéi am Screenshot gewisen.

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

Als nächst, test ob d'Nginx Konfiguratiounsstruktur OK ass, andeems Dir de folgende Kommando benotzt.

# nginx -t

Wann d'Nginx Konfiguratioun OK ass, fir déi kierzlech gemaach Ännerungen z'applizéieren, starten d'php7.3-fpm an nginx Servicer wéi folgend.

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

Testen PHP-FPM Veraarbechtung op Nginx

Nodeems Dir PHP-FPM an Nginx konfiguréiert hutt fir zesummen ze schaffen, musst Dir testen ob zwee Servicer PHP-Säiten u Clienten veraarbecht a servéieren. Fir dat ze maachen, erstellt en einfachen PHP Skript an Ärem Web DocumentRoot wéi follegt.

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

Schlussendlech, öffnen e Browser a gitt déi folgend Adress fir d'PHP Konfiguratiounen um System ze gesinn wéi déi vun der phpinfo() Funktioun generéiert ginn.

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

An dësem Artikel hu mir gewisen, wéi Dir de LEMP-Stack an Debian 10 installéiere kënnt a konfiguréieren. Wann Dir Froen oder Feedback hutt, mellt Iech w.e.g. a loosst eis iwwer de Kommentarformular hei drënner wëssen.