Namestite LEMP - Nginx, PHP, MariaDB in PhpMyAdmin v OpenSUSE


LEMP ali Linux, Engine-x, MySQL in PHP je sveženj programske opreme, sestavljen iz odprtokodne programske opreme, nameščene v operacijskem sistemu Linux za izvajanje spletnih aplikacij na osnovi PHP, ki jih poganja strežnik HTTP Nginx in sistem za upravljanje baz podatkov MySQL/MariaDB.

Ta vadnica vas bo vodila, kako namestiti niz LEMP z Nginxom, MariaDB, PHP, PHP-FPM in PhpMyAdminom na strežniških/namiznih izdajah OpenSuse.

Namestitev strežnika HTTP Nginx

Nginx je hiter in zanesljiv strežnik HTTP in proxy, ki lahko prenese večjo obremenitev zahtev HTTP. Pri obravnavi zahtev uporablja asinhroni pristop, ki ga vodijo dogodki, njegova modularna arhitektura, ki temelji na dogodkih, pa lahko pri večjih obremenitvah zagotovi bolj predvidljivo zmogljivost.

Če želite namestiti Nginx na OpenSuse, zaženite naslednji ukaz.

$ sudo zypper install nginx

Ko je Nginx nameščen, lahko zaenkrat zaženete storitev, nato pa mu omogočite samodejni zagon ob zagonu in preverite stanje Nginxa z izvajanjem naslednjih ukazov.

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

Na tej točki bi moral biti spletni strežnik Nginx zagnan, stanje lahko preverite tudi z ukazom netstat, kot je prikazano.

$ sudo netstat -tlpn | grep nginx

Zdaj moramo preveriti, ali namestitev Nginx deluje dobro. Za razliko od drugih distribucij Linuxa v sistemu openSUSE Nginx nima standardnega dokumenta index.html v korenski mapi spleta. V korenskem spletnem imeniku \"/srv/www/htdocs \" , kot je prikazano, moramo ustvariti novo datoteko index.html .

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

Če imate nameščen firewalld, morate odpreti vrata 80 in 443, da omogočite spletni promet na požarnem zidu.

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

Nato odprite spletni brskalnik in se pomaknite do naslova http:// localhost in preverite stran Nginx.

Namestitev MariaDB Database Server

MariaDB je brezplačna in odprtokodna vilica sistema za upravljanje relacijskih baz podatkov MySQL. Razvili so ga prvotni razvijalci MySQL in naj bi ostal odprtokoden. MariaDB je hiter, prilagodljiv in robusten, z bogatim ekosistemom pogonov za shranjevanje, vtičniki in številnimi drugimi orodji pa je zelo vsestranski za najrazličnejše primere uporabe.

Če želite namestiti MariaDB na OpenSuse, zaženite naslednji ukaz.

$ sudo zypper install mariadb mariadb-client 

Nato zaenkrat zaženite storitev MariaDB, nato pa ji omogočite samodejni zagon ob zagonu in preverite njeno stanje.

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

Naslednji kritični korak v tem razdelku je zavarovanje namestitve strežnika MariaDB. Zato zaženite varnostni skript, ki je priložen paketu MariaDB, kot je prikazano.

Opomba: Izvajanje varnostnega skripta MariaDB in vseh njegovih delov je zelo priporočljivo za vse strežnike MariaDB v proizvodnji.

$ sudo mysql_secure_installation 

Po zagonu skripta natančno preberite opis na vsakem koraku. Nastaviti morate geslo korenskega uporabnika, odstraniti anonimne uporabnike, onemogočiti oddaljeni korenski dostop, odstraniti preskusno bazo podatkov in dostop do nje ter nazadnje znova naložiti tabelo s pravicami.

Namestitev in konfiguracija PHP in PHP-FPM

PHP-FPM (okrajšava za PHP FastCGI Process Manager) je alternativni demon FastCGI za PHP z nekaterimi dodatnimi funkcijami in zasnovan za velike obremenitve. V ta namen vzdržuje bazene (delavce, ki se lahko odzovejo na zahteve PHP). Pomembno je, da je za okolja PHP za več uporabnikov hitrejši od tradicionalnih metod, ki temeljijo na CGI, na primer SUPHP.

Če želite namestiti PHP in PHP-FPM skupaj s potrebnimi moduli, zaženite naslednji ukaz.

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

Preden nadaljujemo z zagonom storitve PHP-FPM, moramo iz privzetih datotek, ki so na voljo med namestitvijo, ustvariti zahtevane konfiguracijske datoteke in konfigurirati storitev, pripravljeno za delovanje.

$ 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

Nato odprite glavno konfiguracijsko datoteko php-fpm.conf za urejanje.

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

Odkomentirajte naslednjo vrstico pri vrstici številka 24, kot je prikazano.

error_log = log/php-fpm.log

Shranite in zaprite datoteko.

Nato moramo v konfiguracijski datoteki www.conf določiti pravilne nastavitve za konfigurirana področja.

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

Najprej konfigurirajte lastnika Unix in lastnika skupin procesov za uporabnika in skupino Nginx. To naredite tako, da spremenite vrednosti parametrov uporabnika in skupine iz nobody v nginx .

user = nginx
group = nginx

Zdaj shranite spremembe v datoteko in jo zapustite.

Poleg tega je treba izvesti še eno pomembnejšo konfiguracijo, ki varuje PHP-FPM v datoteki /etc/php/cli/php.ini .

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

Poiščite vrstico ; cgi.fix_pathinfo = 1 in jo spremenite v.

cgi.fix_pathinfo=0

Shranite spremembe v datoteko in zapustite.

Nato zaenkrat zaženite storitev PHP-FPM, nato pa ji omogočite samodejni zagon ob zagonu in preverite njeno stanje.

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

Konfiguriranje Nginxa za delo s PHP-FPM

Na tej točki moramo konfigurirati Nginx za delo s PHP-FPM v privzeti konfiguracijski datoteki Nginx.

$ sudo vim /etc/nginx/nginx.conf

Nato poiščite naslednji razdelek in na seznam pričakovanih datotek indeksov dodajte index.php .

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

Poiščite tudi naslednji razdelek (ki ga je treba komentirati) in ga komentirajte. Ta razdelek se uporablja za posredovanje skriptov PHP strežniku FastCGI, ki posluša 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; 
       }

Shranite spremembe v datoteko in zapustite.

Testiranje Nginxa in PHP-FPM

Naslednji korak je preizkusiti, ali Nginx dobro deluje v povezavi s PHP-FPM tako, da ustvarite novo preskusno datoteko PHP v imeniku DocumentRoot, kot je prikazano.

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

Zdaj moramo preveriti, ali je konfiguracija Nginx pravilna, preden nadaljujemo z ponovnim zagonom storitve.

$ sudo nginx -t

Če je konfiguracijska sintaksa Nginx v redu, nadaljujte in znova zaženite storitve Nginx in PHP-FPM, da bodo nedavne spremembe začele učinkovati.

$ sudo systemctl restart nginx php-fpm

Zdaj odprite spletni brskalnik in se pomaknite do naslova http://localhost/info.php , da preverite konfiguracijo PHP, kot je prikazano na naslednjem posnetku zaslona.

Namestitev in konfiguriranje PhpMyAdmin

phpMyAdmin je brezplačno, preprosto in priljubljeno orodje, napisano v PHP, ki je preprosto za uporabo in je zasnovano za upravljanje strežnika MySQL prek spleta. Podpira široko paleto operacij v MySQL in MariaDB.

Če želite namestiti phpMyAdmin na OpenSuse, zaženite naslednji ukaz.

$ sudo zypper install phpMyAdmin

Ko je namestitev končana, ustvarite novo konfiguracijsko datoteko vhost za dostop do phpMyAdmin, kot je prikazano.

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

V datoteko dodajte naslednje konfiguracije.

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; 
   } 
} 

Shranite spremembe in zaprite datoteko. Nato znova zaženite storitev Nginx z naslednjim ukazom.

$ sudo systemctl restart nginx

Zdaj pojdite v spletni brskalnik in vnesite naslov http:// localhost/phpMyAdmin. Stran za prijavo phpMyAdmin bi se morala prikazati, kot je prikazano na naslednjem posnetku zaslona. Vnesite korenske podatke za prijavo uporabnika baze podatkov in kliknite Pojdi.

To je vse! V tej vadnici smo vam razložili, kako namestite niz LEMP z Nginxom, MariaDB, PHP, PHP-FPM in PhpMyAdmin na strežniške/namizne izdaje OpenSuse. Če imate med namestitvijo kakršne koli težave, zastavite svoja vprašanja preko spodnjega obrazca za komentar.