Jinsi ya kufunga LEMP kwenye Seva ya Debian 10


Rafu ya LEMP ni mchanganyiko wa programu huria ambayo kwa kawaida husakinishwa kwenye seva ya Linux ili kupeleka programu zinazobadilika. Neno hili ni kifupi ambacho kinawakilisha mfumo endeshi wa Linux, seva ya wavuti ya Nginx, hifadhidata ya MariaDB, na upangaji programu wa PHP.

Ingawa mrundikano huu wa \LEMP kwa kawaida huwa na MySQL kama mfumo wa usimamizi wa hifadhidata, baadhi ya usambazaji wa Linux kama vile Debian - hutumia MariaDB kama kibadilisho cha kunjuzi cha MySQL.

  1. Jinsi ya Kusakinisha Seva ndogo ya Debian 10 (Buster)

Katika makala haya, tutakuelezea jinsi ya kusakinisha na kusanidi mazingira ya LEMP kwenye seva ya Debian 10, kwa kutumia MariaDB kama jukwaa la usimamizi wa hifadhidata.

Kufunga Seva ya Wavuti ya Nginx kwenye Debian 10

Nginx ni chanzo huria na jukwaa-msingi, nyepesi lakini ina nguvu na ni rahisi kusanidi HTTP na seva mbadala ya kubadilisha, seva ya proksi ya barua, na seva ya proksi ya TCP/UDP ya kawaida, yenye usanifu wa kawaida.

Baadhi ya vipengele vyake vya msingi ni pamoja na kutumikia faili tuli na index; usaidizi ulioharakishwa kwa kuweka akiba ya FastCGI, uwsgi, SCGI, na seva za Memcached, kusawazisha upakiaji na ustahimilivu wa hitilafu, usaidizi wa SSL na TLS SNI, usaidizi wa HTTP/2 wenye vipaumbele vilivyowekewa uzito na utegemezi.

Ili kusakinisha kifurushi cha Nginx, tumia kidhibiti cha kifurushi cha Debian kama inavyoonyeshwa.

# apt update 
# apt install nginx 

Mara tu usakinishaji wa Nginx utakapokamilika, kisakinishi kitawasha mfumo ili kuanza huduma ya Nginx kwa sasa na kuiwezesha kuanza kiotomatiki kwenye mfumo wa kuwasha. Unaweza kuangalia hali ya Nginx kwa kutumia amri ifuatayo ya systemctl.

# systemctl status nginx

Unaweza pia kutumia amri zifuatazo muhimu kuanza, kuanzisha upya, kuacha, na kupakia upya usanidi wa huduma ya Nginx chini ya systemd.

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

Ifuatayo, ikiwa una ngome ya UFW inayoendesha (kwa kawaida huzimwa kwa chaguomsingi), unahitaji kufungua mlango 80 (HTTP) na 443 (HTTPS) ili kuruhusu trafiki inayoingia kwenye Nginx.

# ufw allow 80
# ufw allow 443
# ufw status

Katika hatua hii, unahitaji kujaribu ikiwa Nginx imewekwa vizuri, ikiwa inaendesha na inaweza kutumika kurasa za wavuti. Ili kufanya hivyo, fungua kivinjari na uelekeze kwa URL ifuatayo ili kufikia ukurasa wa wavuti wa Debian wa Nginx.

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

Kufunga MariaDB kwenye Debian 10

Kisha, unahitaji kusakinisha mfumo wa hifadhidata ili uweze kuhifadhi na kudhibiti data ya tovuti yako au programu ya wavuti. Debian 10 inasaidia MariaDB kwa chaguo-msingi, kama kibadilishaji cha MySQL.

Ili kufunga MariaDB, endesha amri ifuatayo.

# apt install mariadb-server

Ifuatayo, angalia hali ya huduma ya MariaDB kwani imeanzishwa otomatiki na mfumo na kuwezeshwa kuanza kwenye mfumo wa kuwasha, ili kuhakikisha kuwa iko na inafanya kazi, tumia amri ifuatayo.

# systemctl status mariadb

Ili kusimamia (kuanza, kuanzisha upya, kuacha na kupakia upya) huduma ya MariaDB chini ya systemd, unaweza kutumia amri ifuatayo.

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

Kisha, uwekaji wa MariaDB hautakuwa salama kwa chaguomsingi. Unahitaji kuendesha hati ya ganda ambayo hutumwa pamoja na kifurushi, ili kukuwezesha kuboresha usalama wa hifadhidata.

# mysql_secure_installation

Baada ya kuendesha hati, itakuchukua kupitia mfululizo wa maswali yafuatayo ili kurekebisha mipangilio chaguo-msingi ya usakinishaji wa MariaDB kama inavyoonyeshwa kwenye picha ya skrini ifuatayo.

Kufunga PHP-FPM (Kidhibiti Mchakato wa Haraka) kwenye Debian 10

Tofauti na Apache na seva zingine za wavuti, Nginx haitoi usaidizi asilia kwa PHP, kwani hutumia PHP-FPM kushughulikia maombi ya kurasa za PHP. PHP-FPM ni daemon mbadala ya FastCGI ya PHP ambayo inaruhusu tovuti kushughulikia mizigo ya juu, kwa kutumia michakato ya mfanyakazi kushughulikia maombi.

Ili kusakinisha toleo la 7.3 la PHP-FPM na moduli ya PHP ili kuwasiliana na mfumo wa hifadhidata wa MariaDB/MySQL, endesha amri ifuatayo.

# apt install php-fpm php-mysqli

Baada ya PHP-FPM kusakinishwa, kisakinishi kitawasha mfumo ili kuanza huduma ya PHP-FPM kwa sasa na kuiwezesha kuanza kiotomatiki kwenye kuwasha mfumo. Kuangalia ikiwa iko na inafanya kazi, toa amri ifuatayo.

# systemctl status php-fpm

Unaweza pia kuanza, kuanzisha upya kuacha, na kupakia upya usanidi wa huduma ya PHP-FPM chini ya systemd, kama ifuatavyo.

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

Ifuatayo, unahitaji kupata PHP-FPM kwa kufanya mabadiliko fulani katika faili ya usanidi /etc/php/7.3/fpm/php.ini kama ifuatavyo.

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

Tafuta ;cgi.fix_pathinfo=1 kuiondoa kwa kuondoa ; herufi mwanzoni, weka thamani yake kuwa 0. Hii inazuia Nginx kuruhusu faili zisizo za PHP kutekelezwa kama PHP.

cgi.fix_pathinfo=0

Kwa chaguo-msingi, PHP-FPM imesanidiwa ili isikilize kwenye UNIX soxket, /run/php/php7.3-fpm.sock kama inavyofafanuliwa katika /etc/php/7.3/fpm/pool.d/www.conf faili ya usanidi. Lazima usanidi kizuizi chako cha seva (au wapangishi pepe) ili kutumia soketi hii ikiwa watachakata na kutumikia kurasa za PHP.

Unaweza kutumia faili ya usanidi wa kizuizi cha seva ya Nginx /etc/nginx/sites-available/default ili kuijaribu.

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

Tafuta sehemu ifuatayo na uitambue ili kupitisha hati za PHP kwa seva ya FastCGI kama inavyoonyeshwa kwenye picha ya skrini.

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

Ifuatayo, jaribu ikiwa muundo wa usanidi wa Nginx ni sawa, kwa kutumia amri ifuatayo.

# nginx -t

Ikiwa usanidi wa Nginx ni sawa, ili kutumia mabadiliko yaliyofanywa hivi karibuni, anzisha upya php7.3-fpm na huduma za nginx kama ifuatavyo.

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

Inajaribu Usindikaji wa PHP-FPM kwenye Nginx

Baada ya kusanidi PHP-FPM na Nginx kufanya kazi pamoja, unahitaji kujaribu ikiwa huduma mbili zinaweza kuchakata na kutumikia kurasa za PHP kwa wateja. Ili kufanya hivyo, unda hati rahisi ya PHP katika DocumentRoot ya wavuti yako kama ifuatavyo.

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

Hatimaye, fungua kivinjari na uandike anwani ifuatayo ili kuona usanidi wa PHP kwenye mfumo kama ulivyotolewa na kitendakazi cha phpinfo().

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

Katika makala haya, tumeonyesha jinsi ya kusakinisha na kusanidi rafu ya LEMP katika Debian 10. Ikiwa una maswali au maoni yoyote, tafadhali wasiliana nasi na utujulishe kupitia fomu ya maoni iliyo hapa chini.