Sådan installeres phpMyAdmin med Nginx på Debian 12, 11 eller 10

phpMyAdmin er et meget brugt open source-værktøj skrevet i PHP, designet til at håndtere administrationen af ​​MySQL og MariaDB over nettet. Det tilbyder en intuitiv grafisk grænseflade til udførelse af forskellige databaseoperationer, såsom oprettelse, ændring og sletning af databaser, tabeller, felter eller rækker, udførelse af SQL-sætninger og styring af brugertilladelser. Installation af phpMyAdmin på Debian 12, 11 eller 10 involverer opsætning af LEMP-stakken (Linux, NGINX, MySQL/MariaDB, PHP) manuelt, efterfulgt af at downloade og konfigurere den seneste build af phpMyAdmin.

Brug af phpMyAdmin forenkler databasestyring, hvilket gør den tilgængelig selv for brugere, der måske ikke er komfortable med at bruge kommandolinjen til databaseoperationer. Denne guide vil lede dig gennem trinene til manuelt at installere LEMP-stakken, konfigurere phpMyAdmin og sikre din opsætning.

Installer LEMP Stack på Debian til phpMyAdmin

Trin 1: Opdatering af Debian System

Begynd at opdatere dit Debian-system med de seneste pakker for en sikker og fejlfri opsætning. Dette proaktive trin har til formål at reducere sandsynligheden for konflikter under installationsprocessen.

sudo apt update && sudo apt upgrade

Skulle du opdatere kernen eller mange pakker, er en genstart nødvendig.

Trin 2: Installer Nginx

Installer først Nginx for at etablere en LEMP-stak. Udfør følgende kommando:

sudo apt install nginx

Systemet aktiverer typisk Nginx-tjenesten som standard efter installation. Kontroller dog altid forsigtigt dens status og sørg for, at den fungerer som forventet:

systemctl status nginx

Hvis serveren ikke er aktiv, skal du bruge følgende kommando til at aktivere Nginx og sikre, at den starter automatisk ved hver genstart:

sudo systemctl enable nginx --now

Denne kommando installerer standardversionen af ​​Nginx.

Bemærk: Hvis du er interesseret i at implementere den seneste stabile eller hovedversionen af ​​Nginx, kan du overveje at følge vores vejledning om hvordan man opgraderer Nginx på Debian 12, 11 eller 10 Linux.

Trin 3: Installer MariaDB

Dernæst skal du installere databasekomponenten i LEMP-stakopsætningen. Mange vælger MariaDB frem for MySQL på grund af dens overlegne ydeevne og ekstra funktioner.

For at installere MariaDB skal du køre følgende:

sudo apt install mariadb-server mariadb-client

Bemærk: Hvis du gerne vil installere en anden version af MariaDB fra de officielle MariaDB.org-lagre, er vores vejledning om installation af MariaDB 11.x eller 10.x på Debian 12, 11 eller 10 Linux.

Efter afslutningen skal du bekræfte MariaDB-tjenestens aktivering og korrekte funktion, svarende til din verifikation af Nginx:

systemctl status mariadb

Hvis MariaDB ikke er aktiveret, skal du bruge kommandoen nedenfor til at aktivere den og sikre, at den starter ved genstart.

sudo systemctl enable mariadb --now

For at styrke din MariaDB's sikkerhed skal du udføre det medfølgende sikkerhedsscript, mysql_secure_installation, under installationsprocessen. Standardindstillingerne for en ny MariaDB-installation efterlader ofte sårbarheder, som ondsindede aktører kan udnytte.

sudo mysql_secure_installation

Udførelse af sikkerhedsscriptet guider dig gennem flere trin for at styrke din MariaDB's sikkerhed. Disse trin involverer indstilling af root-adgangskoden, begrænsning af fjernadgang, sletning af anonyme brugerkonti og fjernelse af testdatabasen.

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current
password for the root user. If you've just installed MariaDB, and
haven't set the root password yet, you should just press enter here.

Enter current password for root (enter for none): 
OK, successfully used password, moving on...

Setting the root password or using the unix_socket ensures that nobody
can log into the MariaDB root user without the proper authorisation.

You already have your root account protected, so you can safely answer 'n'.

Switch to unix_socket authentication [Y/n] Y <---- Type Y then press the ENTER KEY.
Enabled successfully!
Reloading privilege tables..
 ... Success!


You already have your root account protected, so you can safely answer 'n'.

Change the root password? [Y/n] Y <---- Type Y then press the ENTER KEY.
New password: 
Re-enter new password: 
Password updated successfully!
Reloading privilege tables..
 ... Success!


By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] Y <---- Type Y then press the ENTER KEY.
 ... Success!

Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] Y <---- Type Y then press the ENTER KEY.
 ... Success!

By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] Y <---- Type Y then press the ENTER KEY.
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] Y <---- Type Y then press the ENTER KEY.
 ... Success!

Cleaning up...

All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!

Trin 4: Installer PHP

Installer PHP-tjenesten for at fuldføre LEMP-stakopsætningen. PHP fungerer gennem PHP-FPM-tjenesten og yderligere moduler, der er nødvendige for phpMyAdmin, som broen mellem Nginx og MariaDB.

Bemærk: Hvis du ønsker at installere en specifik version af PHP, se vores guide vedr installere enhver PHP 8.x-version tilgængelig på Debian 12, 11 eller 10 Linux.

For at implementere PHP og PHP-FPM, sammen med de nødvendige moduler på dit Debian-system, skal du udføre følgende:

sudo apt install php-fpm php-mbstring php-bcmath php-xml php-mysql php-common php-gd php-cli php-curl php-zip php-gd

Efter PHP-installation skal du bekræfte status for PHP-tjenesten, ligesom du gjorde for MariaDB og Nginx.

For PHP 8.2, som er standarden på Debian Bookworm, for eksempel, ville den specifikke kommando være:

systemctl status php8.2-fpm

Hvis PHP-tjenesten forbliver inaktiv, skal du bruge følgende kommando til at aktivere den og sikre, at den starter automatisk ved hver genstart.

sudo systemctl enable php-fpm --now

Afslut phpMyAdmin med Nginx og Debian

Dette afsnit forklarer proceduren for fremskaffelse af phpMyAdmin-arkivet og opsætning af de nødvendige mapper, tilladelser og databaseposter.

Trin 1: Opret en superbruger til phpMyAdmin

Konventionelt kan du få adgang til phpMyAdmin ved hjælp af root-brugeren. For at overholde robust sikkerhedspraksis skal du dog oprette en særskilt superbruger i stedet for at bruge root-brugeren. Dette koncept stemmer overens med Linux-praksis med at udnytte en sudo-bruger i stedet for at logge direkte på som root.

Først skal du godkende dig selv i terminalgrænsefladen:

sudo mariadb -u root

Efter vellykket godkendelse involverer det efterfølgende trin at oprette en database i MariaDB-terminalen.

CREATE USER PMAUSER IDENTIFIED BY 'password here change';

Derefter skal du oprette en bruger og give dem de nødvendige tilladelser, som vist nedenfor:

GRANT ALL PRIVILEGES ON *.* TO 'PMAUSER'@'localhost' IDENTIFIED BY 'password here change' WITH GRANT OPTION;

Udskiftning af pladsholderadgangskoden "adgangskode her ændres" med en sikker adgangskode er afgørende, før kommandoerne udføres.

Når du har oprettet brugeren og indstillet tilladelser, skal du huske at opdatere rettighederne for ændringerne.

FLUSH PRIVILEGES;

For at afslutte MariaDB-terminalen skal du bruge følgende kommando.

QUIT;

Trin 2: Download phpMyAdmin-kildekoden

Dette afsnit kaster lys over, hvordan man anskaffer kildearkivet til phpMyAdmin. Udnyttelse af kommandolinjeterminalen giver en effektiv metode til at downloade den seneste version på alle sprog.

For at downloade phpMyAdmin-arkivet skal du udføre følgende kommando i terminalen.

DATA="$(wget https://www.phpmyadmin.net/home_page/version.txt -q -O-)"
URL="$(echo $DATA | cut -d ' ' -f 3)"
VERSION="$(echo $DATA | cut -d ' ' -f 1)"
wget https://files.phpmyadmin.net/phpMyAdmin/${VERSION}/phpMyAdmin-${VERSION}-all-languages.tar.gz

Hvis du ønsker den engelske version af phpMyAdmin, skal du erstatte den sidste linje i den forrige kommando med følgende:

wget https://files.phpmyadmin.net/phpMyAdmin/${VERSION}/phpMyAdmin-${VERSION}-english.tar.gz

Efter download er det efterfølgende trin at udpakke phpMyAdmin-arkivet ved at udføre nedenstående kommando:

tar xvf phpMyAdmin-${VERSION}-all-languages.tar.gz

Trin 3: Konfigurer phpMyAdmin

Den næste fase involverer migrering af alle udpakkede filer til deres endelige destination i /var/www/-mappen ved hjælp af mv-kommandoen.

sudo mv phpMyAdmin-*/ /var/www/phpmyadmin

Når du installerer phpMyAdmin fra kilden, vil du se, at en TMP-mappe ikke eksisterer som standard. Derfor ville det være bedst, hvis du oprettede denne mappe manuelt.

sudo mkdir /var/www/phpmyadmin/tmp

phpMyAdmin-biblioteket indeholder en standard konfigurationseksempelfil, som du skal omdøbe for at phpMyAdmin kan genkende den. Brug CP-kommandoen til at oprette en kopi af standardfilen i mappen /var/www/phpmyadmin/, hvilket sikrer en sikkerhedskopi.

For at replikere config.sample.inc.php til config.inc.php skal du udføre følgende kommando:

sudo cp /var/www/phpmyadmin/config.sample.inc.php /var/www/phpmyadmin/config.inc.php

Når du har kopieret filen, skal du åbne den med en foretrukken teksteditor. I dette eksempel bruger vi nano-teksteditoren:

sudo nano /var/www/phpmyadmin/config.inc.php

phpMyAdmin anvender en Blowfish-chiffer. For at ændre denne indstilling skal du navigere til linjen, der begynder med $cfg['blowfish_secret'].

$cfg['blowfish_secret'] = ''; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */

Tildel en streng på 32 tilfældige tegn inden for de enkelte anførselstegn. Brug pwgen-programmet som en praktisk metode til at generere denne streng. Udfør følgende terminalkommando for at installere pwgen:

Dette holder alle handlinger klare og direkte tilskrevet brugeren (eller den, der udfører handlingen).

sudo apt install pwgen 

Efter installationen skal du udføre kommandoen nedenfor:

pwgen -s 32 1

Denne kommando vil generere en streng på 32 tilfældige tegn til at tjene som blowfish-hemmeligheden.

Eksempel på indsættelse af chifferen i konfigurationsfilen (Kopier ikke):

UvqAlsvTxRdYIyO8TnlkJsVQaWs2LfgL

Eksempel i konfigurationsfilen:

For et flertal af brugere bør de resterende standardindstillinger være tilstrækkelige. Men hvis din server er placeret på en anden server i dit netværk, skal du finde og ændre linjen $cfg['Servers'][$i]['host'] for at afspejle den private IP-adresse. En illustration af denne modifikation er vist nedenfor:

$cfg['Servers'][$i]['host'] = '192.168.55.101';

Trin 4: Konfigurer phpMyAdmin-filtilladelser

At tildele tilladelser til mappeejeren til www-bruger er afgørende for at sikre kompatibilitet og sikkerhed.

Sådan indstiller du madmadstilladelsen:

sudo chown -R www-data:www-data /var/www/phpmyadmin/

Sådan indstiller du chmod-tilladelsen:

sudo find /var/www/phpmyadmin/ -type d -exec chmod 755 {} \;
sudo find /var/www/phpmyadmin/ -type f -exec chmod 644 {} \;

I det efterfølgende afsnit vil vi diskutere oprettelse og opsætning af Nginx-tjenesten Block for din phpMyAdmin-tjeneste.

Opsætning af en NGINX-serverblok til phpMyAdmin

For at få adgang til phpMyAdmin-webgrænsefladen skal du oprette en NGINX-serverblok som et væsentligt trin. Etabler et særskilt underdomæne for at styrke sikkerhedsforanstaltningerne og afværge brute-force-angreb, hvilket varmt anbefales. Du er velkommen til at navngive dette underdomæne, hvad end du finder passende.

Trin 1: Opret Nginx-serverblok til phpMyAdmin på Debian

Lad os begynde med at oprette og åbne din serverblok med nano-teksteditoren. Udfør følgende kommando:

sudo nano /etc/nginx/sites-available/phpmyadmin.conf

Trin 2: Konfigurer Nginx Server Block

Når du har åbnet serverblokfilen, skal du kopiere og indsætte følgende tekst i filen. Sørg for at erstatte domænets URL med din egen:

server {
  listen 80;
  listen [::]:80;
  server_name pma.example.com;
  root /var/www/phpmyadmin/;
  index index.php index.html index.htm index.nginx-debian.html;

  access_log /var/log/nginx/phpmyadmin_access.log;
  error_log /var/log/nginx/phpmyadmin_error.log;

  location / {
    try_files $uri $uri/ /index.php;
  }

  location ~ ^/(doc|sql|setup)/ {
    deny all;
  }

  location ~ \.php$ {
    fastcgi_pass unix:/run/php/php8.2-fpm.sock;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
    include snippets/fastcgi-php.conf;
  }

  location ~ /\.ht {
    deny all;
  }
}

Her er nogle kritiske punkter at bemærke om eksemplet ovenfor:

  • /run/php/php8.2-fpm.sock; – Denne sti skal afspejle den version af PHP-FPM, der er i brug. Det kunne for eksempel være 8.3, 8.1, 8.0, 7.4 osv.
  • root /var/www/phpmyadmin/; – Dette henviser til stien, der er defineret i denne vejledning. Hvis din phpMyAdmin er placeret et andet sted, skal du sørge for at opdatere denne linje i overensstemmelse hermed.

Hvis du er den eneste person, der får adgang til serveren fra en statisk IP-adresse, kan du overveje at tilføje følgende kode over den første placeringsindtastning:

  allow <your ip address>;
  deny all; 

  location / {
    try_files $uri $uri/ /index.php;
  }

Ovenstående kode blokerer effektivt uautoriserede besøgende på siden med en 403-fejl og giver udelukkende adgang til din IP-adresse. Det er et væsentligt forsvar mod brute-force-angreb, selvom det måske ikke passer til alle opsætninger.

Trin 3: Gem og afslut teksteditoren

For at gemme dine ændringer skal du trykke på (CTRL+O), og for at afslutte editoren skal du trykke på (CTRL+X).

Trin 4: Oprettelse af et symbollink til konfigurationsfilen

Derefter skal du oprette et symbolsk link fra biblioteket med websteder til rådighed til det websted-aktiverede bibliotek, hvor konfigurationsfilen er:

sudo ln -s /etc/nginx/sites-available/phpmyadmin.conf /etc/nginx/sites-enabled/

Trin 5: Udførelse af en tørløbstest

En tørkørselstest er afgørende, før du springer for at genstarte NGINX-tjenesten. Denne foranstaltning er essentiel i live-miljøer og sikrer, at eventuelle ændringer af dine konfigurationsfiler ikke udløser NGINX-fejl:

sudo nginx -t

Hvis din konfiguration er fejlfri, vil følgende output hilse på dig:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Trin 6: Genstart af din NGINX-tjeneste

Til sidst, for at gøre ændringerne effektive, genstart din NGINX-tjeneste:

sudo systemctl restart nginx

Det afslutter dette afsnit om at oprette en NGINX-serverblok til phpMyAdmin. I næste afsnit vil du åbne og logge ind på phpMyAdmin-webgrænsefladen.

Navigering af phpMyAdmin-webgrænsefladen

Begynd din interaktion med phpMyAdmins grænseflade ved at starte din foretrukne webbrowser. Indtast pma.example.com i adresselinjen, og sørg for, at du erstatter "eksempel" med dit domænenavn eller server-IP-adresse. Husk, du kan også bruge localhost i interne miljøer.

Efter at have gjort dette, vil du lande på phpMyAdmin login-skærmen, som vist i følgende billede:

Naviger gennem login-skærmen ved at indtaste dine legitimationsoplysninger og vælge "fortsæt" eller "login". Denne handling giver dig adgang til phpMyAdmin-dashboardet, som det efterfølgende billede viser.

Som førstegangs phpMyAdmin-bruger vil du måske gøre dig bekendt med "statussiden". Det giver et omfattende indblik i din databases status og helbred.

Ud over statistiksiden inkorporerer phpMyAdmin også et "rådgiversystem." Denne praktiske funktion giver forslag til ydeevneforbedringer.

Det er dog klogt at huske, at mens rådgiveren anbefaler at vente i 24 timer, anser de fleste for at være mindst 72 timer mere optimalt. Dette sikrer, at databasesamplingen finder sted over en længere periode, hvilket giver mere præcise anbefalinger.

Derudover bør rådgiversystemet ikke være dit eneste grundlag for ændringer. Ændring af dine MySQL- eller MariaDB-konfigurationsfiler kræver omhyggelig overvejelse, grundig test og muligvis flere iterationer. Målet er at optimere konfigurationerne for de bedste resultater, og det tager ofte tid.

Sikre phpMyAdmin via Let's Encrypt SSL-certifikat

Opret et SSL-certifikat via Certbot

For at hærde sikkerheden for din phpMyAdmin-instans skal du køre Nginx over HTTPS ved hjælp af et SSL-certifikat. Udnyttelse af Let's Encrypt, en berømt certifikatmyndighed, der tilbyder gratis, automatiserede og åbne SSL-certifikater, giver den mest ligetil metode.

Installer først certbot-pakken, som hjælper med at administrere Let's Encrypt SSL-certifikater, ved at køre:

sudo apt install python3-certbot-nginx -y

Når du har gennemført installationen af ​​certbot-pakken, skal du oprette dit SSL-certifikat ved at udføre:

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email you@example.com -d pma.example.com

Ved påbegyndelse af certifikatinstallationsprocessen:

  • En prompt vil forespørge om modtagelse af e-mails fra EFF (Electronic Frontier Foundation).
  • Uanset om du er enig (Y) eller uenig (N), vil systemet automatisk installere og konfigurere dit TLS-certifikat.
  • Konfigurationen omfatter håndhævelse af HTTPS 301-omdirigeringer, tilføjelse af en Strict-Transport-Security-header og implementering af OCSP-hæftning.
  • Husk at erstatte e-mail og domænenavn i kommandoen med dine præcise detaljer.

Når du har fuldført denne opsætning, vil din URL migrere fra HTTP://pma.example.com til HTTPS://pma.example.com og automatisk omdirigere enhver adgang til den tidligere HTTP URL til den sikre HTTPS URL.

Opret et Cron-job til SSL-fornyelse

Etabler et cron-job, der automatisk fornyer dine certifikater for at strømline processen yderligere. Certbot leverer et script til automatisk fornyelse til dette formål. Før du opsætter dette job, skal du omhyggeligt udføre en tørkørselstest for at bekræfte, at alt fungerer korrekt ved hjælp af følgende kommando:

sudo certbot renew --dry-run

For at planlægge den automatiske fornyelse skal du åbne crontab-filen ved at udføre:

sudo crontab -e

Tjek regelmæssigt for certifikatfornyelse - mindst én gang dagligt - for at sikre, at dit certifikat forbliver gyldigt. Hvis en fornyelse bliver nødvendig, vil scriptet automatisk opdatere certifikatet. Brug cron-syntaksen til at indstille fornyelsen på dit foretrukne tidspunkt.

00 00 */1 * * /usr/sbin/certbot-auto renew

Konklusion

Med phpMyAdmin installeret og konfigureret på dit Debian-system, kan du effektivt administrere dine MySQL- eller MariaDB-databaser gennem en brugervenlig webgrænseflade. Regelmæssige opdateringer og sikkerhedskonfigurationer sikrer, at dit databasestyringsværktøj forbliver sikkert og opdateret. Nyd den bekvemmelighed og de kraftfulde funktioner, som phpMyAdmin tilbyder til at administrere dine databaser på Debian.

Joshua James
Følg mig
Seneste indlæg af Joshua James (se alt)

Skriv en kommentar