Įdiekite LEMP - Nginx, PHP, MariaDB ir PhpMyAdmin OpenSUSE


Stack LEMP arba Linux, Engine-x, MySQL ir PHP yra programinė įranga paketas, kurį sudaro atvirojo kodo programinė įranga, įdiegta „Linux“ operacinėje sistemoje, skirta paleisti PHP pagrįstas žiniatinklio programas, kurias maitina Nginx HTTP serveris ir MySQL/MariaDB duomenų bazių valdymo sistema.

Taip pat skaitykite: įdiekite LAMP – Apache, PHP, MariaDB ir PhpMyAdmin sistemoje OpenSUSE

Šioje pamokoje sužinosite, kaip įdiegti LEMP rinkinį su Nginx, MariaDB, PHP, PHP-FPM ir PhpMyAdmin OpenSuse serverio/darbalaukio leidimuose.

Nginx HTTP serverio diegimas

Nginx yra greitas ir patikimas HTTP ir tarpinis serveris, galintis apdoroti didesnę HTTP užklausų apkrovą. Jis naudoja asinchroninį įvykiais pagrįstą metodą užklausoms tvarkyti, o modulinė įvykiais pagrįsta architektūra gali užtikrinti labiau nuspėjamą veikimą esant didelėms apkrovoms.

Norėdami įdiegti Nginx OpenSuse, paleiskite šią komandą.

sudo zypper install nginx

Įdiegę Nginx galite paleisti paslaugą, tada įgalinti jos automatinį paleidimą įkrovos metu ir patikrinti Nginx būseną vykdydami šias komandas.

sudo systemctl start nginx
sudo systemctl enable nginx
sudo systemctl status nginx

Taip pat skaitykite: 10 dažniausiai naudojamų „Nginx“ komandų, kurias turi žinoti kiekvienas „Linux“ vartotojas

Šiuo metu „Nginx“ žiniatinklio serveris turėtų būti sukurtas ir veikia, taip pat galite patikrinti būseną naudodami komandą „netstat“, kaip parodyta.

sudo netstat -tlpn | grep nginx

Dabar turime patikrinti, ar Nginx diegimas veikia gerai. Skirtingai nuo kitų Linux platinimų, openSUSE, Nginx žiniatinklio šakniniame aplanke neturi standartinio index.html dokumento. Turime sukurti naują index.html failą šakniniame žiniatinklio kataloge "/srv/www/htdocs", kaip parodyta.

echo "<h1>Nginx is running fine on openSUSE Leap</h1>" | sudo tee /srv/www/htdocs/index.html

Jei esate įdiegę ugniasienę, turite atidaryti prievadus 80 ir 443, kad užkardoje būtų leidžiamas žiniatinklio srautas.

sudo firewall-cmd --permanent --add-port=80/tcp
sudo firewall-cmd --permanent --add-port=443/tcp
sudo firewall-cmd --reload

Tada atidarykite žiniatinklio naršyklę ir eikite į adresą http://localhost ir patvirtinkite „Nginx“ puslapį.

MariaDB duomenų bazės serverio diegimas

MariaDB yra nemokama atvirojo kodo MySQL reliacinės duomenų bazės valdymo sistemos šakutė. Jį sukūrė pirminiai MySQL kūrėjai ir ketinama likti atviro kodo. MariaDB yra greita, keičiamo dydžio ir tvirta, turinti turtingą saugojimo variklių, papildinių ir daugelio kitų įrankių ekosistemą, todėl ji yra labai universali įvairiems naudojimo atvejams.

Norėdami įdiegti MariaDB OpenSuse, paleiskite šią komandą.

sudo zypper install mariadb mariadb-client 

Tada paleiskite „MariaDB“ paslaugą dabar, tada įgalinkite ją automatiškai paleisti įkrovos metu ir patikrinkite jos būseną.

sudo systemctl start mariadb 
sudo systemctl enable mariadb 
sudo systemctl status mariadb 

Kitas svarbus žingsnis šiame skyriuje yra MariaDB serverio diegimo apsauga. Todėl paleiskite saugos scenarijų, kuris pristatomas kartu su MariaDB paketu, kaip parodyta.

Pastaba: paleisti MariaDB saugos scenarijų ir visas jo dalis labai rekomenduojama visuose gamybiniuose MariaDB serveriuose.

sudo mysql_secure_installation 

Paleidę scenarijų, atidžiai perskaitykite kiekvieno veiksmo aprašymą. Turėtumėte nustatyti root vartotojo slaptažodį, pašalinti anoniminius vartotojus, išjungti nuotolinę root prieigą, pašalinti bandomąją duomenų bazę ir prieigą prie jos ir galiausiai iš naujo įkelti privilegijų lentelę.

PHP ir PHP-FPM diegimas ir konfigūravimas

PHP-FPM (sutrumpintas iš PHP FastCGI Process Manager) yra alternatyvus FastCGI demonas, skirtas PHP su kai kuriomis papildomomis funkcijomis ir skirtas atlaikyti dideles apkrovas. Tam tikslui ji palaiko telkinius (darbuotojus, kurie gali atsakyti į PHP užklausas). Svarbu tai, kad jis yra greitesnis nei tradiciniai CGI pagrįsti metodai, pvz., SUPHP, skirta kelių vartotojų PHP aplinkoms.

Norėdami įdiegti PHP ir PHP-FPM kartu su reikiamais moduliais, paleiskite šią komandą.

sudo zypper install php php-mysql php-fpm php-gd php-mbstring

Prieš pradėdami naudotis PHP-FPM paslauga, turime sukurti reikiamus konfigūracijos failus iš numatytųjų failų, pateiktų diegimo metu, ir sukonfigūruoti paslaugą, paruoštą darbui.

sudo cp /etc/php7/fpm/php-fpm.conf.default  /etc/php7/fpm/php-fpm.conf 
sudo cp /etc/php7/fpm/php-fpm.d/www.conf.default /etc/php7/fpm/php-fpm.d/www.conf

Tada atidarykite pagrindinį php-fpm.conf konfigūracijos failą redaguoti.

sudo vim /etc/php7/fpm/php-fpm.conf 

Panaikinkite šios eilutės komentarą prie 24 eilutės, kaip parodyta.

error_log = log/php-fpm.log

Išsaugokite ir uždarykite failą.

Toliau turime apibrėžti teisingus sukonfigūruotų telkinių nustatymus www.conf konfigūracijos faile.

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

Pirmiausia sukonfigūruokite „Unix“ savininką ir procesų grupės savininką „Nginx“ vartotojui ir grupei. Atlikite tai pakeisdami vartotojo ir grupės parametrų reikšmes iš nobody į nginx.

user = nginx
group = nginx

Dabar išsaugokite failo pakeitimus ir išeikite iš jo.

Be to, reikia atlikti dar vieną svarbią konfigūraciją, kuri apsaugo PHP-FPM faile /etc/php/cli/php.ini.

sudo vim /etc/php7/cli/php.ini

Ieškokite eilutės ;cgi.fix_pathinfo=1 ir pakeiskite ją į.

cgi.fix_pathinfo=0

Išsaugokite pakeitimus faile ir išeikite.

Tada kol kas paleiskite PHP-FPM paslaugą, tada įgalinkite ją automatiškai paleisti įkrovos metu ir patikrinkite jos būseną.

sudo systemctl start php-fpm
sudo systemctl enable php-fpm
sudo systemctl status php-fpm

„Nginx“ konfigūravimas darbui su PHP-FPM

Šiuo metu turime sukonfigūruoti Nginx, kad jis veiktų su PHP-FPM numatytame Nginx konfigūracijos faile.

sudo vim /etc/nginx/nginx.conf

Tada suraskite kitą skyrių ir įtraukite index.php į numatomų indekso failų sąrašą.

location / { 
           root   /srv/www/htdocs/; 
           index  index.php index.html index.htm ; 
       }

Taip pat suraskite kitą skyrių (kuris turėtų būti pakomentuotas) ir panaikinkite jo komentarą. Ši skiltis naudojama PHP scenarijus perduoti FastCGI serveriui, kuris klausosi 127.0.0.1:9000.

location ~ \.php$ { 
       root           /srv/www/htdocs/; 
       fastcgi_pass   127.0.0.1:9000; 
       fastcgi_index  index.php; 
       fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name; 
       include        fastcgi_params; 
       }

Išsaugokite pakeitimus faile ir išeikite.

Nginx ir PHP-FPM testavimas

Kitas veiksmas – patikrinti, ar Nginx gerai veikia kartu su PHP-FPM, sukuriant naują PHP bandomąjį failą DocumentRoot kataloge kaip parodyta.

echo "<?php phpinfo(); ?>" | sudo tee /srv/www/htdocs/info.php

Dabar turime patikrinti, ar „Nginx“ konfigūracija yra teisinga, kaip nurodyta toliau, prieš pradėdami iš naujo paleisti paslaugą.

sudo nginx -t

Jei „Nginx“ konfigūracijos sintaksė tinkama, iš naujo paleiskite Nginx ir PHP-FPM paslaugas, kad įsigaliotų naujausi pakeitimai.

sudo systemctl restart nginx php-fpm

Dabar atidarykite žiniatinklio naršyklę ir eikite į adresą http://localhost/info.php, kad patikrintumėte PHP konfigūraciją, kaip parodyta toliau pateiktoje ekrano kopijoje.

„PhpMyAdmin“ diegimas ir konfigūravimas

phpMyAdmin yra nemokamas, paprastas, lengvai naudojamas ir populiarus įrankis, parašytas PHP, sukurtas MySQL serveriui administruoti žiniatinklyje. Jis teikia daugybę operacijų MySQL ir MariaDB.

Norėdami įdiegti phpMyAdmin OpenSuse, paleiskite šią komandą.

sudo zypper install phpMyAdmin

Baigę diegti, sukurkite naują vhost konfigūracijos failą, kad galėtumėte pasiekti phpMyAdmin, kaip parodyta.

sudo vim /etc/nginx/vhosts.d/phpmyadmin.conf

Pridėkite šią konfigūraciją prie failo.

server { 
   listen 80; 

   server_name localhost/phpMyAdmin; 

  root /srv/www/htdocs/phpMyAdmin; 

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

   location ~ \.php$ { 
       try_files $uri =404; 
       fastcgi_pass 127.0.0.1:9000; 
       fastcgi_index index.php; 
       include fastcgi_params; 
   } 
} 

Išsaugokite pakeitimus ir uždarykite failą. Tada iš naujo paleiskite Nginx paslaugą naudodami šią komandą.

sudo systemctl restart nginx

Dabar eikite į savo žiniatinklio naršyklę ir įveskite adresą http://localhost/phpMyAdmin. Turi būti rodomas phpMyAdmin prisijungimo puslapis, kaip parodyta toliau esančioje ekrano kopijoje. Įveskite savo duomenų bazės šakninio vartotojo prisijungimo duomenis ir spustelėkite Eiti.

Tai viskas! Šioje mokymo programoje paaiškinome, kaip įdiegti LEMP krūvą su Nginx, MariaDB, PHP, PHP-FPM ir PhpMyAdmin OpenSuse serverio/darbalaukio leidimuose. Jei sąrankos metu susiduriate su problemomis, užduokite klausimus naudodami toliau pateiktą komentarų formą.