Komplett guide: MySQL + Nginx + phpMyAdmin på Debian (2025)
Komplett guide: MySQL + Nginx + phpMyAdmin på Debian (2025)
Denne guiden viser hvordan du setter opp en MySQL-database på en Debian-server, konfigurerer Nginx som webserver, og installerer phpMyAdmin slik at du kan administrere databasen via nettleser. Vi inkluderer ekstra sikkerhet slik at ikke hvem som helst kan få tilgang til phpMyAdmin.
Steg 1 → Oppdater systemet
sudo apt update && sudo apt upgrade -y
Steg 2 → Installer MySQL-server
sudo apt install mysql-server -y
Sjekk at tjenesten kjører:
sudo systemctl status mysql
Steg 3 → Sikre MySQL
Kjør sikkerhetsoppsettet:
sudo mysql_secure_installation
- Sett sterkt root-passord
- Fjern anonyme brukere
- Deaktiver ekstern root-tilgang
- Fjern test-database
Steg 4 → Opprett database og bruker
sudo mysql -u root -p
CREATE DATABASE testdb;
CREATE USER 'webuser'@'localhost' IDENTIFIED BY 'SterktPassord123!';
GRANT ALL PRIVILEGES ON testdb.* TO 'webuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;
Steg 5 → Installer Nginx og PHP
sudo apt install nginx php-fpm php-mysql -y
sudo systemctl enable nginx
sudo systemctl start nginx
Test i nettleser:
http://server-ip
Steg 6 → Installer phpMyAdmin
sudo apt install phpmyadmin php-mbstring php-zip php-gd php-json php-curl -y
Velg ingen webserver under installasjonen (vi setter opp manuelt). Aktiver moduler:
sudo phpenmod mbstring
sudo systemctl restart php*-fpm
Steg 7 → Konfigurer Nginx for phpMyAdmin
Lag en Nginx-konfig:
sudo nano /etc/nginx/sites-available/phpmyadmin.conf
Eksempelkonfig (bruk alias i stedet for root):
server {
listen 8080; # Kjør på port 8080 istedenfor standard 80
server_name server_ip;
location /dbadmin {
root /usr/share/phpmyadmin;
index index.php;
location ~ ^/dbadmin/(.+\.php)$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock; # juster etter PHP-versjon
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~* ^/dbadmin/(.+\.(ht|git|sql))$ {
deny all;
}
}
}
Aktiver konfig:
sudo ln -s /etc/nginx/sites-available/phpmyadmin.conf /etc/nginx/sites-enabled/
Test og restart:
sudo nginx -t
sudo systemctl reload nginx
Nå åpner du phpMyAdmin via:
http://server-ip:8080/dbadmin
Steg 8 → Ekstra sikkerhet for phpMyAdmin
- Bruk en annen port (som vist:
listen 8080;). - Endre alias (
/dbadmin→ bruk noe uvanlig, f.eks./supersecretadmin123). - IP-begrensning (tillat bare bestemte IP-er):
location /supersecretadmin123 { allow 123.45.67.89; # din IP deny all; } - Aktiver HTTPS med Let's Encrypt:
sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d dittdomene.no
- Bruk sterke MySQL-passord og unngå root-login i phpMyAdmin.
Steg 9 → Brannmur (UFW)
Tillat kun portene du bruker (SSH, Nginx HTTPS, phpMyAdmin-porten hvis nødvendig):
sudo ufw allow OpenSSH
sudo ufw allow 443/tcp
sudo ufw allow 8080/tcp
sudo ufw enable
Oppsummering
- Installer MySQL og sikre med
mysql_secure_installation - Opprett en database og egen bruker
- Installer Nginx + PHP
- Installer phpMyAdmin men ikke koble til standard
/phpmyadmin - Sett opp Nginx med alias + port (f.eks.
http://server-ip:8080/dbadmin) - Sikre med brannmur, HTTPS og IP-begrensning
Med dette oppsettet er phpMyAdmin langt tryggere, og ikke tilgjengelig for hvem som helst 🚀