“Rocky Linux 8” -e LEMP Stackini nädip gurmaly


LEMP, önümçilikde ýa-da ösüş sikliniň islendik döwründe web programmalaryny ýerleşdirmek we hyzmat etmek üçin köpçülikleýin ulanylýan açyk çeşmeli programma üpjünçiligini öz içine alýan meşhur ýygyndy.

LEMP terminologiýasy web brauzeri, MariaDB ýa-da MySQL - maglumatlar bazasy we dinamiki mazmuny gaýtadan işlemek üçin PHP bolan Linux, Nginx (hereketlendiriji X diýlip atlandyrylýar, şonuň üçin E) üçin gysgaça söz. LEMP ýygyndysy ýokary traffikli we ýokary göwrümli web programmalaryny we web sahypalaryny ýerleşdirmek üçin giňden ulanylýar.

Bu gollanmada, Rocky Linux 8.4-de LEMP stakasyny nädip gurmalydygyny öwrenersiňiz.

LEMP stakany gurnamaga başlamazdan ozal aşakdaky talaplaryň bardygyny anyklaň.

  • “Sudo” ulanyjysy bilen “Rocky Linux 8” -iň mysaly.
  • Rocky Linux mysalyna SSH giriş.

Geliň başlalyň…

1-nji ädim: Nginx-i Rocky Linux-a guruň

Birinji ädim, Nginx web serweri bolan LEMP stackiniň birinji komponentini gurmak. Ilki bilen paketleri täzeläň.

$ sudo dnf update -y

Täzelenme tamamlanandan soň, aşakdaky buýrugy işledip, Nginx-i guruň. Bu, web serwer tarapyndan talap edilýän beýleki garaşlylyklar bilen birlikde Nginx-i gurýar.

$ sudo dnf install nginx 

Nginx ýerinde bolansoň, ýükleme wagtyndan başlamaga we Nginx daemonyny başlamaga mümkinçilik beriň.

$ sudo systemctl enable nginx 
$ sudo systemctl start nginx 

Web serweriniň işleýändigini tassyklamak üçin buýrugy ýerine ýetiriň:

$ sudo systemctl status nginx

Çykyşdan, web serweriniň işleýändigini we işleýändigini aýdyp bileris.

Enougheterlik derejede gyzyklanýan bolsaňyz, Nginx wersiýasyny aşakdaky ýaly barlap bilersiňiz. Çykyş, Nginx 1.14.1 işleýändigimizi görkezýär.

$ nginx -v

nginx version: nginx/1.14.1

Mundan başga-da, brauzeriň görkezilen URL-e göz aýlap işleýändigini tassyklap bilersiňiz. Bu, hemme zadyň gowydygyny görkezýän adaty Nginx Hoş geldiňiz sahypasyny görkezer.

http://server-ip or domain name

Sahypany görmekde kynçylyk çekýän bolsaňyz, 80-nji porty açmagy ýa-da gorag diwaryndaky HTTP traffigine rugsat bermegi göz öňünde tutuň.

$ sudo firewall-cmd --zone=public --add-service=http --permanent 

Soňra diwar diwaryny täzeden açyň we sahypany täzeden ýükläň.

$ sudo firewall-cmd --reload

2-nji ädim: “Rocky Linux” -da MariaDB guruň

Bu gollanma üçin MariaDB maglumat bazasyny gurarys. Munuň sebäbi, MySQL-dan has ýokary edýän üpjün edýän amatly öndürijiligi we saklaýan hereketlendirijileriniň baýlygy bilen baglanyşyklydyr.

MariaDB maglumat bazasynyň serwerini gurmak üçin buýrugy işlediň:

$ sudo dnf install mariadb-server mariadb

Doneerine ýetirilenden soň, görkezilişi ýaly MariaDB-i işlediň we işlediň.

$ sudo systemctl enable mariadb
$ sudo systemctl start mariadb

Soňra onuň ýagdaýyny barlaň.

$ sudo systemctl status mariadb

MariaDB üçin deslapky sazlamalar ýeterlik derejede ygtybarly däl we maglumat bazanyňyzy aňsatlyk bilen bozup bilersiňiz. Iň esasy derejä girýänleriň öňüni almak üçin ätiýaçlyk hökmünde aşakdaky ýazgyny işlediň.

$ sudo mysql_secure_installation

Kök parolyny düzüň.

Galan teklipler üçin, näbelli ulanyjylary aýyrmak, uzakdaky kök girişini inkär etmek, synag bazasyny aýyrmak we ahyrynda edilen üýtgeşmeleri saklamak üçin Y ýazyň.

Maglumat bazasynyň serwerine girmek üçin buýrugy işlediň:

$ sudo mysql -u root -p

Paroly beriň we ENTER basyň.

3-nji ädim: “Rocky Linux” -da PHP guruň

Gurmak üçin iň soňky komponent, FastCGI Prosess Dolandyryjysyny aňladýan PHP-FPM arkaly PHP. Bu, iň oňat öndürijiligi we ýokary traffikli web sahypalary üçin howpsuzlygy üpjün edýän aýratynlyklary üpjün edýän PHP üçin täsirli we ýokary derejede ösen prosessor.

Başlamak üçin, iň soňky PHP wersiýalaryny üpjün edýän üçünji tarap mugt ammary bolan Remi ammaryny gurarys.

Remi ammaryny işletmek üçin buýrugy işlediň:

$ sudo dnf install dnf-utils http://rpms.remirepo.net/enterprise/remi-release-8.rpm

Remi ammary açyk bolansoň, görkezilen buýrugy ulanyp ýerleşdirilen PHP modullarynyň sanawyny gözden geçiriň.

$ sudo dnf module list php

Çykyşdan, deslapky wersiýanyň 7.2 - [d] belligi bilen görüp bileris. Şeýle-de bolsa, Remi 8.0 iň soňky moduly gurmakçy.

Şonuň üçin adaty PHP modullaryny täzeden düzüň we iň soňky Remi PHP modulyny işlediň.

$ sudo dnf module list reset php
$ sudo dnf module enable php:remi-8.0

Ondan soň ulgamy täzeläň we PHP we PHP-FPM-i islän PHP giňeltmeleriňiz bilen bilelikde guruň.

$ sudo dnf install php php-fpm php-gd php-mysqlnd php-cli php-opcache

Gurmak gutaransoň, görkezilişi ýaly PHP-FPM-i işlediň we işe giriziň.

$ sudo systemctl enable php-fpm
$ sudo systemctl start php-fpm

Ondan soň, PHP-FPM-iň işleýän ýagdaýyny barlaň.

$ sudo systemctl status php-fpm

Adatça, PHP-FPM Apache ulanyjysy hökmünde işleýär, ýöne Nginx ulanýandygymyz üçin ony Nginx-e bellemeli. Şonuň üçin aşakdaky konfigurasiýa faýly açyň.

$ sudo vim /etc/php-fpm.d/www.conf

Ulanyjyny we toparyny Nginx-e düzüň.

user = nginx
Group = nginx

Ondan soň, PHP-FPM daemonyny täzeden ýükläň.

$ sudo systemctl reload php-fpm

PHP-iň iň soňky wersiýasyny gurnandygymyzy tassyklamak üçin buýrugy işlediň.

$ php -v

Testin PHP-iň başga bir amatly usuly, ýönekeý PHP faýly döretmek we/usr/share/nginx/html-de ýerleşýän webroot katalogyna ýerleşdirmekdir. Şeýlelik bilen,/usr/share/nginx/html webroot katalogynda ýönekeý info.php faýly dörediň.

$ sudo vim /usr/share/nginx/html/info.php

Aşakdaky mazmuny goşuň we faýly ýazdyryň.

<?php

phpinfo();

?>

Üýtgeşmeleri amala aşyrmak üçin Nginx web serwerini täzeden açyň.

$ sudo systemctl restart nginx

Ahyrynda aşakdaky URL-e giriň.

http://server-ip/info.php

Gurlan PHP wersiýasy barada beýleki PHP giňeltmeleri bilen birlikde jikme-jik maglumatly web sahypasy görkeziler.

Şu wagt LEMP gurnamagymyz tamamlandy. Indiki ädimde, Nginx serwer blokuny düzüp, bir sahypa saýty ýerleşdireris.

3-nji ädim: “Rocky Linux” -da Nginx serwer blokuny sazlaň

Serwer bloky dolandyryjylara dürli sahypa resminama kök kataloglaryny kesgitlemek arkaly bir serwerde birnäçe web sahypasyny ýerleşdirmäge mümkinçilik berýär. Bular web sahypasynyň faýllaryny öz içine alýan kataloglar.

Bu ýerde, nusga web sahypasyny ýerleşdirmek üçin ýekeje Nginx serwer blok faýly dörederis.

Ilki bilen, sahypa girýänler üçin elýeterli boljak sahypanyň maglumatlary öz içine alýan resminamanyň katalogyny dörediň. Mysal.com atly domeniňiz bar öýdýän. Sahypanyň domen katalogyny aşakdaky ýaly dörediň. Mysal.com-ny sahypaňyzyň doly kwalifikasiýa domen ady ýa-da hasaba alnan domen bilen çalyşmagy unutmaň.

$ sudo mkdir -p /var/www/example.com/html

Domeniň katalog gurluşy indi sahypanyň faýllaryny ýerleşdirmek üçin düzüldi. Häzirki wagtda faýllara eýe bolan kök ulanyjy. Faýlyň eýesi bolan adaty ulanyjy ýaly eýeçiligi kesgitlemeli.

Faýllaryň eýeçiligini häzirki giren ulanyja üýtgetmek üçin, “chown” buýrugyny ulanyň.

$ sudo chown -R $USER:$USER /var/www/example.com/html

$USER üýtgeýjisi häzirki giren ulanyjynyň bahasyny alýar we html faýllaryna we kiçi bukjalaryna ulanyjynyň eýeçiligini berýär. Mundan başga-da, sahypa girýänleriň sahypa sahypalaryna girip bilmegi üçin umumy web kök katalogyna okamak üçin rugsat beriň.

$ sudo chmod -R 755 /var/www

Sahypanyň katalogy indi sahypanyň web sahypalaryna hyzmat etmek üçin gowy düzüldi.

Geliň indi synag synag sahypasyny döredeliň. Domeniň html katalogynda gaty esasy index.html faýly dörederis.

$ sudo vim /var/www/example.com/html/index.html

Mazmuny aşakda goýuň. Görşüňiz ýaly, bu gaty esasy, sebäbi biz ony diňe synag maksatly ulanýarys.

<html>
  <head>
    <title>Welcome to Example.com!</title>
  </head>
  <body>
    <h1>Success! The server block is active!</h1>
  </body>
</html>

HTML faýly ýazdyryň we çykyň.

Serwer blok faýly, sahypanyň konfigurasiýasyny öz içine alýan faýl. Nginx web serweriniň, sahypa girýänleriň haýyşlaryna nähili jogap berýändigini düşündirýär. Iki katalog döretmek bilen başlarys:

  • /etc/nginx/sites-available - Bu serwer blok faýlyny saklaýan katalog.
  • /etc/nginx/sites -abled - Katalog Nginx-a serwer blok faýlynyň haýyşlara hyzmat etmäge taýýardygyny habar berýär.

Şonuň üçin kataloglary aşakdaky ýaly dörediň:

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

Ondan soň, Nginx-iň esasy konfigurasiýa faýlyny redaktirläň.

$ sudo mkdir /etc/nginx/nginx.conf

Aşakdaky setirleri goýuň. Birinji setirde goşmaça konfigurasiýa faýllaryny öz içine alýan kataloga barýan ýol kesgitlenýär. Ikinji setir, domen atlaryny derňemek üçin bölünen ýady artdyrýar.

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

Saklaň we çykyň.

Ondan soň serwer blok faýly dörediň.

$ sudo vim /etc/nginx/sites-available/example.com.conf

Mazmuny aşakda goýuň. Mysal.com-ny doly kwalifikasiýaly domen adyňyz (FQDN) ýa-da serwer IP adresi bilen çalyşyň.

server {
    listen  80;

    server_name example.com www.example.com;

    location / {
        root  /var/www/example.com/html;
        index  index.html index.htm;
        try_files $uri $uri/ =404;
    }

    error_page  500 502 503 504  /50x.html;
    location = /50x.html {
        root  /usr/share/nginx/html;
    }
}

Faýly ýazdyryň we çykyň.

Netijede, serwer blok faýlyny işletmeli. Munuň üçin serwer blok faýly üçin saýtlar bilen işleýän kataloga simwoliki baglanyşyk dörederis.

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

Soňra üýtgeşmeler girizilmegi üçin Nginx-i täzeden açyň.

$ sudo systemctl restart nginx

Sazlamany barlamak üçin brauzeriňizi işe giriziň we sahypaňyzyň domenine giriň

http://example.com

Bu, 3-nji ädimde sazlanyşymyz ýaly serwer blokynyň sahypasyny görkezmeli.

Bu bolsa ony jemleýär. Bu gollanmada, sizi Rocky Linux 8-de LEMP stakany gurnamagyň üstünden bardyk we ýörite web sahypasyny ýerleşdiren ýerimizde serwer blok faýlyny döretmek we düzmek üçin bir ädim öňe gitdik.