Giunsa ang Pag-install sa LEMP sa Debian 10 Server


Ang usa ka LEMP stack usa ka sinagol nga open-source software nga kasagarang gi-install sa usa ka Linux server aron i-deploy ang mga dinamikong aplikasyon. Kini nga termino usa ka acronym nga nagrepresentar sa Linux operating system, Nginx web server, usa ka MariaDB database, ug PHP programming.

Bisan tuod kini nga \LEMP stack kasagarang adunay MySQL isip database management system, pipila ka Linux distributions sama sa Debian — migamit sa MariaDB isip drop-in replacement sa MySQL.

  1. Unsaon Pag-instalar sa Debian 10 (Buster) Minimal Server

Niini nga artikulo, among ipasabut kanimo kung giunsa ang pag-install ug pag-setup sa usa ka LEMP nga palibot sa usa ka Debian 10 server, gamit ang MariaDB ingon ang platform sa pagdumala sa database.

Pag-instalar sa Nginx Web Server sa Debian 10

Ang Nginx usa ka open-source ug cross-platform, gaan apan gamhanan ug sayon i-configure ang HTTP ug reverse proxy server, mail proxy server, ug generic TCP/UDP proxy server, nga adunay modular architecture.

Ang pipila sa mga batakang bahin niini naglakip sa pag-alagad sa mga static ug index nga mga file; gipadali nga suporta uban ang pag-cache sa FastCGI, uwsgi, SCGI, ug Memcached server, load balancing ug fault tolerance, SSL ug TLS SNI nga suporta, suporta sa HTTP/2 nga may gibug-aton ug dependency-based prioritization.

Aron ma-install ang Nginx package, gamita ang Debian's apt package manager sama sa gipakita.

# apt update 
# apt install nginx 

Kung kompleto na ang pag-install sa Nginx, ang installer mag-aktibo sa systemd aron masugdan ang serbisyo sa Nginx sa pagkakaron ug mahimo kini nga awtomatiko nga magsugod sa boot sa system. Mahimo nimong susihon ang kahimtang sa Nginx gamit ang mosunod nga command systemctl.

# systemctl status nginx

Mahimo usab nimo gamiton ang mosunod nga importante nga mga sugo sa pagsugod, pag-restart, paghunong, ug pag-reload sa configuration sa Nginx service ubos sa systemd.

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

Sunod, kung ikaw adunay UFW nga firewall nga nagdagan (kini kasagarang gi-disable pinaagi sa default), kinahanglan nimo nga ablihan ang port 80 (HTTP) ug 443 (HTTPS) aron tugutan ang umaabot nga trapiko sa Nginx.

# ufw allow 80
# ufw allow 443
# ufw status

Niini nga punto, kinahanglan nimo nga sulayan kung ang Nginx husto nga na-install, kung kini nagdagan ug makaserbisyo sa mga web page. Aron mahimo kana, pag-abli sa usa ka web browser ug itudlo kini sa mosunod nga URL aron ma-access ang Nginx Debian Default nga web page.

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

Pag-instalar sa MariaDB sa Debian 10

Sunod, kinahanglan nimo nga i-install ang usa ka sistema sa database aron makatipig ug makadumala sa datos alang sa imong website o web app. Gisuportahan sa Debian 10 ang MariaDB pinaagi sa default, ingon usa ka drop-in nga kapuli sa MySQL.

Aron ma-install ang MariaDB, pagdagan ang mosunud nga mando.

# apt install mariadb-server

Sunod, susiha ang kahimtang sa serbisyo sa MariaDB tungod kay kini awtomatik nga gisugdan sa systemd ug mahimo nga magsugod sa boot sa system, aron masiguro nga kini nagdagan ug nagdagan, gamita ang mosunod nga sugo.

# systemctl status mariadb

Sa pagdumala (pagsugod, pagsugod, paghunong ug pag-reload) sa serbisyo sa MariaDB ubos sa systemd, mahimo nimong gamiton ang mosunod nga sugo.

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

Sunod, ang pag-deploy sa MariaDB mahimong dili sigurado pinaagi sa default. Kinahanglan ka nga magpadagan sa usa ka script sa kabhang nga gipadala kauban ang pakete, aron mapaayo nimo ang seguridad sa database.

# mysql_secure_installation

Human sa pagpadagan sa script, kini magdala kanimo sa sunod-sunod nga mosunod nga mga pangutana aron mabag-o ang default nga mga setting sa pag-instalar sa MariaDB sama sa gipakita sa mosunod nga screenshot.

Pag-instalar sa PHP-FPM (Fast Process Manager) sa Debian 10

Dili sama sa Apache ug uban pang mga web server, ang Nginx wala maghatag ug lumad nga suporta alang sa PHP, tungod kay kini naggamit sa PHP-FPM sa pagdumala sa mga hangyo alang sa mga pahina sa PHP. Ang PHP-FPM usa ka alternatibo nga FastCGI daemon alang sa PHP nga nagtugot sa usa ka website sa pagdumala sa taas nga mga karga, pinaagi sa paggamit sa mga proseso sa trabahante sa pagdumala sa mga hangyo.

Aron ma-install ang PHP-FPM nga bersyon 7.3 ug usa ka module sa PHP aron makigkomunikar sa sistema sa database sa MariaDB/MySQL, padagana ang mosunod nga mando.

# apt install php-fpm php-mysqli

Human ma-install ang PHP-FPM, ang installer mag-activate sa systemd aron masugdan ang PHP-FPM nga serbisyo sa pagkakaron ug makapahimo niini sa auto-start sa system boot. Aron masusi kung kini nagdagan ug nagdagan, i-isyu ang mosunud nga mando.

# systemctl status php-fpm

Mahimo usab nimo nga sugdan, i-restart ang paghunong, ug i-reload ang configuration sa PHP-FPM nga serbisyo ubos sa systemd, ingon sa mosunod.

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

Sunod, kinahanglan nimo nga i-secure ang PHP-FPM pinaagi sa paghimo og pipila ka mga pagbag-o sa configuration file /etc/php/7.3/fpm/php.ini ingon sa mosunod.

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

Pangitaa ang ;cgi.fix_pathinfo=1 uncomment niini pinaagi sa pagtangtang sa ; nga karakter sa sinugdanan, ibutang ang bili niini sa 0. Gipugngan niini ang Nginx sa pagtugot sa mga non-PHP nga mga file nga ipatuman ingon PHP.

cgi.fix_pathinfo=0

Pinaagi sa default, ang PHP-FPM gi-configure aron maminaw sa usa ka UNIX soxket, /run/php/php7.3-fpm.sock nga gipasabot sa /etc/php/7.3/fpm/pool.d/www.conf configuration file. Kinahanglan nimo nga i-configure ang tanan nimo nga block sa server (o mga virtual host) aron magamit kini nga socket kung sila magproseso ug mag-alagad sa mga panid sa PHP.

Mahimo nimong gamiton ang Nginx default server block configuration file /etc/nginx/sites-available/default aron sulayan kini.

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

Pangitaa ang mosunud nga seksyon ug i-uncomment kini aron maipasa ang mga script sa PHP sa server sa FastCGI sama sa gipakita sa screenshot.

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

Sunod, sulayi kung OK ang istruktura sa pag-configure sa Nginx, gamit ang mosunud nga mando.

# nginx -t

Kung OK ra ang configuration sa Nginx, aron ma-apply ang bag-o lang nga gihimo nga mga pagbag-o, i-restart ang php7.3-fpm ug nginx nga mga serbisyo sama sa mosunod.

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

Pagsulay sa PHP-FPM nga Pagproseso sa Nginx

Pagkahuman sa pag-configure sa PHP-FPM ug Nginx aron magtinabangay, kinahanglan nimo nga sulayan kung ang duha nga mga serbisyo makaproseso ug magsilbi sa mga panid sa PHP sa mga kliyente. Aron mahimo kana, paghimo usa ka yano nga script sa PHP sa imong web DocumentRoot ingon sa mosunod.

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

Sa kataposan, ablihi ang browser ug i-type ang mosunod nga adres aron makita ang PHP configurations sa sistema nga namugna sa phpinfo() function.

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

Niini nga artikulo, gipakita namo kung unsaon pag-instalar ug pag-configure ang LEMP stack sa Debian 10. Kung naa kay mga pangutana o feedback, palihug kontaka ug ipahibalo kanamo pinaagi sa comment form sa ubos.