Hur man installerar och säkrar phpMyAdmin med Nginx på Ubuntu 16.04

Hur man installerar och säkrar phpMyAdmin med Nginx på Ubuntu 16.04

Introduktion

phpMyAdmin är ett kraftfullt webbverktyg med öppen källkod som ger användarna ett intuitivt gränssnitt för att hantera MySQL- och MariaDB-databaser. Genom att integrera phpMyAdmin med Nginx, en högpresterande webbserver, kan du skapa en säker och effektiv miljö för din databasadministration. Den här guiden kommer att vägleda dig genom processen att installera och konfigurera phpMyAdmin med Nginx på Ubuntu 16.04-servrar.

Förutsättningar

* En Ubuntu 16.04-server med root-åtkomst eller sudo-privilegier
* En installerad stack med LAMP (Linux, Apache, MySQL, PHP)
* Nginx installerad och konfigurerad som proxyserver
* En brandvägg konfigurerad för att tillåta inkommande anslutningar till Nginx

Installation

1. Installera phpMyAdmin-paketet


sudo apt-get update
sudo apt-get install phpmyadmin

2. Konfigurera phpMyAdmin

Standardkonfigurationsfilen för phpMyAdmin finns på /etc/phpmyadmin/config.inc.php. Öppna filen i en textredigerare:


sudo nano /etc/phpmyadmin/config.inc.php

Gör följande ändringar i filen:

* Lägg till följande rader efter raden $cfg['Servers'][$i]['auth_type'] = 'config';:


$cfg['Servers'][$i]['host'] = 'localhost';
$cfg['Servers'][$i]['port'] = '3306';
$cfg['Servers'][$i]['user'] = 'mysql_username';
$cfg['Servers'][$i]['password'] = 'mysql_password';

* Ersätt mysql_username och mysql_password med MySQL-användarnamnet och lösenordet.

Säkerhet

1. Aktivera SSL/TLS

För att skydda data som överförs mellan Nginx och phpMyAdmin, kan du aktivera SSL/TLS. Skapa först ett självsignerat SSL-certifikat:


sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/nginx/ssl/phpmyadmin.key -out /etc/nginx/ssl/phpmyadmin.crt

2. Konfigurera Nginx

Öppna Nginx-konfigurationsfilen för phpMyAdmin:


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

Lägg till följande block för att aktivera SSL:


server {
listen 443 ssl;
server_name phpmyadmin.example.com;

ssl_certificate /etc/nginx/ssl/phpmyadmin.crt;
ssl_certificate_key /etc/nginx/ssl/phpmyadmin.key;

location / {
proxy_pass http://localhost:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}

Ersätt phpmyadmin.example.com med ditt eget domännamn eller IP-adress.

3. Aktivera HTTP-autentisering

För att lägga till ett ytterligare säkerhetslager kan du aktivera HTTP-autentisering för phpMyAdmin. Öppna Nginx-konfigurationsfilen igen:


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

Lägg till följande block under location /-blocket:


auth_basic "Restricted";
auth_basic_user_file /etc/nginx/.htpasswd;

Skapa sedan .htpasswd-filen med följande kommando:


sudo htpasswd -c /etc/nginx/.htpasswd username

Ersätt username med det användarnamn du vill skapa och ange ett lösenord när du blir ombedd.

Slutföra installationen

1. Aktivera phpMyAdmin-konfigurationen

Aktivera phpMyAdmin-konfigurationen genom att länka den till Nginx-konfigurationerna:


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

2. Starta om Nginx

Starta om Nginx för att tillämpa ändringarna:


sudo systemctl restart nginx

3. Öppna phpMyAdmin-gränssnittet

Du bör nu kunna komma åt phpMyAdmin-gränssnittet genom att besöka följande URL:


https://phpmyadmin.example.com

Ersätt phpmyadmin.example.com med ditt eget domännamn eller IP-adress.

4. Logga in

Om du aktiverade HTTP-autentisering, ange användarnamnet och lösenordet du skapade tidigare för att logga in.

Slutsats

Genom att följa stegen i den här guiden har du framgångsrikt installerat och säkrat phpMyAdmin med Nginx på Ubuntu 16.04. Den här konfigurationen ger dig ett säkert och användarvänligt gränssnitt för att hantera dina databaser. Genom att regelbundet underhålla din installation och hålla dig uppdaterad om de senaste säkerhetskorrigeringarna kan du säkerställa att dina databaser är skyddade och tillgängliga.

Vanliga frågor

1. Hur uppdaterar jag phpMyAdmin?

Du kan uppdatera phpMyAdmin genom att köra följande kommando:


sudo apt-get update
sudo apt-get upgrade phpmyadmin

2. Hur återställer jag phpMyAdmin-lösenordet?

Du kan återställa lösenordet genom att ta bort den aktuella konfigurationsfilen och installera om phpMyAdmin:


sudo rm /etc/phpmyadmin/config.inc.php
sudo apt-get purge phpmyadmin
sudo apt-get install phpmyadmin

3. Hur aktiverar jag debug-läge i phpMyAdmin?

Du kan aktivera debug-läge genom att lägga till följande rad i /etc/phpmyadmin/config.inc.php-filen:


$cfg['DBG']['sql'] = true;

4. Hur installerar jag phpMyAdmin på en annan port?

Du kan ändra porten som phpMyAdmin lyssnar på genom att redigera /etc/nginx/sites-available/phpmyadmin.conf-filen och ändra listen 8080;-raden.

5. Hur lägger jag till nya användare till phpMyAdmin?

Du kan lägga till nya användare genom att använda kommandot CREATE USER i MySQL-konsolen:


mysql> CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'strong_password';

6. Hur ändrar jag språket i phpMyAdmin?

Du kan ändra språket genom att gå till Inställningar* > **Funktioner** > *Språk i phpMyAdmin-gränssnittet.

7. Hur förbättrar jag prestanda för phpMyAdmin?

För att förbättra prestanda kan du öka cachestorleken för frågor genom att lägga till följande rad i /etc/phpmyadmin/config.inc.php-filen:


$cfg['QueryCache']['enable'] = true;
$cfg['QueryCache']['max_queries'] = 100;

8. Hur felsöker jag phpMyAdmin-problem?

Kontrollera nginx- och phpMyAdmin-loggfilerna för eventuella felmeddelanden. Du kan också aktivera debug-läge för phpMyAdmin för att få mer detaljerad information.