Com instal·lar LEMP Stack amb PhpMyAdmin a Ubuntu 20.04


Per a aquells de vosaltres que no sabeu què és LEMP, aquesta és una combinació de paquets de programari: Linux, Nginx (pronunciat EngineX), MariaDB i PHP.

Podeu utilitzar LEMP tant amb finalitats de prova com en un entorn de producció real per desplegar aplicacions web mitjançant frameworks PHP com Laravel o Yii, o sistemes de gestió de continguts com Joomla.

Potser us preguntareu quina diferència hi ha entre LAMP i LEMP. Bé, l'única diferència és el servidor web que s'inclou: Apache (a LAMP) i Nginx (a LEMP). Els dos servidors web són força bons i, tot i que Apache és el que s'utilitza més sovint, Nginx no fa marxa enrere de cap manera.

Una altra aplicació àmpliament utilitzada que s'instal·la normalment al costat de la pila LEMP és PhpMyAdmin: és una eina PHP basada en web per administrar un servidor de bases de dades MySQL/MariaDB des d'un navegador web.

Si busqueu una configuració de LAMP per al vostre Ubuntu 20.04, hauríeu de llegir la nostra guia de configuració de LAMP a Ubuntu 20.04.

  1. Guia d'instal·lació del servidor de l'Ubuntu 20.04

En aquest article, aprendràs a instal·lar i configurar la pila LEMP amb PhpMyAdmin al servidor Ubuntu 20.04.

Pas 1: instal·lar Nginx a Ubuntu 20.04

1. Nginx és un servidor web ràpid i modern dissenyat per servir moltes connexions concurrents sense consumir massa recursos del servidor. És per això que sovint és l'opció preferida en entorns empresarials.

NGINX també s'utilitza habitualment com a equilibrador de càrrega i memòria cau de contingut web. Admet servidors virtuals basats en noms i IP (anàlegs als amfitrions virtuals d'Apache).

Podeu instal·lar Nginx al vostre escriptori o servidor Ubuntu 20.04 executant l'ordre següent.

$ sudo apt update
$ sudo apt install nginx

Els fitxers de configuració de Nginx s'emmagatzemen al directori /etc/nginx i el seu fitxer de configuració principal és /etc/nginx/nginx.conf. És important destacar que la seva arrel de document predeterminada per emmagatzemar els vostres fitxers web és /usr/share/nginx/html/. Però podeu utilitzar l'estàndard /var/www/html que s'hauria de configurar al fitxer de configuració del bloc del servidor del vostre lloc web o de l'aplicació.

2. L'instal·lador de paquets d'Ubuntu activa systemd per iniciar el servei Nginx i permetre que s'iniciï automàticament cada vegada que es reinicia el servidor. Utilitzeu les ordres systemctl següents per confirmar que el servei s'està executant i està habilitat.

$ sudo systemctl status nginx 
$ sudo systemctl is-enabled nginx

3. Ara és el moment de comprovar si la instal·lació de Nginx ha tingut èxit trucant a la pàgina de Nginx mitjançant el navegador mitjançant l'adreça IP del servidor.

http://SERVER_IP

Si no coneixeu l'adreça IP del vostre servidor, podeu trobar l'ordre IP com es mostra.

$ ip addr show

La pàgina web predeterminada de NGINX s'ha de carregar tal com es mostra a la captura de pantalla següent, confirmant la instal·lació i el funcionament correctes.

Pas 2: instal·lació de la base de dades MariaDB a Ubuntu 20.04

4. MariaDB és un sistema de gestió de bases de dades relacionals relativament nou que es va dissenyar com a bifurcació de la comunitat de MySQL després de l'adquisició d'Oracle.

La instal·lació de MariaDB és senzilla i es pot iniciar amb l'ordre com:

$ sudo apt install mariadb-server mariadb-client

5. El servei MariaDB també s'inicia automàticament i s'habilita per iniciar-se sempre a l'arrencada del sistema i podeu confirmar-ho mitjançant les ordres següents.

$ sudo systemctl status mariadb
$ sudo systemctl is-enabled mariadb

6. Si voleu millorar la seguretat de MariaDB, podeu executar l'ordre mysql_secure_installation, que us proporcionarà algunes opcions bàsiques però importants per configurar:

$ sudo mysql_secure_installation

A continuació, trieu l'opció per establir la contrasenya de l'usuari root (o administrador) de la base de dades i seguiu les instruccions i llegiu atentament les preguntes. Per protegir el servidor de bases de dades, respon les preguntes tal com es mostra a la captura de pantalla.

  • Introduïu la contrasenya actual per a root (introduïu-ne cap): Introduïu
  • Vols definir una contrasenya d'arrel? [S/n] y
  • Vols eliminar usuaris anònims? [S/n] y
  • No permeteu l'inici de sessió root de forma remota? [S/n] y
  • Vols eliminar la base de dades de prova i accedir-hi? [S/n] y
  • Recarregar les taules de privilegis ara? [S/n] y

7. Per crear, gestionar i realitzar operacions de base de dades, cal que utilitzeu l'ordre mysql shell amb el senyalador -u per especificar el nom d'usuari de la base de dades i -p per proporcionar la contrasenya de l'usuari. .

Per connectar-vos com a usuari root, utilitzeu l'ordre sudo (fins i tot sense el senyalador -p) en cas contrari rebreu l'error destacat a la captura de pantalla següent.

$ mysql -u root -p
$ sudo mysql -u root

Pas 3: instal·lació de PHP a Ubuntu 20.04

8. PHP és un popular llenguatge de programació de codi obert, flexible i dinàmic per crear llocs web i aplicacions web. Admet una varietat de tècniques de programació. És important destacar que la comunitat PHP és gran i diversa, composta per innombrables biblioteques, marcs i altres components útils.

NGINX utilitza FPM (FastCGI Process Manager) o PHP-FPM per processar scripts PHP. PHP-FPM és una implementació alternativa de PHP FastCGI àmpliament utilitzada que inclou moltes funcions addicionals i que s'utilitza per alimentar llocs/aplicacions web d'alt trànsit.

Per instal·lar PHP i PHP-FPM, executeu l'ordre següent que també instal·larà alguns paquets addicionals necessaris.

$ sudo apt install php php-mysql php-fpm

Com que PHP 7.4 és la versió predeterminada de PHP a Ubuntu 20.04, els fitxers de configuració de PHP es troben a /etc/php/7.4/ i els fitxers de configuració PHP-FPM s'emmagatzemen a /etc/php/7.4/fpm.

9. A continuació, comproveu si el servei php7.4-fpm està en funcionament i si està habilitat amb l'ordre següent.

$ sudo systemctl status php7.4-fpm
$ sudo systemctl is-enabled php7.4-fpm

Pas 4: Configuració de Nginx perquè funcioni amb PHP-FPM

10. Ara heu de configurar NGINX per enviar les sol·licituds del client a PHP-FPM, que per defecte està configurat per escoltar en un sòcol UNIX tal com es defineix pel paràmetre listen a /etc/php/7.4/fpm/pool.d/www. Fitxer de configuració de l'agrupació per defecte .conf.

$ sudo vi /etc/php/7.4/fpm/pool.d/www.conf 

11. Al fitxer de configuració del bloc del servidor predeterminat (/etc/nginx/sites-available/default), descommenteu la directiva d'ubicació per processar les sol·licituds PHP perquè sembli la que es mostra a la captura de pantalla següent.

$ sudo vi /etc/nginx/sites-available/default

Desa el fitxer i surt.

12. A continuació, proveu la sintaxi de configuració de NGINX per veure'n la correcció. Si està bé, reinicieu el servei Nginx per aplicar els nous canvis.

$ sudo nginx -t
$ sudo systemctl restart nginx

13. Ara comproveu si NGINX pot funcionar juntament amb PHP-FPM per processar sol·licituds PHP. Creeu una pàgina info.php senzilla al directori arrel del document.

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

14. Al navegador, navegueu amb l'adreça següent. La pàgina de configuració de PHP s'ha de carregar com es mostra a la captura de pantalla següent.

http://SERVER_IP/info.php

Pas 5: instal·lació de PhpMyAdmin a Ubuntu 20.04

15. PhpMyAdmin és una aplicació PHP gratuïta i de codi obert creada específicament per administrar servidors de bases de dades MySQL/MariaDB mitjançant un navegador web. Proporciona una interfície gràfica intuïtiva i admet una àmplia gamma de funcions comunes per a tasques d'administració de bases de dades.

$ sudo apt install phpmyadmin

16. Durant la instal·lació del paquet, se us demanarà que configureu diversos aspectes del paquet PhpMyAdmin. En primer lloc, se us demanarà que escolliu el servidor web predeterminat per executar-lo. Premeu Esc perquè NGINX no és a la llista proporcionada.

17. A continuació, PhpMyAdmin requereix una base de dades per treballar. En aquest indicador de configuració del paquet, trieu per configurar una base de dades per a PhpMyAdmin amb el paquet dbconfig-common.

18. A la següent indicació, heu de proporcionar una contrasenya perquè PhpMyAdmin es registri a la base de dades MariaDB. Introduïu una contrasenya segura i feu clic a Intro.

Pas 6: Configuració de NGINX per servir el lloc PhpMyAdmin

19. Per permetre que NGINX serveixi el lloc PhpMyAdmin situat a /usr/share/phpmyadmin, creeu un enllaç simbòlic per a aquest directori a l'arrel del document i, a continuació, configureu els permisos i la propietat correctes al directori PHPMyAdmin de la manera següent.

$ sudo ln -s  /usr/share/phpmyadmin /var/www/html/phpmyadmin
$ sudo chmod 775 -R /usr/share/phpmyadmin/
$ sudo chown root:www-data -R /usr/share/phpmyadmin/

20. A més, assegureu-vos que la directiva d'índex al fitxer de configuració del bloc del servidor predeterminat (/etc/nginx/sites-available/default) inclou index.php tal com es mostra a la captura de pantalla següent.

21. A continuació, reinicieu el servei Nginx una vegada més per aplicar els canvis anteriors.

$ sudo systemctl restart nginx

22. Ara accediu al lloc PhpMyAdmin des d'un navegador mitjançant l'adreça següent.

http://SERVER_IP/phpmyadmin

A la pàgina d'inici de sessió, autentiqueu-vos amb el nom d'usuari i la contrasenya de PHPMyAdmin. Recordeu que l'inici de sessió de l'usuari root remot està desactivat tret que accediu a PHPMyAdmin a l'host local on està instal·lada la base de dades MariaDB, l'accés root no funcionarà.

Finalment, però no menys important, assegureu la vostra instal·lació de PhpMyAdmin mitjançant la nostra guia: 4 consells útils per assegurar la interfície web de PhpMyAdmin.

Conclusió

La vostra configuració de LEMP ja s'ha completat i podeu començar a crear les vostres aplicacions web o simplement jugar amb els serveis Nginx i MariaDB que acabeu d'instal·lar. Aquests s'utilitzen àmpliament i és molt recomanable obtenir més coneixements sobre ells per als administradors de sistemes.