Sådan installeres LEMP Stack med PhpMyAdmin i Ubuntu 20.04


For dem af jer, der ikke ved hvad LEMP er - dette er en kombination af softwarepakker - Linux, Nginx (udtales EngineX), MariaDB og PHP.

Du kan bruge LEMP til begge testformål eller i et ægte produktionsmiljø til at implementere webapplikationer ved hjælp af PHP-rammer som Laravel eller Yii eller indholdsstyringssystemer som Joomla

Du undrer dig måske over, hvad der er forskellen mellem LAMP og LEMP. Nå, den eneste forskel er webserveren, der er inkluderet - Apache (i LAMP) og Nginx (i LEMP). Begge webservere er ret gode, og mens Apache er den hyppigst anvendte, trækker Nginx sig ikke tilbage på nogen måde.

En anden almindeligt anvendt applikation, der normalt installeres ved siden af LEMP-stakken, er PhpMyAdmin - er et PHP-webbaseret værktøj til administration af en MySQL/MariaDB-databaseserver fra en webbrowser.

Hvis du leder efter en LAMP-opsætning til din Ubuntu 20.04, skal du læse vores LAMP-installationsvejledning på Ubuntu 20.04.

  1. Installationsvejledning til Ubuntu 20.04-server

I denne artikel lærer du, hvordan du installerer og konfigurerer LEMP-stakken med PhpMyAdmin i Ubuntu 20.04-serveren.

Trin 1: Installation af Nginx på Ubuntu 20.04

1. Nginx er en hurtig moderne webserver designet til at servere mange samtidige forbindelser uden at forbruge for mange serverressourcer. Derfor er det ofte det foretrukne valg i virksomhedsmiljøer.

NGINX bruges også ofte som en load balancer og cache til webindhold. Den understøtter Navnebaserede og IP-baserede virtuelle servere (analoge med virtuelle værter i Apache).

Du kan installere Nginx på dit Ubuntu 20.04-skrivebord eller -server ved at køre følgende kommando.

$ sudo apt update
$ sudo apt install nginx

Nginx-konfigurationsfilerne er gemt under/etc/nginx-biblioteket, og dens hovedkonfigurationsfil er /etc/nginx/nginx.conf. Det er vigtigt, at dets standarddokumentrod til lagring af dine webfiler er/usr/share/nginx/html /. Men du kan bruge standarden/var/www/html, som skal konfigureres i dit websteds eller applikations serverblokkonfigurationsfil.

2. Ubuntu-pakkeinstallationsprogrammet udløser systemd til at starte Nginx-tjenesten og gøre det muligt for den automatisk at starte hver gang serveren genstartes. Brug følgende systemctl-kommandoer til at bekræfte, at tjenesten kører og er aktiveret.

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

3. Nu er det tid til at kontrollere, om Nginx-installationen lykkedes ved at ringe til Nginx-siden via browseren ved hjælp af serverens IP-adresse.

http://SERVER_IP

Hvis du ikke kender din server-IP-adresse, kan du finde ved hjælp af IP-kommando som vist.

$ ip addr show

NGINX-standardwebsiden skal indlæses som vist i det følgende skærmbillede, hvilket bekræfter korrekt installation og drift.

Trin 2: Installation af MariaDB-database på Ubuntu 20.04

4. MariaDB er et relativt nyt relationelt databasestyringssystem, der blev designet som en community fork af MySQL, efter at det var Oracle-erhvervelse.

Installationen af MariaDB er enkel og kan startes med kommando som:

$ sudo apt install mariadb-server mariadb-client

5. MariaDB-tjenesten startes og aktiveres også automatisk til altid at starte ved systemstart, og du kan bekræfte dette ved hjælp af følgende kommandoer.

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

6. Hvis du ønsker at forbedre MariaDB-sikkerheden, kan du køre kommandoen mysql_secure_installation , som giver nogle grundlæggende, men alligevel vigtige muligheder for at konfigurere:

$ sudo mysql_secure_installation

Vælg derefter indstillingen for at indstille databasens root (eller administrator) brugeradgangskode og følg vejledningen og læs omhyggeligt spørgsmålene. For at sikre din databaseserver skal du besvare spørgsmålene som vist på skærmbilledet.

  • Indtast den aktuelle adgangskode til root (indtast for ingen): Indtast
  • Angiv en root-adgangskode? [Y/n] y
  • Fjern anonyme brugere? [Y/n] y
  • Vil du ikke tillade root-login eksternt? [Y/n] y
  • Fjern testdatabase og adgang til den? [Y/n] y
  • Genindlæs rettighedstabeller nu? [Y/n] y

7. For at oprette, administrere og udføre databasehandlinger skal du mysql shell-kommandoen med -u -flaget for at angive databasens brugernavn og -p for at give brugerens adgangskode .

For at oprette forbindelse som rodbruger skal du bruge sudo-kommandoen (selv uden -p -flagget) ellers får du den fejl, der er fremhævet i følgende skærmbillede.

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

Trin 3: Installation af PHP i Ubuntu 20.04

8. PHP er et populært open source, fleksibelt og dynamisk script-sprog til opbygning af websteder og webapplikationer. Det understøtter en række programmeringsteknikker. Det er vigtigt, at PHP-samfundet er stort og forskelligt og består af utallige biblioteker, rammer og andre nyttige komponenter.

NGINX bruger FPM (FastCGI Process Manager) eller PHP-FPM til at behandle PHP-scripts. PHP-FPM er et udbredt alternativ PHP FastCGI-implementering, der leveres med mange ekstra funktioner, og det bruges til at drive websteder med høj trafik/webapplikationer.

For at installere PHP og PHP-FPM skal du køre følgende kommando, som også installerer nogle nødvendige ekstra pakker.

$ sudo apt install php php-mysql php-fpm

Da PHP 7.4 er standardversionen af PHP i Ubuntu 20.04, er PHP-konfigurationsfilerne placeret i /etc/php/7.4/, og PHP-FPM-konfigurationsfilerne er gemt under /etc/php/7.4/fpm.

9. Tjek derefter, om php7.4-fpm-tjenesten er i gang, og om den er aktiveret med følgende kommando.

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

Trin 4: Konfiguration af Nginx til at arbejde med PHP-FPM

10. Nu skal du konfigurere NGINX til proxy-klientanmodninger til PHP-FPM, som som standard er konfigureret til at lytte på et UNIX-stik som defineret af lytteparameteren i /etc/php/7.4/fpm/pool.d/www .conf standard poolkonfigurationsfil.

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

11. I standardserverblokkonfigurationsfilen (/ etc/nginx/sites-tilgængelig/standard) skal du fjerne kommentar til placeringsdirektivet til behandling af PHP-anmodninger for at ligne det, der vises i det følgende skærmbillede.

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

Gem filen, og afslut.

12. Test derefter NGINX-konfigurationens syntaks for rigtighed. Hvis det er OK, skal du genstarte Nginx-tjenesten for at anvende de nye ændringer.

$ sudo nginx -t
$ sudo systemctl restart nginx

13. Test nu, om NGINX kan arbejde sammen med PHP-FPM til at behandle PHP-anmodninger. Opret en simpel info.php-side under dokumentets rodmappe.

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

14. Naviger i din browser ved hjælp af følgende adresse. PHP-konfigurationssiden skal indlæses som vist i det følgende skærmbillede.

http://SERVER_IP/info.php

Trin 5: Installation af PhpMyAdmin i Ubuntu 20.04

15. PhpMyAdmin er en gratis og open source webbaseret PHP-applikation, der er specielt oprettet til administration af MySQL/MariaDB-databaseservere via en webbrowser. Det giver en intuitiv grafisk grænseflade og understøtter en bred vifte af fælles funktioner til databaseadministrationsopgaver.

$ sudo apt install phpmyadmin

16. Under pakkeinstallationen bliver du bedt om at konfigurere flere aspekter af PhpMyAdmin-pakken. Først bliver du bedt om at vælge standardwebserveren til at køre den. Tryk på Esc, fordi NGINX ikke er på listen.

17. Dernæst kræver PhpMyAdmin en database at arbejde med. I denne pakkekonfigurationsprompt skal du vælge Ja for at konfigurere en database til PhpMyAdmin med dbconfig-common-pakken.

18. I den næste prompt skal du angive en adgangskode til PhpMyAdmin for at registrere sig i MariaDB-databasen. Indtast en sikker adgangskode, og klik på Enter.

Trin 6: Konfiguration af NGINX til at tjene PhpMyAdmin-websted

19. For at gøre det muligt for NGINX at betjene PhpMyAdmin-webstedet placeret på/usr/share/phpmyadmin, skal du oprette et symlink til denne mappe under dokumentroden og derefter indstille de korrekte tilladelser og ejerskab i PHPMyAdmin-biblioteket 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. Desuden skal du sikre dig, at indeksdirektivet i standardserverblokkonfigurationsfilen (/ etc/nginx/sites-available/default) indeholder index.php som vist i det følgende skærmbillede.

21. Genstart derefter Nginx-tjenesten igen for at anvende ovenstående ændringer.

$ sudo systemctl restart nginx

22. Gå nu ind på PhpMyAdmin-webstedet fra en browser ved hjælp af følgende adresse.

http://SERVER_IP/phpmyadmin

Autentificer på login-siden med PHPMyAdmin-brugernavnet og adgangskoden. Husk, at det eksterne rodbrugerlogin er deaktiveret, medmindre du får adgang til PHPMyAdmin på den lokale vært, hvor MariaDB-databasen er installeret, rodadgangen fungerer ikke.

Sidst men ikke mindst skal du sikre din PhpMyAdmin-installation ved hjælp af vores vejledning: 4 nyttige tip til at sikre PhpMyAdmin-webgrænsefladen.

Konklusion

Din LEMP-opsætning er nu afsluttet, og du kan begynde at opbygge dine webapplikationer eller bare spille med de Nginx- og MariaDB-tjenester, du lige har installeret. Disse er meget udbredt, og det anbefales stærkt at få mere viden om dem til systemadministratorer.