Sakinisha LEMP - Nginx, PHP, MariaDB na PhpMyAdmin katika OpenSUSE


LEMP au Linux, Engine-x, MySQL na PHP ni kifurushi cha programu kinachoundwa na programu huria iliyosakinishwa kwenye mfumo wa uendeshaji wa Linux kwa ajili ya kuendesha programu za wavuti za PHP zinazoendeshwa na seva ya Nginx HTTP na mfumo wa usimamizi wa hifadhidata wa MySQL/MariaDB.

Mafunzo haya yatakuongoza jinsi ya kusakinisha rundo la LEMP na Nginx, MariaDB, PHP, PHP-FPM na PhpMyAdmin kwenye seva/matoleo ya mezani ya OpenSuse.

Inasakinisha Seva ya HTTP ya Nginx

Nginx ni HTTP ya haraka na inayotegemewa na seva mbadala ambayo inaweza kushughulikia upakiaji wa juu wa maombi ya HTTP. Inatumia mbinu inayoendeshwa na matukio isiyolingana ili kushughulikia maombi, na usanifu wake wa kawaida unaoendeshwa na matukio unaweza kutoa utendaji unaotabirika zaidi chini ya mizigo ya juu.

Ili kufunga Nginx kwenye OpenSuse, endesha amri ifuatayo.

$ sudo zypper install nginx

Mara baada ya Nginx kusakinishwa, unaweza kuanza huduma kwa sasa, kisha kuiwezesha kuanza kiotomatiki wakati wa kuwasha na kuthibitisha hali ya Nginx kwa kuendesha amri zifuatazo.

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

Kwa wakati huu, seva ya wavuti ya Nginx inapaswa kuwa juu na kufanya kazi, unaweza pia kuthibitisha hali kwa kutumia amri ya netstat kama inavyoonyeshwa.

$ sudo netstat -tlpn | grep nginx

Sasa, tunahitaji kujaribu ikiwa usakinishaji wa Nginx unafanya kazi vizuri. Tofauti na usambazaji mwingine wa Linux, chini ya openSUSE, Nginx haina hati ya kawaida ya index.html katika folda ya mizizi ya wavuti. Tunahitaji kuunda index.html faili mpya chini ya saraka ya msingi ya wavuti \/srv/www/htdocs\ kama onyesho.

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

Ikiwa umesakinisha firewall, unahitaji kufungua port 80 na 443 ili kuruhusu trafiki ya wavuti kwenye ngome.

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

Kisha, fungua kivinjari na uende kwa anwani http://localhost na uthibitishe ukurasa wa Nginx.

Inasakinisha Seva ya Hifadhidata ya MariaDB

MariaDB ni uma chanzo huria na huria cha mfumo wa usimamizi wa hifadhidata wa uhusiano wa MySQL. Imetengenezwa na watengenezaji asili wa MySQL na inakusudiwa kubaki chanzo wazi. MariaDB ni ya haraka, inayoweza kusambazwa na thabiti, ikiwa na mfumo tajiri wa ikolojia wa injini za uhifadhi, programu-jalizi na zana zingine nyingi huifanya iwe ya kubadilika sana kwa aina mbalimbali za matumizi.

Ili kufunga MariaDB kwenye OpenSuse, endesha amri ifuatayo.

$ sudo zypper install mariadb mariadb-client 

Ifuatayo, anzisha huduma ya MariaDB kwa sasa, kisha uwezeshe kuanza kiotomatiki wakati wa kuwasha na uangalie hali yake.

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

Hatua inayofuata muhimu chini ya sehemu hii ni kulinda usakinishaji wa seva ya MariaDB. Kwa hivyo endesha hati ya usalama ambayo husafirishwa na kifurushi cha MariaDB, kama inavyoonyeshwa.

Kumbuka: Kuendesha hati ya usalama ya MariaDB na sehemu zake zote kunapendekezwa sana kwa seva zote za MariaDB katika uzalishaji.

$ sudo mysql_secure_installation 

Baada ya kuendesha hati, soma maelezo katika kila hatua kwa uangalifu. Unapaswa kuweka nenosiri la mtumiaji wa mizizi, kuondoa watumiaji wasiojulikana, kuzima ufikiaji wa mizizi ya mbali, kuondoa hifadhidata ya majaribio na kuifikia na hatimaye kupakia upya jedwali la haki.

Kufunga na kusanidi PHP na PHP-FPM

PHP-FPM (fupi kwa Kidhibiti Mchakato cha PHP FastCGI) ni daemoni mbadala ya FastCGI ya PHP iliyo na vipengee vingine vya ziada na iliyoundwa kushughulikia mizigo ya juu. Inatunza mabwawa (wafanyakazi ambao wanaweza kujibu maombi ya PHP) kukamilisha hili. Muhimu zaidi, ni haraka kuliko njia za jadi za msingi wa CGI, kama vile SUPHP, kwa mazingira ya watumiaji wengi wa PHP.

Ili kusakinisha PHP na PHP-FPM pamoja na moduli zinazohitajika endesha amri ifuatayo.

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

Kabla ya kuendelea na kuanza huduma ya PHP-FPM, tunahitaji kuunda faili zinazohitajika za usanidi kutoka kwa faili za chaguo-msingi zinazotolewa wakati wa usakinishaji, na usanidi huduma tayari kwa uendeshaji.

$ 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

Kisha fungua faili kuu ya usanidi ya php-fpm.conf ili kuhaririwa.

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

Toa maoni kwenye mstari ufuatao kwenye mstari wa nambari 24 kama inavyoonyeshwa.

error_log = log/php-fpm.log

Hifadhi na funga faili.

Kisha, tunahitaji kufafanua mipangilio sahihi ya madimbwi yaliyosanidiwa katika www.conf faili ya usanidi.

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

Kwanza, sanidi mmiliki wa Unix na mmiliki wa kikundi cha michakato kwa mtumiaji wa Nginx na kikundi. Fanya hivi kwa kubadilisha thamani za mtumiaji na vigezo vya kikundi kutoka nobody hadi nginx.

user = nginx
group = nginx

Sasa hifadhi mabadiliko kwenye faili na uondoke.

Zaidi ya hayo, kuna usanidi mmoja muhimu zaidi wa kutekeleza, ambao hulinda PHP-FPM katika faili ya /etc/php/cli/php.ini.

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

Tafuta mstari ;cgi.fix_pathinfo=1 na uibadilishe kuwa.

cgi.fix_pathinfo=0

Hifadhi mabadiliko kwenye faili na uondoke.

Ifuatayo, anzisha huduma ya PHP-FPM kwa sasa, kisha uwezeshe kuanza kiotomatiki wakati wa kuwasha na uangalie hali yake.

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

Kusanidi Nginx kufanya kazi na PHP-FPM

Katika hatua hii, tunahitaji kusanidi Nginx kufanya kazi na PHP-FPM katika faili ya usanidi ya Nginx.

$ sudo vim /etc/nginx/nginx.conf

Kisha tafuta sehemu ifuatayo, na uongeze index.php katika orodha ya faili za faharasa zinazotarajiwa.

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

Pia pata sehemu ifuatayo (ambayo inapaswa kutolewa maoni) na uitoe maoni. Sehemu hii inatumika kupitisha hati za PHP kwa usikilizaji wa seva ya FastCGI mnamo 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; 
       }

Hifadhi mabadiliko kwenye faili na uondoke.

Kujaribu Nginx na PHP-FPM

Hatua inayofuata ni kujaribu ikiwa Nginx inafanya kazi vizuri kwa kushirikiana na PHP-FPM kwa kuunda faili mpya ya jaribio la PHP chini ya saraka ya DocumentRoot kama inavyoonyeshwa.

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

Sasa tunahitaji kuangalia ikiwa usanidi wa Nginx ni sahihi kama ifuatavyo, kabla ya kuendelea na kuanzisha upya huduma.

$ sudo nginx -t

Ikiwa sintaksia ya usanidi wa Nginx ni sawa, endelea na uanzishe upya huduma za Nginx na PHP-FPM ili mabadiliko ya hivi majuzi yaanze kutekelezwa.

$ sudo systemctl restart nginx php-fpm

Sasa fungua kivinjari cha wavuti na uende kwa anwani http://localhost/info.php ili kuthibitisha usanidi wa PHP kama inavyoonyeshwa kwenye picha ya skrini ifuatayo.

Kusakinisha na kusanidi PhpMyAdmin

phpMyAdmin ni zana isiyolipishwa, rahisi kutumia na maarufu iliyoandikwa katika PHP, iliyoundwa kwa ajili ya kusimamia seva ya MySQL kwenye Wavuti. Inaendesha shughuli nyingi kwenye MySQL na MariaDB.

Ili kusakinisha phpMyAdmin kwenye OpenSuse, endesha amri ifuatayo.

$ sudo zypper install phpMyAdmin

Mara usakinishaji utakapokamilika, tengeneza faili mpya ya usanidi wa vhost kwa ajili ya kufikia phpMyAdmin kama inavyoonyeshwa.

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

Ongeza usanidi ufuatao kwenye faili.

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

Hifadhi mabadiliko na funga faili. Kisha anza tena huduma ya Nginx na amri ifuatayo.

$ sudo systemctl restart nginx

Sasa nenda kwenye kivinjari chako cha wavuti na uandike anwani http://localhost/phpMyAdmin. Ukurasa wa kuingia wa phpMyAdmin unapaswa kuonyesha kama inavyoonyeshwa kwenye picha ya skrini ifuatayo. Ingiza kitambulisho chako cha kuingia kwa mtumiaji wa hifadhidata na ubofye Nenda.

Ni hayo tu! Katika somo hili, tumekuelezea jinsi ya kusakinisha safu ya LEMP na Nginx, MariaDB, PHP, PHP-FPM na PhpMyAdmin kwenye seva/matoleo ya mezani ya OpenSuse. Ikiwa unakabiliwa na maswala yoyote wakati wa kusanidi, uliza maswali yako kupitia fomu ya maoni hapa chini.