Hvernig á að setja upp LEMP Stack á Debian 11 - Nginx MariaDB PHP

LEMP er safn opins hugbúnaðar sem er almennt notaður saman til að þjóna vefforritum. Hugtakið LEMP er skammstöfun sem táknar uppsetningu Linux stýrikerfis með Nginx (borið fram vél-x, þar af leiðandi E í skammstöfuninni) vefþjóni, með vefgögnum sem eru geymd í MySQL eða MariaDB gagnagrunni og kraftmiklu efni unnið af PHP sem er almennt notað til að hýsa umfangsmiklar vefsíður vegna frammistöðu þess og sveigjanleika.

Í eftirfarandi námskeiði muntu læra hvernig á að setja upp LEMP (Nginx, MariaDB, PHP 8.0) á Debian 11.

Forsendur

  • Mælt með stýrikerfi: Debian 11 Bullseye
  • Notendareikningur: Notendareikningur með sudo réttindi or rótaraðgangur (su skipun).

Uppfærir stýrikerfi

Uppfærðu þína Debian 11 stýrikerfi til að tryggja að allir núverandi pakkar séu uppfærðir:

sudo apt update && sudo apt upgrade

Root eða Sudo Access

Sjálfgefið, þegar þú býrð til reikninginn þinn við ræsingu með Debian miðað við aðrar dreifingar, fær hann ekki sjálfkrafa sudoers stöðu. Þú verður annað hvort að hafa aðgang að rót lykilorð til að nota su skipunin eða farðu á námskeiðið okkar á Hvernig á að bæta notanda við Sudoers á Debian.


Fáðu


Setjið Nginx

Til að hefja uppsetningu LEMP stafla þarftu að setja upp Nginx vefþjón, sem hægt er að gera með eftirfarandi flugstöðvaskipun:

sudo apt install nginx

Dæmi úttak:

Hvernig á að setja upp LEMP Stack á Debian 11 - Nginx MariaDB PHP

Tegund Y, ýttu síðan á sláðu inn lykil til að halda áfram með uppsetninguna.

Staðfestu uppsetninguna með því að athuga smíðaútgáfuna:

sudo nginx -v

Dæmi úttak:

nginx version: nginx/1.18.0

Athugaðu nú til að sjá stöðu Nginx þjónustunnar þinnar með eftirfarandi flugstöðvarskipun:

sudo systemctl status nginx

Dæmi um úttak sem segir að allt sé í lagi:

Hvernig á að setja upp LEMP Stack á Debian 11 - Nginx MariaDB PHP

Sjálfgefið, þegar Nginx er sett upp á Debian, ætti það að vera virkt; ef ekki, notaðu eftirfarandi skipun til að ræsa Nginx og gera það kleift að hlaðast við ræsingu.

sudo systemctl enable nginx && sudo systemctl start nginx

Dæmi um að virkja með góðum árangri (sammerki):

Synchronizing state of nginx.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable nginx

Fyrir notendur sem vilja nota uppfærðari stöðugri útgáfu eða aðalútgáfu af Nginx fyrir Debian 11, skoðaðu kennsluna okkar Hvernig á að setja upp nýjustu Nginx Mainline eða Stable á Debian 11.

Að setja upp og stilla MariaDB

uppsetning

MariaDB er drop-in staðgengill fyrir MySQL og er þróað af fyrrverandi meðlimum MySQL teymis sem hafa áhyggjur af því að Oracle gæti breytt MySQL í lokaða og hugsanlega greidda vöru.

Sláðu inn eftirfarandi skipun til að setja upp MariaDB á Debian:

sudo apt install mariadb-server mariadb-client

Dæmi um úttak hér að neðan:

Hvernig á að setja upp LEMP Stack á Debian 11 - Nginx MariaDB PHP

Gerð Y ýttu síðan á sláðu inn lykil til að halda áfram með uppsetninguna:

Athugaðu nú stöðu MariaDB gagnagrunnsþjónustunnar þinnar og hvort hún er starfhæf með eftirfarandi skipun:

sudo systemctl status mariadb

Dæmi um úttak sem segir að allt sé í lagi:

Hvernig á að setja upp LEMP Stack á Debian 11 - Nginx MariaDB PHP

Eins og með Nginx, sjálfgefið, ætti MariaDB að vera virkt. Ef þetta er ekki raunin, til að ræsa og virkja MariaDB við kerfisræsingu, notaðu eftirfarandi (systemctl) terminal skipun:

sudo systemctl enable mariadb && sudo systemctl start mariadb

Dæmi um að virkja með góðum árangri (sammerki):

Synchronizing state of mariadb.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable mariadb

Til að athuga hvaða útgáfa af MariaDB er uppsett á Debian kerfinu þínu skaltu slá inn eftirfarandi skipun:

mysql --version

Dæmi úttak:

mysql  Ver 15.1 Distrib 10.5.11-MariaDB, for debian-linux-gnu (x86_64) using  EditLine wrapper

Fyrir notendur sem vilja nota uppfærðari stöðugri útgáfu eða aðalútgáfu af Nginx fyrir Debian 11, skoðaðu kennsluna okkar Hvernig á að setja upp MariaDB 10.6 á Debian 11.

Stillingar

Nú þegar MariaDB er í gangi á Debian kerfinu þínu þarftu að keyra öryggisforskriftina eftir uppsetningu þar sem sjálfgefna stillingarnar þarf að endurskoða þar sem þær eru oft ekki öruggar. Þetta er mjög mælt með því að sleppa ekki.

Fyrst skaltu keyra MariaDB örugga uppsetningarskipunina sem hér segir:

sudo mysql_secure_installation

Næst muntu fá leiðbeiningar þar sem þú ert beðinn um að slá inn (MariaDB rót lykilorðið). Í bili, ýttu á (KOMA INN) lykilorð þar sem rót lykilorðið er ekki stillt enn eins og hér að neðan:

Næst skaltu slá inn (Y) og ýttu á enter til að setja upp (Root) lykilorð eins og hér að neðan:

Næsta röð spurninga sem þú getur örugglega snert (KOMA INN), sem mun svara (Y) til allra næstu spurninga sem biðja þig um (fjarlægðu nafnlausa notendur, slökktu á ytri rótarinnskráningu og fjarlægðu prófunargagnagrunninn). Takið eftir (Y) er stór, sem þýðir að það er sjálfgefið svar þegar þú ýtir á (KOMA INN) lykillinn.

Hvernig á að setja upp LEMP Stack á Debian 11 - Nginx MariaDB PHP

Dæmi hér að neðan:

Yfirlit yfir það sem hefði átt að gera hér að ofan:

  • Að setja lykilorð fyrir rót reikninga.
  • Fjarlægir rótarreikninga sem eru aðgengilegir utan staðbundins hýsils.
  • Fjarlægir nafnlausa notendareikninga.
  • Fjarlægir prófunargagnagrunninn, sem nafnlausir notendur geta sjálfgefið nálgast.

Þetta skref er grunnkrafa fyrir MariaDB gagnagrunnsöryggi og ætti ekki að breyta eða sleppa því nema þú vitir hvað þú ert að gera.

Skráðu þig núna inn á MariaDB gagnagrunnsstöðina með eftirfarandi skipun:

sudo mysql -u root -p

Þú verður beðinn um að slá inn rótarlykilorðið sem þú stillir annaðhvort í uppsetningaruppsetningu eða öryggisskrift eftir uppsetningu. Þegar þú ert kominn inn í MySQL þjónustutilvikið geturðu framkvæmt eftirfarandi skipun sem próf til að sjá það í gangi.

Sláðu inn eftirfarandi SÝNA DATABASE skipun:

SHOW DATABASES;

Fyrir þá sem eru nýir í MySQL og MariaDB verða allar skipanir að enda á ";"

Dæmi:

Hvernig á að setja upp LEMP Stack á Debian 11 - Nginx MariaDB PHP

Til að hætta í MariaDB gagnagrunnsstöðinni skaltu slá inn (hætta;) eins og hér segir:

exit;

Fáðu


Uppsetning PHP (PHP-FPM)

Síðasti hlutinn til að setja upp í LEMP uppsetningunni þinni er PHP. Þú þarft að setja upp (PHP-FPM) sem er stytting á (FastCGI Process Manager). Ferlið við að setja upp síðasta skrefið er frekar einfalt; í lokin muntu búa til a .PHP próf skrá til að ganga úr skugga um að allt virki.

Kennslan fjallar um uppsetningu PHP-FPM 7.4. Fyrir notendur sem vilja setja upp uppfærðri útgáfu af PHP-FPM 7.4 eða nýju 8.0, 8.1, skoðaðu kennsluna okkar Hvernig á að setja upp PHP 8 á Debian 11 Bullseye. Ef þú setur upp PHP-FPM 8.0, til dæmis, úr kennslunni, farðu aftur hingað og slepptu uppsetningarhlutanum.

Til að setja PHP-FPM, notaðu eftirfarandi skipun:

sudo apt install php7.4 php7.4-fpm

Dæmi úttak:

Hvernig á að setja upp LEMP Stack á Debian 11 - Nginx MariaDB PHP

Gerð Y ýttu síðan á sláðu inn lykil til að halda áfram með uppsetninguna:

Valfrjálst geturðu síðan sett upp hvaða viðbætur sem þú velur. Hér að neðan eru nokkrar af þeim sem oftast eru notaðar:

sudo apt install php7.4-cli php7.4-curl php7.4-mysqlnd php7.4-gd php7.4-opcache php7.4-zip php7.4-intl php7.4-common php7.4-bcmath php7.4-imap php7.4-imagick php7.4-xmlrpc php7.4-json php7.4-readline php7.4-memcached php7.4-memcache php7.4-redis php7.4-mbstring php7.4-apcu php7.4-xml

Dæmi úttak:

Hvernig á að setja upp LEMP Stack á Debian 11 - Nginx MariaDB PHP

Gerð Y ýttu síðan á sláðu inn lykil til að halda áfram með uppsetninguna:

Athugaðu að til að herða á öryggi, og þú ættir í raun aðeins að setja upp pakkana hér að ofan, þú veist að þú þarft að nota til varúðarráðstafana.

Næst skaltu staðfesta PHP uppsetninguna með því að athuga útgáfuna og byggja uppsett:

php -v

Dæmi úttak:

PHP 7.4.21 (cli) (built: Jul  2 2021 03:59:48) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
    with Zend OPcache v7.4.21, Copyright (c), by Zend Technologies

Nú, eins og áður með að athuga stöðu annarra krafna í LEMP uppsetningunni þinni, notaðu eftirfarandi (systemctl) terminal skipun til að athuga stöðuna til að ganga úr skugga um að allt virki:

sudo systemctl status php7.4-fpm

Ef engar villur eru til staðar ættirðu að fá eftirfarandi úttak:

Hvernig á að setja upp LEMP Stack á Debian 11 - Nginx MariaDB PHP

Að lokum ætti PHP-FPM eins og Nginx og MariaDB áður að vera virkt sjálfgefið; ef ekki, til að virkja PHP-FPM við ræsingu kerfisins og til að koma því í gang, notaðu eftirfarandi (systemctl) stjórn:

sudo systemctl enable php7.4-fpm && sudo systemctl start php7.4-fpm

Dæmi um að virkja með góðum árangri (sammerki):

Synchronizing state of php7.4-fpm.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable php7.4-fpm

Búðu til Nginx netþjónablokk

Nginx netþjónablokk er ígildi sýndarhýsils í Apache, sem inniheldur stillingar fyrir Nginx vefþjóninn þinn sem bregst við almennum gestum. Hér að neðan er fullt dæmi um hvernig á að ná þessu með PHP-FPM í huga.

Búðu til netþjónablokkaskrár

The (.conf) skrár eru venjulega staðsettar í (síður í boði) og (virkt fyrir vefsvæði). Notendur sem koma frá mismunandi dreifingum myndu taka eftir því að þetta væri þegar uppsett; Hins vegar, fyrir Debian, þarftu að búa þá til.

Búðu til tvö sem þarf (síður) möppu með eftirfarandi skipun:

sudo mkdir /etc/nginx/sites-available && sudo mkdir /etc/nginx/sites-enabled

Breyttu Nginx stillingarskránni

Eftir að hafa búið til nauðsynlegar möppur skaltu breyta aðalstillingarskrá Nginx (nginx.conf) eins og hér segir:

sudo mkdir /etc/nginx/nginx.conf

Límdu svo næstu línur í (HTTP) kafla í (nginx.conf) stillingarskrá:

include /etc/nginx/sites-enabled/*.conf;
server_names_hash_bucket_size 64;

Athugaðu, (server_names_hash_bucket_size) eykur minni sem er úthlutað til að flokka lén.

Vistaðu stillingarnar með (CTRL+O) og þá (CTRL+X) að hætta.

Dæmi:

Búðu til stillingarskrá fyrir netþjónablokk

Búðu til blokkaskrá fyrir netþjón með hvaða textaritli sem er sem handbókin mun nota (nano):

sudo nano /etc/nginx/sites-available/example.com.conf

Næst þarftu að setja upp stillingarskrána með virku dæmi með PHP-FPM virkt.

Dæmi er að neðan til að afrita og líma. Athugasemd til að skipta um (netþjónnafn) með léninu þínu eða IP:

server {
 listen 80;
 listen [::]:80;
 server_name example.com www.example.com;
 root /usr/share/nginx/html/;
 index index.php index.html index.htm index.nginx-debian.html;

  location / {
   try_files $uri $uri/ /index.php;
 }

  location ~ \.php$ {
    try_files $uri =404;
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    fastcgi_pass unix:/run/php/php7.4-fpm.sock;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_param SCRIPT_NAME $fastcgi_script_name;
    fastcgi_index index.php;
    include fastcgi_params;
    fastcgi_intercept_errors on;	
 }

# A long browser cache lifetime can speed up repeat visits to your page
   location ~* \.(jpg|jpeg|gif|png|webp|svg|woff|woff2|ttf|css|js|ico|xml)$ {
    access_log        off;
    log_not_found     off;
    expires           360d;
 }

# disable access to hidden files
  location ~ /\.ht {
   access_log off;
   log_not_found off;
   deny all;
 }
}

Vistaðu nú netþjónblokkina með (CTRL+O), þá hætta með (CTRL+X).

Virkjaðu Nginx Server Block

Þú ert núna á lokastigi og nú er kominn tími til að virkja stillingarskrá fyrir netþjónblokk. Til að gera það þarftu að búa til táknrænan hlekk (sammerki) fyrir stillingarskrá miðlarablokkarinnar í (síður í boði) skrá til (virkt fyrir vefsvæði) skrá með eftirfarandi skipun:

sudo ln -s /etc/nginx/sites-available/example.com.conf /etc/nginx/sites-enabled/example.com.conf

Prófaðu Nginx netþjónablokk

Til að klára þetta ættirðu alltaf að keyra þurrt áður en þú endurræsir eða endurhleður Nginx þjónustuna þína, sem er mikilvægt ef þú vinnur í lifandi umhverfi. Sláðu inn eftirfarandi skipun til að prófa stillingarskrá netþjónsblokkar:

sudo nginx -t

Ef það eru engar villur færðu eftirfarandi úttak:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Næst skaltu opna netvafrann þinn og slá inn heimilisfang léns þíns (example.com) til að prófa hvort hægt sé að ná í netþjóninn þinn. Til hamingju, þú hefur búið til Nginx netþjónablokk sem er tilbúin til PHP-FPM.


Fáðu


Prófaðu PHP

Til að prófa PHP-FPM með Nginx vefþjóninum verður þú að búa til skrá í vefrótarskránni.

Fyrir leiðbeiningarnar muntu nefna skrána (info.php) eins og hér segir:

sudo nano /var/www/html/example.com/info.php

Límdu eftirfarandi (info.php) file:

<?php

phpinfo();

?>

Vistaðu skrána (CTRL+O), farðu síðan út (CTRL+X).

Sláðu inn í veffangastikuna í netvafranum þínum (IP-töluþjónn/info.php). Ef þú hefur sett upp Nginx á tölvunni þinni, notaðu sjálfgefið (127.0.0.1/info.php) or (localhost/info.php).

Þú ættir að sjá PHP upplýsingar netþjónsins þíns:

Hvernig á að setja upp LEMP Stack á Debian 11 - Nginx MariaDB PHP

Þessar upplýsingar sýna að PHP forskriftir geta keyrt almennilega með Nginx vefþjóninum.

Athugasemdir og niðurstaða

Í kennslunni hefurðu lært hvernig á að setja upp LEMP stafla til að tryggja MariaDB, prófa PHP og búa til Nginx netþjónablokk. Á heildina litið er LEMP töff valkostur. Nú hefur Nginx farið fram úr Apache þar sem mest notaði HTTP vefþjónahugbúnaðurinn rétt stilltur og afköstum stjórnað getur veitt vefþjóninum þínum öflugt forskot á aðrar uppsetningar.

Leyfi a Athugasemd