A LEMP Stack telepítése a Debian 11 Bullseye rendszeren
A LEMP nyílt forráskódú szoftverek gyűjteménye, amelyeket általában webalkalmazások kiszolgálására használnak. A LEMP kifejezés egy mozaikszó, amely egy Linux operációs rendszer konfigurációját jelöli egy Nginx (ejtsd: engine-x , innen az E a mozaikszóban) webszerverrel, MySQL vagy MariaDB adatbázisban tárolt webhelyadatokkal és PHP által feldolgozott dinamikus tartalommal. amelyet teljesítménye és méretezhetősége miatt széles körű webhelyek tárolására használnak.
A következő oktatóanyagból megtudhatja, hogyan telepítheti a LEMP-t (Nginx, MariaDB, PHP) a Debian 11 Bullseye rendszeren .
Tartalomjegyzék
Előfeltételek
- Ajánlott operációs rendszer: Debian 11 Bullseye.
- Felhasználói fiók: Sudo vagy root hozzáféréssel rendelkező felhasználói fiók.
Operációs rendszer frissítése
Frissítse Debian operációs rendszerét, hogy minden meglévő csomag naprakész legyen:
sudo apt update && sudo apt upgrade -y
Az oktatóprogram a sudo parancsot fogja használni , feltételezve, hogy a sudo állapota van .
A sudo állapotának ellenőrzéséhez fiókjában:
sudo whoami
Példa kimenet, amely a sudo állapotát mutatja:
[joshua@debian~]$ sudo whoami
root
Meglévő vagy új sudo fiók beállításához keresse fel a Felhasználó hozzáadása a Debian Sudoers programhoz című oktatóanyagunkat .
A root fiók használatához használja a következő parancsot a root jelszóval a bejelentkezéshez.
su
Függőségek telepítése
Az első lépés a telepítés során szükséges függőségek telepítése, a következő paranccsal telepítse, vagy ellenőrizze, hogy jelen vannak-e.
sudo apt-get install software-properties-common dirmngr ca-certificates apt-transport-https nano wget curl -y
A legújabb Nginx telepítése – (LEMP Stack)
A LEMP verem telepítésének elindításához telepítenie kell az Nginx webszervert. Egy módszer a legújabb Nginx fővonal vagy stabil telepítése az Ondřej Surý tárolóból, hogy a legfrissebb szoftverrel rendelkezzen. Sok Ubuntu felhasználó ismerné a PPA-ját, és ugyanezt megteheti a Debianban is.
Az Nginx mainline vagy stabil legújabb verziójának használatához először importálnia kell a tárat.
1. lehetőség. Fővonali adattár importálása:
curl -sSL https://packages.sury.org/nginx-mainline/README.txt | sudo bash -x
2. lehetőség Stabil adattár importálása:
curl -sSL https://packages.sury.org/nginx/README.txt | sudo bash -x
Frissítse az adattárat, hogy tükrözze az új változást:
sudo apt update
Most, hogy telepítette az Nginx tárolót és frissítette a lerakatlistát, telepítse az Nginxet a következőkkel:
sudo apt install nginx-core nginx-common nginx nginx-full
Példa kimenet:
Írja be az Y billentyűt , majd nyomja meg az ENTER billentyűt a folytatáshoz és a telepítés befejezéséhez.
Vegye figyelembe, hogy a telepítés során felkérést kaphat a meglévő /etc/nginx/nginx.conf konfigurációs fájl megtartására vagy cseréjére . Javasoljuk, hogy az (n) gomb megnyomásával megtartsa az aktuális konfigurációs fájlt . A karbantartó verziójától függetlenül másolat készül, és ezt a későbbiekben is ellenőrizheti.
Most ellenőrizze, hogy az Ondřej Surý lerakatból a legújabb Nginx telepítve lett-e az apt-cache policy paranccsal . Megjegyzés: az oktatóprogram példája telepítette az Nginx Mainline-t:
apt-cache policy nginx
Példa kimenet az Nginx Mainline számára :
Telepítse a Brotli támogatást
Észre fogja venni, hogy ebben a verzióban további modulok is elérhetők lesznek, különösen a brotli támogatás. A brotli engedélyezéséhez kövesse az alábbi lépéseket.
Nyissa meg az nginx.conf konfigurációs fájlt:
nano /etc/nginx/nginx.conf
Most adja hozzá a további sorokat a HTTP{} szakaszhoz:
brotli on;
brotli_comp_level 6;
brotli_static on;
brotli_types application/atom+xml application/javascript application/json application/rss+xml
application/vnd.ms-fontobject application/x-font-opentype application/x-font-truetype
application/x-font-ttf application/x-javascript application/xhtml+xml application/xml
font/eot font/opentype font/otf font/truetype image/svg+xml image/vnd.microsoft.icon
image/x-icon image/x-win-bitmap text/css text/javascript text/plain text/xml;
A brotli_comp_level 1 (legalacsonyabb) és 11 (legmagasabb) között állítható be . Általában a legtöbb szerver középen helyezkedik el, de ha a szerver egy szörnyeteg, állítsa 11-re, és figyelje a CPU-használati szintet.
Ezután tesztelje, hogy a módosítások megfelelően működnek-e, mielőtt életbe léptetik:
sudo nginx -t
Ha a módosítások megfelelően működnek, a következőket kell látnia:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Most hajtsa végre a változtatásokat a szerver újraindításával:
sudo systemctl restart nginx
Ezután engedélyezze az Nginx-et a rendszerindításkor:
sudo systemctl enable nginx
Végül ellenőrizze, hogy az Nginx megfelelően fut-e; ezt jó lenne kihagyni, ha az nginx -t parancsot futtattad, és nem kaptál hibát.
systemctl status nginx
Példa kimenet:
Telepítse a legújabb MariaDB szervert
Importálja a MariaDB 10.6/10.7 Repo verziót hivatalos Bash Script használatával
A hivatalos bash szkript gyakran a legjobb és legegyszerűbb módja a MariaDB telepítésének Debian 11-re, mivel azonnali frissítéseket kap, ha bármilyen biztonsági vagy új funkció elérhetővé válik. Ugyanez a módszer használható az alternatív verziók, például a MariaDB 10.5 telepítésére, valamint a MariaDB 10.8 és újabb verziók telepítésére a jövőben, módosítsa a mariadb-server-version={verziószám} .
A terminálon használja a következő parancsot.
1. lehetőség: MariaDB 10.6 lerakat importálása:
curl -LsS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash -s -- --mariadb-server-version=10.6 --skip-maxscale --skip-tools
2. lehetőség. MariaDB 10.7 lerakat importálása:
curl -LsS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash -s -- --mariadb-server-version=10.7 --skip-maxscale --skip-tools
Ha a parancs sikertelen, akkor valószínűleg elfelejtette telepíteni a curl csomagot.
sudo apt install curl -y
Példa kimenet (MariaDB 10.7):
Megjegyzés: a maxscale és az eszközök kimaradtak . Eltávolíthatja ezeket a jelzőket, de jelen pillanatban az eszközök nem támogatottak a Debian 11 Bullseye számára a jelen oktatóanyag idején, de ez megváltozik. A legtöbb felhasználónak nincs szüksége ezekre az extrákra.
Ez azt mutatja, hogy a lerakat sikeresen importálták. Ezután frissítse az APT tárhely listáját.
sudo apt update
Telepítse a MariaDB-t Debian Desktopra vagy kiszolgálóra
A MariaDB telepítéséhez telepítenie kell a klienst és a kiszolgálócsomagokat. Ez a következőképpen tehető meg:
sudo apt install mariadb-server mariadb-client
Példa kimenet (MariaDB 10.7) :
Írja be az Y -t , majd nyomja meg az ENTER billentyűt a telepítés folytatásához.
Erősítse meg a MariaDB telepítését a verzió és a build ellenőrzésével:
mariadb --version
Példa kimenet:
mariadb Ver 15.1 Distrib 10.7.1-MariaDB, for debian-linux-gnu (x86_64) using readline EditLine wrapper
Ne feledje, ez csak egy példa. Könnyen megváltoztathatja a MariaDB-t a szakasz elején leírtak szerint.
Ellenőrizze a MariaDB 10.7 szolgáltatás állapotát
Most telepítette a MariaDB-t, és a következő systemctl paranccsal ellenőrizheti az adatbázisszoftver állapotát:
systemctl status mariadb
Példa:
Alapértelmezés szerint a MariaDB állapota aktiválva lesz. Ha nem, indítsa el a MariaDB-t, és használja a következő parancsot:
sudo systemctl start mariadb
A MariaDB leállításához:
sudo systemctl stop mariadb
A MariaDB engedélyezése a rendszer indításakor:
sudo systemctl enable mariadb
A MariaDB letiltása a rendszer indításakor:
sudo systemctl disable mariadb
A MariaDB szolgáltatás újraindítása:
sudo systemctl restart mariadb
Biztonságos MariaDB biztonsági szkripttel
A MariaDB friss telepítésekor az alapértelmezett beállításokat a legtöbb szabvány gyengének tekinti, és aggodalomra ad okot, hogy lehetővé teszik a behatolást vagy a hackerek kihasználását. A megoldás a telepítés biztonsági parancsfájljának a MariaDB telepítésével való futtatása.
Először használja a következő parancsot a (mysql_secure_installation) elindításához :
sudo mysql_secure_installation
Ezután kövesse az alábbiakat:
- Jelszó beállítása root fiókokhoz.
- A helyi gazdagépen kívülről elérhető root fiókok eltávolítása.
- Névtelen felhasználói fiókok eltávolítása.
- A tesztadatbázis eltávolítása, amelyhez alapértelmezés szerint névtelen felhasználók is hozzáférhetnek.
Megjegyzés: az (Y) gombbal mindent eltávolíthat.
Példa:
[joshua@debian ~]$ sudo mariadb-secure-installation
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!
In order to log into MariaDB to secure it, we'll need the current
password for the root user. If you've just installed MariaDB, and
haven't set the root password yet, you should just press enter here.
Enter current password for root (enter for none):
OK, successfully used password, moving on...
Setting the root password or using the unix_socket ensures that nobody
can log into the MariaDB root user without the proper authorisation.
You already have your root account protected, so you can safely answer 'n'.
Switch to unix_socket authentication [Y/n] Y <---- Type Y then press the ENTER KEY.
Enabled successfully!
Reloading privilege tables..
... Success!
You already have your root account protected, so you can safely answer 'n'.
Change the root password? [Y/n] Y <---- Type Y then press the ENTER KEY.
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
... Success!
By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
production environment.
Remove anonymous users? [Y/n] Y <---- Type Y then press the ENTER KEY.
... Success!
Normally, root should only be allowed to connect from 'localhost'. This
ensures that someone cannot guess at the root password from the network.
Disallow root login remotely? [Y/n] Y <---- Type Y then press the ENTER KEY.
... Success!
By default, MariaDB comes with a database named 'test' that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment.
Remove test database and access to it? [Y/n] Y <---- Type Y then press the ENTER KEY.
- Dropping test database...
... Success!
- Removing privileges on test database...
... Success!
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.
Reload privilege tables now? [Y/n] Y <---- Type Y then press the ENTER KEY.
... Success!
Cleaning up...
All done! If you've completed all of the above steps, your MariaDB
installation should now be secure.
Thanks for using MariaDB!
A legújabb PHP (PHP-FPM) telepítése
Az oktatóanyag utolsó része a PHP telepítése lesz, amely az Nginx és a MariaDB, a középső ember között kommunikáló háttérprogram. A PHP 8.0 viszonylag stabillá válik, és már elérhetőek a PHP 8.1 újabb verziói.
Alapértelmezés szerint a PHP elérhető a Debian alapértelmezett tárolójában. Ahhoz azonban, hogy a legújabb verzió hasonló legyen az Nginxhez, az oktatóanyag Ondřej Surý legújabb PHP-verziójának importálására összpontosít. Ez mindig naprakész, még akkor is, ha új PHP-verziókat dobnak le.
Ondřej Surý PHP Repository importálása
Az első lépés a GPG kulcs importálása és telepítése a tároló hozzáadása előtt.
A terminálon használja a következő parancsot.
A terminálon használja a következő parancsot a telepítés megkezdéséhez.
curl -sSL https://packages.sury.org/php/README.txt | sudo bash -x
Ez a parancs telepíti a PHP-tárat, és frissíti az APT-tárat.
A frissítési parancs futtatása után előfordulhat, hogy egyes csomagok frissítésre szorulnak. Ezt a folytatás előtt feltétlenül tegye meg.
sudo apt upgrade
Telepítse a Choice PHP 7.4 / 8.0 / 8.1 FPM verzióját
Az Nginx nem tartalmaz natív PHP-feldolgozást, mint más webszerverek, például az Apache. A PHP fájlok kezeléséhez telepítenie kell a PHP-FPM „fastCGI folyamatkezelőt”.
Először ellenőrizze, hogy vannak-e frissítések a rendszeren, és telepítse a PHP-FPM-et, natív módon telepítve a szükséges PHP-csomagokat.
A PHP-FPM 7.4 telepítéséhez:
sudo apt install php7.4 php7.4-fpm php7.4-cli php7.4-curl php7.4-zip php7.4-mysql -y
A PHP-FPM 8.0 telepítéséhez:
sudo apt install php8.0 php8.0-fpm php8.0-cli php8.0-curl php8.0-zip php8.0-mysql -y
A PHP-FPM 8.1 telepítéséhez:
sudo apt install php8.1 php8.1-fpm php8.1-cli php8.1-curl php8.1-zip php8.1-mysql -y
A telepítés után a PHP-FPM szolgáltatás automatikusan elindul, és ellenőrizheti az állapotot, hogy megbizonyosodjon arról, hogy megfelelően működik.
Példa (PHP-FPM 8.1) :
systemctl status php8.1-fpm
Példa kimenet:
Emlékeztetőül, hogy megtudja, hogy a PHP-FPM melyik verziója van telepítve a rendszeren, használja a következő parancsot.
php --version
Példa kimenet:
PHP teszt információs oldal létrehozása
A PHP-FPM teszteléséhez az Nginx webszerverrel, létre kell hoznia egy fájlt a webroot könyvtárban.
Az útmutatóhoz a következőképpen nevezi el a fájlt (info.php) :
sudo nano /var/www/html/info.php
Illessze be a következőt az (info.php) fájlba:
<?php
phpinfo();
?>
Mentse el a fájlt (CTRL+O), majd lépjen ki (CTRL+X) .
Most az internetböngésző címsorába írja be : (server-ip-address/info.php) . Ha telepítette az Nginx-et a helyi számítógépére, használja az alapértelmezett (127.0.0.1/info.php) vagy (localhost/info.php) értéket .
Példa:
Ez az információ azt mutatja, hogy a PHP szkriptek megfelelően futhatnak az Nginx webszerverrel.
Biztonsági okokból távolítsa el a fájlt. Ehhez használja a következő parancsot:
sudo rm -f /var/www/html/info.php
Ha szeretné megtartani a fájlt jövőbeli célokra, adja hozzá a következőket az Nginx szerver blokkfájljához a szerver {} szakaszban:
location ^~ /info.php {
allow <YOUR IP ADDRESS>;
deny all;
}
Ez csak a megadott IP-cím számára teszi lehetővé a fájl elérését. Javasoljuk, hogy minél több rendszerinformációt rejtsen el a potenciális hackerek és rosszindulatú szereplők elől.
Hozzon létre egy Nginx szerverblokkot
Az Nginx szerverblokk az Apache virtuális gazdagépének megfelelője, amely tartalmazza az Nginx webszerver konfigurációját, amely válaszol a nyilvános látogatókra. Az alábbiakban egy teljes példa látható ennek elérésére a PHP-FPM szem előtt tartásával.
Szerverblokk-könyvtárak létrehozása
A (.conf) fájlok általában a (sites-available) és (sites-enabled) mappákban találhatók. A különböző disztribúciókból érkező felhasználók észreveszik, hogy ez már telepítve van; Rocky Linux esetén azonban létre kell hozni őket.
Hozza létre a két szükséges (sites) könyvtárat a következő paranccsal:
sudo mkdir /etc/nginx/sites-available && sudo mkdir /etc/nginx/sites-enabled
Szerkessze az Nginx konfigurációs fájlt
A szükséges könyvtárak létrehozása után szerkessze az Nginx fő konfigurációs fájlját (nginx.conf) az alábbiak szerint:
sudo nano /etc/nginx/nginx.conf
Ezután illessze be a következő néhány sort az (nginx.conf) konfigurációs fájl (HTTP) részébe :
include /etc/nginx/sites-enabled/*.conf;
server_names_hash_bucket_size 64;
Mentse el a konfigurációt a (CLTR+O) , majd a (CTRL+X) gombbal a kilépéshez.
Megjegyzés: (server_names_hash_bucket_size) növeli a tartománynevek elemzéséhez lefoglalt memóriát.
Szerverblokk konfigurációs fájl létrehozása
Most hozzon létre egy szerverblokk fájlt bármilyen szövegszerkesztővel, az útmutató a (nano) :
sudo nano /etc/nginx/sites-available/example.com.conf
Ezután be kell állítania a konfigurációs fájlt egy működő példával, amelyben engedélyezve van a PHP-FPM.
Az alábbiakban egy példa látható, amelyet másolhat és beilleszthet. Megjegyzés a (server_name) tartománynévvel vagy IP-címmel való helyettesítéséhez:
server {
listen 80;
listen [::]:80;
server_name example.com www.example.com;
root /var/www/html/example.com/;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ /index.php;
}
### DO NOT FORGET TO CHANGE php8.1-fpm.sock TO 8.0 OR 7.4 FOR ALTERNATIVE VERSIONS ###
location ~ .php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.1-fpm.sock;
}
# 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;
}
}
Most mentse el a szerverblokkot a (CTRL+O) gombbal, majd lépjen ki a (CTRL+X) gombbal .
Hozzon létre teszt céloldalt
Jó ötlet egy minta teszthely létrehozása. Az alábbiakban egy szabványos index.html tesztbeállítás látható:
Ha még nem hozta létre állandó vagy teszt webcímtárát:
sudo mkdir -p /var/www/html/example.com/
Konfigurálnia kell a jogosultságokat, és beállíthatja a $USER változóval bejelentkezett felhasználóként:
sudo chown -R $USER:$USER /var/www/html/example.com/
Az utolsó engedélybeállítás az, hogy a chmod 755 engedéllyel engedélyezze a nyilvánosság számára a webkönyvtár olvasását (hozzáférést a webhelyéhez):
sudo chmod -R 755 /var/www
Ezután hozza létre az index.html fájlt:
sudo nano /var/www/html/example.com/index.html
Illessze be az alábbi tartalmat. Amint látja, ez elég alap, mivel csak tesztelési célokra használjuk.
<html>
<head>
<title>You have reached Example.com!</title>
</head>
<body>
<h1>Congratulations! The server block is active! Linuxcapable.com</h1>
</body>
</html>
Mentse el a konfigurációt a (CLTR+O) , majd a (CTRL+X) gombbal a kilépéshez.
Engedélyezze az Nginx szerverblokkot
Most az utolsó szakaszban van, és itt az ideje, hogy engedélyezze a szerverblokk konfigurációs fájlját. Ehhez létre kell hoznia egy szimbolikus hivatkozást (symlink) a szerverblokk konfigurációs fájljához a (sites-available) könyvtárban a (sites-enabled) könyvtárhoz a következő paranccsal:
sudo ln -s /etc/nginx/sites-available/example.com.conf /etc/nginx/sites-enabled/example.com.conf
Tesztelje az Nginx szerverblokkot
A befejezés érdekében mindig végezzen száraz futást az Nginx szolgáltatás újraindítása vagy újratöltése előtt, ami kritikus fontosságú, ha élő környezetben dolgozik. Írja be a következő parancsot a szerverblokk konfigurációs fájljának teszteléséhez:
sudo nginx -t
Ha nincs hiba, a következőt kapja.
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Ezután nyissa meg az internetböngészőt, és adja meg domain címét (example.com) , hogy tesztelje, elérhető-e a szervere.
Gratulálunk, sikeresen létrehozott egy PHP-FPM-kompatibilis Nginx szerverblokkot .
Biztonságos Nginx a Let’s Encrypt SSL ingyenes tanúsítvánnyal
Ideális esetben az Nginxet HTTPS-en szeretné futtatni SSL-tanúsítvány használatával . Ennek legjobb módja a Let’s Encrypt, a nonprofit Internet Security Research Group (ISRG) által működtetett ingyenes, automatizált és nyílt tanúsító hatóság használata .
Először telepítse a certbot csomagot az alábbiak szerint:
sudo apt install python3-certbot-nginx -y
A telepítés után futtassa a következő parancsot a tanúsítvány létrehozásának megkezdéséhez:
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email you@example.com -d www.example.com
Ez az ideális beállítás magában foglalja a kényszerített HTTPS 301 átirányításokat, a Strict-Transport-Security fejlécet és az OCSP tűzést. Csak ügyeljen arra, hogy az e-mail címet és a domain nevet az Ön igényei szerint állítsa be.
Mostantól az URL-címe HTTPS://www.example.com lesz a HTTP://www.example.com helyett .
Ha a régi HTTP URL -t használja , az automatikusan átirányítja a HTTPS -re .
Megjegyzések és következtetések
Az oktatóanyagban megtanulta, hogyan kell telepíteni a LEMP-vermet a MariaDB biztonsága érdekében, tesztelni a PHP-t, és létrehozni egy Nginx-kiszolgálóblokkot. Összességében a LEMP egy okos lehetőség. Az Nginx most felülmúlta az Apache-t, mivel a leggyakrabban használt HTTP-webszerver-szoftver, megfelelően konfigurálva és kezelve a teljesítményt, döntő előnyt jelenthet a webszervernek más beállításokkal szemben.
0 hozzászólás