Hvordan installere LEMP Stack med PhpMyAdmin i Ubuntu 20.04


For de av dere som ikke vet hva LEMP er – dette er en kombinasjon av programvarepakker – Linux, Nginx (uttales EngineX), MariaDB og PHP.

Du kan bruke LEMP til både testformål eller i et ekte produksjonsmiljø for å distribuere webapplikasjoner ved hjelp av PHP-rammeverk som Laravel eller Yii, eller innholdsstyringssystemer som Joomla

Du lurer kanskje på hva som er forskjellen mellom LAMP og LEMP. Vel, den eneste forskjellen er webserveren som er inkludert – Apache (i LAMP) og Nginx (i LEMP). Begge nettserverne er ganske gode, og mens Apache er den mest brukte, trekker ikke Nginx seg tilbake på noen måte.

En annen mye brukt applikasjon som normalt er installert ved siden av LEMP-stakken er PhpMyAdmin – er et PHP nettbasert verktøy for å administrere en MySQL/MariaDB-databaseserver fra en nettleser.

Hvis du ser etter et LAMP-oppsett for din Ubuntu 20.04, bør du lese vår LAMP-oppsettguide for Ubuntu 20.04.

  1. Installasjonsveiledning for Ubuntu 20.04-server

I denne artikkelen vil du lære hvordan du installerer og konfigurerer LEMP-stakken med PhpMyAdmin i Ubuntu 20.04-serveren.

Trinn 1: Installere Nginx på Ubuntu 20.04

1. Nginx er en rask moderne webserver designet for å servere mange samtidige tilkoblinger uten å bruke for mange serverressurser. Dette er grunnen til at det ofte er det foretrukne valget i bedriftsmiljøer.

NGINX er også ofte brukt som en lastbalanserer og webinnholdsbuffer. Den støtter navnebaserte og IP-baserte virtuelle servere (analogt med virtuelle verter i Apache).

Du kan installere Nginx på Ubuntu 20.04-skrivebordet eller serveren ved å kjøre følgende kommando.

$ sudo apt update
$ sudo apt install nginx

Nginx-konfigurasjonsfilene er lagret under /etc/nginx-katalogen og hovedkonfigurasjonsfilen er /etc/nginx/nginx.conf. Viktigere er at standarddokumentroten for lagring av nettfilene dine er /usr/share/nginx/html/. Men du kan bruke standarden /var/www/html som skal konfigureres i nettstedets eller programmets serverblokkkonfigurasjonsfil.

2. Installasjonsprogrammet for Ubuntu-pakken utløser systemd for å starte Nginx-tjenesten og aktiverer den automatisk hver gang serveren startes på nytt. Bruk følgende systemctl-kommandoer for å bekrefte at tjenesten kjører og er aktivert.

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

3. Nå er det på tide å sjekke om Nginx-installasjonen var vellykket ved å ringe Nginx-siden via nettleseren ved å bruke serverens IP-adresse.

http://SERVER_IP

Hvis du ikke kjenner serverens IP-adresse, kan du finne IP-kommando som vist.

$ ip addr show

NGINX-standardnettsiden skal lastes inn som vist på følgende skjermbilde, og bekrefter korrekt installasjon og drift.

Trinn 2: Installere MariaDB-databasen på Ubuntu 20.04

4. MariaDB er et relativt nytt administrasjonssystem for relasjonsdatabaser som ble designet som en fellesskapsgaffel av MySQL etter Oracle-oppkjøpet.

Installasjonen av MariaDB er enkel og kan startes med kommando som:

$ sudo apt install mariadb-server mariadb-client

5. MariaDB-tjenesten startes også automatisk og aktivert for alltid å starte ved systemoppstart, og du kan bekrefte dette ved å bruke følgende kommandoer.

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

6. Hvis du ønsker å forbedre MariaDB-sikkerheten, kan du kjøre kommandoen mysql_secure_installation, som vil gi noen grunnleggende, men viktige alternativer for konfigurering:

$ sudo mysql_secure_installation

Velg deretter alternativet for å angi databaseroten (eller administrator) brukerens passord og følg instruksjonene og les spørsmålene nøye. For å sikre databaseserveren, svar på spørsmålene som vist på skjermbildet.

  • Skriv inn gjeldende passord for root (skriv inn for ingen): Enter
  • Vil du angi et root-passord? [Y/n] y
  • Vil du fjerne anonyme brukere? [Y/n] y
  • Vil du ikke tillate root-pålogging eksternt? [Y/n] y
  • Vil du fjerne testdatabasen og få tilgang til den? [Y/n] y
  • Last inn rettighetstabeller på nytt nå? [Y/n] y

7. For å opprette, administrere og utføre databaseoperasjoner, må du mysql shell-kommandoen med -u-flagget for å spesifisere databasebrukernavnet og -p for å oppgi brukerens passord .

For å koble til som root-bruker, bruk sudo-kommandoen (selv uten -p-flagget) ellers vil du motta feilen uthevet i følgende skjermbilde.

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

Trinn 3: Installere PHP i Ubuntu 20.04

8. PHP er et populært åpen kildekode, fleksibelt og dynamisk skriptspråk for å bygge nettsteder og nettapplikasjoner. Den støtter en rekke programmeringsteknikker. Viktigere er at PHP-fellesskapet er stort og mangfoldig, sammensatt av utallige biblioteker, rammeverk og andre nyttige komponenter.

NGINX bruker FPM (FastCGI Process Manager) eller PHP-FPM for å behandle PHP-skript. PHP-FPM er en mye brukt alternativ PHP FastCGI-implementering som leveres med mange tilleggsfunksjoner, og den brukes til å drive nettsteder/nettapplikasjoner med høy trafikk.

For å installere PHP og PHP-FPM, kjør følgende kommando som også vil installere noen nødvendige tilleggspakker.

$ sudo apt install php php-mysql php-fpm

Siden PHP 7.4 er standardversjonen av PHP i Ubuntu 20.04, ligger PHP-konfigurasjonsfilene i /etc/php/7.4/ og PHP-FPM-konfigurasjonsfilene er lagret under /etc/php/7.4/fpm.

9. Deretter sjekker du om php7.4-fpm-tjenesten er oppe og kjører og om den er aktivert med følgende kommando.

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

Trinn 4: Konfigurere Nginx til å fungere med PHP-FPM

10. Nå må du konfigurere NGINX til proxy-klientforespørsler til PHP-FPM, som som standard er konfigurert til å lytte på en UNIX-socket som definert av listen parameter i /etc/php/7.4/fpm/pool.d/www .conf standard konfigurasjonsfil for bassenget.

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

11. I standard serverblokkkonfigurasjonsfilen (/etc/nginx/sites-available/default), fjerner du kommentaren til lokasjonsdirektivet for behandling av PHP-forespørsler slik at det ser ut som det som vises i følgende skjermbilde.

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

Lagre filen og avslutt.

12. Test deretter NGINX-konfigurasjonssyntaksen for korrekthet. Hvis det er OK, start Nginx-tjenesten på nytt for å bruke de nye endringene.

$ sudo nginx -t
$ sudo systemctl restart nginx

13. Test nå om NGINX kan fungere sammen med PHP-FPM for å behandle PHP-forespørsler. Lag en enkel info.php-side under dokumentrotkatalogen.

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

14. Naviger med følgende adresse i nettleseren din. PHP-konfigurasjonssiden skal lastes og vises som vist i følgende skjermbilde.

http://SERVER_IP/info.php

Trinn 5: Installere PhpMyAdmin i Ubuntu 20.04

15. PhpMyAdmin er en gratis og åpen kildekode nettbasert PHP-applikasjon spesielt laget for å administrere MySQL/MariaDB databaseservere gjennom en nettleser. Det gir et intuitivt grafisk grensesnitt og støtter et bredt spekter av vanlige funksjoner for databaseadministrasjonsoppgaver.

$ sudo apt install phpmyadmin

16. Under pakkeinstallasjonen vil du bli bedt om å konfigurere flere aspekter av PhpMyAdmin-pakken. Først blir du bedt om å velge standard webserver for å kjøre den. Trykk Esc fordi NGINX ikke er på listen.

17. Deretter krever PhpMyAdmin en database å jobbe med. I denne ledeteksten for pakkekonfigurasjon velger du Ja for å konfigurere en database for PhpMyAdmin med dbconfig-common-pakken.

18. I neste ledetekst må du oppgi et passord for at PhpMyAdmin skal registrere seg i MariaDB-databasen. Skriv inn et sikkert passord og klikk på Enter.

Trinn 6: Konfigurere NGINX for å betjene PhpMyAdmin-nettstedet

19. For å gjøre det mulig for NGINX å betjene PhpMyAdmin-siden som ligger på /usr/share/phpmyadmin, oppretter du en symbolkobling for denne katalogen under dokumentroten, og setter deretter riktige tillatelser og eierskap på PHPMyAdmin-katalogen som følger.

$ 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. Sørg dessuten for at indeksdirektivet i standard serverblokkkonfigurasjonsfilen (/etc/nginx/sites-available/default) inkluderer index.php som vist i følgende skjermbilde.

21. Start deretter Nginx-tjenesten på nytt for å bruke endringene ovenfor.

$ sudo systemctl restart nginx

22. Gå nå til PhpMyAdmin-siden fra en nettleser ved å bruke følgende adresse.

http://SERVER_IP/phpmyadmin

På påloggingssiden, autentiser med PHPMyAdmin brukernavn og passord. Husk at ekstern rotbrukerpålogging er deaktivert med mindre du har tilgang til PHPMyAdmin på den lokale verten der MariaDB-databasen er installert, rottilgangen vil ikke fungere.

Sist, men ikke minst, sikre PhpMyAdmin-installasjonen ved å bruke vår guide: 4 nyttige tips for å sikre PhpMyAdmin-nettgrensesnittet.

Konklusjon

LEMP-oppsettet ditt er nå fullført, og du kan begynne å bygge nettapplikasjonene dine eller bare leke med Nginx- og MariaDB-tjenestene du nettopp installerte. Disse er mye brukt og å få mer kunnskap om dem anbefales sterkt for systemadministratorer.