Kif Tinstalla LEMP fuq Debian 10 Server


Munzell LEMP huwa taħlita ta' softwer open-source li huwa tipikament installat fuq server Linux biex juża applikazzjonijiet dinamiċi. Dan it-terminu huwa akronimu li jirrappreżenta s-sistema operattiva Linux, is-server tal-web Nginx, database MariaDB, u programmar PHP.

Għalkemm dan il-munzell \LEMP normalment fih MySQL bħala s-sistema tal-ġestjoni tad-database, xi distribuzzjonijiet Linux bħal Debian — uża MariaDB bħala sostitut drop-in għal MySQL.

  1. Kif Tinstalla Server Minimu Debian 10 (Buster)

F'dan l-artikolu, aħna ser nispjegawlek kif tinstalla u twaqqaf ambjent LEMP fuq server Debian 10, billi tuża MariaDB bħala l-pjattaforma tal-ġestjoni tad-database.

Installazzjoni ta' Nginx Web Server fuq Debian 10

Nginx huwa sors miftuħ u cross-platform, ħafif iżda qawwi u faċli biex jiġi kkonfigurat HTTP u server proxy invers, server proxy tal-posta, u server proxy TCP/UDP ġeneriku, b'arkitettura modulari.

Xi wħud mill-karatteristiċi bażiċi tagħha jinkludu li jservu fajls statiċi u indiċi; appoġġ aċċellerat b'caching ta 'servers FastCGI, uwsgi, SCGI, u Memcached, ibbilanċjar tat-tagħbija u tolleranza għall-ħsarat, appoġġ SSL u TLS SNI, appoġġ għal HTTP/2 bi prijoritizzazzjoni peżata u bbażata fuq id-dipendenza.

Biex tinstalla l-pakkett Nginx, uża l-maniġer tal-pakketti apt ta 'Debian kif muri.

# apt update 
# apt install nginx 

Ladarba l-installazzjoni ta 'Nginx titlesta, l-installatur jattiva systemd biex jibda s-servizz Nginx għalissa u jippermettilu jibda awtomatikament mal-boot tas-sistema. Tista 'tiċċekkja l-istatus ta' Nginx billi tuża l-kmand systemctl li ġej.

# systemctl status nginx

Tista 'wkoll tuża l-kmandi importanti li ġejjin biex tibda, terġa' tibda, tieqaf u terġa 'tagħbija l-konfigurazzjoni tas-servizz Nginx taħt systemd.

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

Sussegwentement, jekk għandek il-firewall UFW qed jaħdem (normalment ikun diżattivat b'mod awtomatiku), trid tiftaħ il-port 80 (HTTP) u 443 (HTTPS) biex tippermetti t-traffiku deħlin fuq Nginx.

# ufw allow 80
# ufw allow 443
# ufw status

F'dan il-punt, għandek bżonn tittestja jekk Nginx huwiex installat sew, jekk huwiex qed jaħdem u jekk jistax iservi paġni tal-web. Biex tagħmel dan, iftaħ browser tal-web u ppuntah lejn il-URL li ġej biex taċċessa l-paġna web Default ta 'Nginx Debian.

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

Installazzjoni ta' MariaDB fuq Debian 10

Sussegwentement, għandek bżonn tinstalla sistema ta' database biex tkun tista' taħżen u timmaniġġja d-dejta għall-websajt jew l-app tal-web tiegħek. Debian 10 jappoġġja MariaDB awtomatikament, bħala sostitut drop-in għal MySQL.

Biex tinstalla MariaDB, mexxi l-kmand li ġej.

# apt install mariadb-server

Sussegwentement, iċċekkja l-istatus tas-servizz MariaDB peress li huwa mibdi awtomatikament minn systemd u ppermettiet li jibda fil-boot tas-sistema, biex tiżgura li tkun qed taħdem, uża l-kmand li ġej.

# systemctl status mariadb

Biex timmaniġġja (tibda, terġa 'tibda, twaqqaf u terġa' tagħbija) is-servizz MariaDB taħt systemd, tista 'tuża l-kmand li ġej.

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

Sussegwentement, l-iskjerament ta 'MariaDB se jkun mhux sigur b'mod awtomatiku. Ikollok bżonn tmexxi script shell li jintbagħat mal-pakkett, biex tkun tista' ttejjeb is-sigurtà tad-database.

# mysql_secure_installation

Wara li tmexxi l-iskrittura, tieħdok permezz ta 'serje ta' mistoqsijiet li ġejjin biex timmodifika s-settings default tal-installazzjoni MariaDB kif muri fil-screenshot li ġej.

Installazzjoni ta' PHP-FPM (Fast Process Manager) fuq Debian 10

B'differenza minn Apache u servers tal-web oħra, Nginx ma jipprovdix appoġġ indiġenu għall-PHP, peress li juża PHP-FPM biex jimmaniġġja talbiet għal paġni PHP. PHP-FPM huwa daemon FastCGI alternattiv għall-PHP li jippermetti li websajt timmaniġġja tagħbijiet għoljin, billi tuża proċessi tal-ħaddiema biex timmaniġġja t-talbiet.

Biex tinstalla PHP-FPM verżjoni 7.3 u modulu PHP biex tikkomunika ma 'sistema ta' database MariaDB/MySQL, mexxi l-kmand li ġej.

# apt install php-fpm php-mysqli

Wara li PHP-FPM jiġi installat, l-installatur jattiva systemd biex jibda s-servizz PHP-FPM għalissa u jippermettilu li jibda awtomatikament mal-boot tas-sistema. Biex tiċċekkja jekk tkunx qed taħdem, agħti l-kmand li ġej.

# systemctl status php-fpm

Tista 'wkoll tibda, terġa' tibda tieqaf, u terġa 'tagħbija l-konfigurazzjoni tas-servizz PHP-FPM taħt systemd, kif ġej.

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

Sussegwentement, għandek bżonn tiżgura PHP-FPM billi tagħmel xi bidliet fil-fajl tal-konfigurazzjoni /etc/php/7.3/fpm/php.ini kif ġej.

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

Fittex il-;cgi.fix_pathinfo=1 neħħi l-kumment billi tneħħi l-karattru ; fil-bidu, issettja l-valur tagħha għal 0. Dan jipprevjeni lil Nginx milli jippermetti li fajls mhux PHP jiġu esegwiti bħala PHP.

cgi.fix_pathinfo=0

B'mod awtomatiku, PHP-FPM huwa kkonfigurat biex jisma' fuq soxket UNIX, /run/php/php7.3-fpm.sock kif definit fil-fajl tal-konfigurazzjoni /etc/php/7.3/fpm/pool.d/www.conf. Int trid tikkonfigura l-blokk kollu tas-server tiegħek (jew l-hosts virtwali) biex tuża dan is-socket jekk iridu jipproċessaw u jservu paġni PHP.

Tista 'tuża l-fajl tal-konfigurazzjoni tal-blokk tas-server default Nginx /etc/nginx/sites-available/default biex tittestjah.

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

Fittex it-taqsima li ġejja u neħħi l-kumment tagħha biex tgħaddi skripts PHP lis-server FastCGI kif muri fil-screenshot.

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

Sussegwentement, ittestja jekk l-istruttura tal-konfigurazzjoni Nginx hijiex OK, billi tuża l-kmand li ġej.

# nginx -t

Jekk il-konfigurazzjoni Nginx hija OK, biex tapplika l-bidliet li saru reċentement, terġa 'tibda s-servizzi php7.3-fpm u nginx kif ġej.

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

Ittestjar PHP-FPM Ipproċessar fuq Nginx

Wara li kkonfigurat PHP-FPM u Nginx biex jaħdmu flimkien, trid tittestja jekk żewġ servizzi jistgħux jipproċessaw u jservu paġni PHP lill-klijenti. Biex tagħmel dan, oħloq skript PHP sempliċi fil-web DocumentRoot tiegħek kif ġej.

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

Fl-aħħarnett, iftaħ browser u ikteb l-indirizz li ġej biex tara l-konfigurazzjonijiet tal-PHP fuq is-sistema kif ġġenerati mill-funzjoni phpinfo().

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

F'dan l-artikolu, urejna kif tinstalla u tikkonfigura l-munzell LEMP f'Debian 10. Jekk ikollok xi mistoqsijiet jew feedback, jekk jogħġbok ikkuntattja u għarrafna permezz tal-formola tal-kummenti hawn taħt.