Debian 10 serwerinde LEMP-ni nädip gurmaly


“LEMP” stakasy, dinamiki programmalary ýerleşdirmek üçin adatça Linux serwerinde gurnalan açyk çeşmeli programma üpjünçiliginiň garyndysydyr. Bu adalga Linux operasiýa ulgamyny, Nginx web serwerini, MariaDB maglumat bazasyny we PHP programmirlemesini aňladýan gysgaça söz.

Bu\LEMP bukjasynda adatça maglumatlar bazasyny dolandyrmak ulgamy hökmünde MySQL bar bolsa-da, Debian ýaly käbir Linux paýlamalary - MariaDB-ni MySQL-iň ýerine çalyşma hökmünde ulanýar.

  1. Debian 10 (Buster) minimal serwerini nädip gurmaly

Bu makalada, MariaDB-ni maglumat bazasyny dolandyrmak platformasy hökmünde ulanyp, Debian 10 serwerinde LEMP gurşawyny nädip gurmalydygyny we gurnamalydygyny düşündireris.

Debian 10-da Nginx web serwerini gurmak

Nginx açyk çeşme we platforma, ýeňil, ýöne güýçli we HTTP we ters proksi serwerini, poçta proksi serwerini we modully arhitekturasy bolan umumy TCP/UDP proksi serwerini düzmek aňsat.

Käbir esasy aýratynlyklary statiki we indeks faýllaryna hyzmat etmegi öz içine alýar; “FastCGI”, “uwsgi”, “SCGI” we “Memcached” serwerleriniň keş keşdelenmegi, ýüküň deňagramlylygy we ýalňyşlyga çydamlylygy, SSL we TLS SNI goldawy, agyr we garaşlylyga esaslanýan HTTP/2 goldawy.

Nginx paketini gurmak üçin, görkezilişi ýaly Debian-yň apt paket dolandyryjysyny ulanyň.

# apt update 
# apt install nginx 

Nginx gurnamasy tamamlanandan soň, gurnawçy Nginx hyzmatyny häzirlikçe başlamak üçin ulgam ulgamyny işjeňleşdirer we ulgam ýüklemesinde awtomatiki başlamaga mümkinçilik berer. Aşakdaky systemctl buýrugyny ulanyp, Nginx-iň ýagdaýyny barlap bilersiňiz.

# systemctl status nginx

Şeýle hem, systemd astynda Nginx hyzmatynyň konfigurasiýasyny başlamak, täzeden başlamak, duruzmak we täzeden açmak üçin aşakdaky möhüm buýruklary ulanyp bilersiňiz.

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

Ondan soň, UFW gorag diwary işleýän bolsa (adatça deslapky ýagdaýda ýapylýar), Nginx-de gelýän traffige rugsat bermek üçin 80 (HTTP) we 443 (HTTPS) portuny açmaly.

# ufw allow 80
# ufw allow 443
# ufw status

Bu pursatda, Nginx-iň dogry gurlandygyny, işleýändigini we web sahypalaryna hyzmat edip biljekdigini barlamaly. Munuň üçin web brauzerini açyň we Nginx Debian default web sahypasyna girmek üçin aşakdaky URL-e görkeziň.

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

Debian 10-da MariaDB gurmak

Ondan soň, web sahypaňyz ýa-da web programmaňyz üçin maglumatlary saklamak we dolandyrmak üçin maglumat bazasy ulgamyny gurmaly. Debian 10, MySQL-iň açylyş çalyşmagy hökmünde, MariaDB-ni goldaýar.

MariaDB gurmak üçin aşakdaky buýrugy işlediň.

# apt install mariadb-server

Ondan soň, MariaDB hyzmat ýagdaýyny barlaň, sebäbi systemd tarapyndan awtomatiki usulda işledilýär we ulgam ýüklemesinden başlap, işleýändigini we işleýändigini anyklamak üçin aşakdaky buýrugy ulanyň.

# systemctl status mariadb

MariaDB hyzmatyny systemd astynda dolandyrmak (başlamak, täzeden başlamak, duruzmak we täzeden ýüklemek) üçin aşakdaky buýrugy ulanyp bilersiňiz.

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

Ondan soň, MariaDB ýerleşdirilmegi deslapky ýagdaýda howpsuz bolmaz. Maglumat bazasynyň howpsuzlygyny ýokarlandyrmak üçin paket bilen iberilýän gabyk skriptini işletmeli.

# mysql_secure_installation

Scriptazgy işledilenden soň, aşakdaky skrinshotda görkezilişi ýaly, MariaDB gurnamagynyň deslapky sazlamalaryny üýtgetmek üçin aşakdaky soraglaryň bir toparyny alar.

Debian 10-da PHP-FPM (Çalt prosess dolandyryjysy) gurmak

Apache we beýleki web serwerlerinden tapawutlylykda, Nginx PHP üçin ýerli goldaw bermeýär, sebäbi PHP sahypalaryna islegleri çözmek üçin PHP-FPM ulanýar. PHP-FPM, PHP üçin alternatiw FastCGI daemony bolup, web sahypasyna islegleri çözmek üçin işçi amallaryny ulanyp, ýokary ýükleri dolandyrmaga mümkinçilik berýär.

MariaDB/MySQL maglumat bazasy ulgamy bilen habarlaşmak üçin PHP-FPM 7.3 wersiýasyny we PHP modulyny gurmak üçin aşakdaky buýrugy işlediň.

# apt install php-fpm php-mysqli

PHP-FPM gurlandan soň, gurnawçy PHP-FPM hyzmatyny häzirlikçe başlamak we ulgam ýüklemesinde awtomatiki başlamaga mümkinçilik bermek üçin systemd-i işjeňleşdirer. Onuň işleýändigini ýa-da işlemeýändigini barlamak üçin aşakdaky buýrugy beriň.

# systemctl status php-fpm

Şeýle hem, PHP-FPM hyzmatynyň konfigurasiýasyny systemd astynda aşakdaky ýaly başlap, täzeden başlap we täzeden ýükläp bilersiňiz.

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

Ondan soň /etc/php/7.3/fpm/php.ini konfigurasiýa faýlynda käbir üýtgeşmeler girizip, PHP-FPM-ni goramaly.

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

; cgi.fix_pathinfo=1 gözläň, başda ; nyşanyny aýyryp, bahasyny 0 belläň. Bu, Nginx-iň PHP däl faýllaryň PHP görnüşinde ýerine ýetirilmegine ýol bermeýär.

cgi.fix_pathinfo=0

Düzgüne görä, PHP-FPM /etc/php/7.3/fpm/pool.d/www.conf konfigurasiýa faýlynda kesgitlenişi ýaly UNIX sokketini, /run/php/php7.3-fpm.sock diňlemek üçin düzülendir. PHP sahypalaryny gaýtadan işlemek we hyzmat etmek üçin bu rozetkany ulanmak üçin ähli serwer blokyňyzy (ýa-da wirtual hostlary) düzmeli.

Synag üçin Nginx deslapky serwer blok konfigurasiýa faýly/etc/nginx/sites-available/default ulanyp bilersiňiz.

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

PHP skriptlerini skrinshotda görkezilişi ýaly FastCGI serwerine geçirmek üçin aşakdaky bölümi gözläň.

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

Ondan soň, aşakdaky buýrugy ulanyp, Nginx konfigurasiýa gurluşynyň dogrudygyny barlaň.

# nginx -t

Nginx konfigurasiýasy gowy bolsa, ýakynda edilen üýtgeşmeleri ulanmak üçin php7.3-fpm we nginx hyzmatlaryny aşakdaky ýaly täzeden açyň.

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

PHP-FPM gaýtadan işlemegi Nginx-de barlamak

PHP-FPM we Nginx bilelikde işlemek üçin sazlandan soň, iki hyzmatyň PHP sahypalaryny müşderilere gaýtadan işläp we hyzmat edip biljekdigini barlamaly. Munuň üçin web DocumentRoot web sahypasynda aşakdaky ýaly ýönekeý PHP skriptini dörediň.

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

Ahyrynda, brauzer açyň we ulgamdaky PHP konfigurasiýalaryny görmek üçin aşakdaky adresi ýazyň, phpinfo() funksiýasy.

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

Bu makalada, Debian 10-da LEMP stakasyny nädip gurmalydygyny we sazlamalydygyny görkezdik, haýsydyr bir soragyňyz ýa-da pikiriňiz bar bolsa, aşakdaky düşündiriş formasy arkaly bize habar beriň.