Jak zainstalować PhpMyAdmin z Nginx i Let’s Encrypt SSL?
PhpMyAdmin to popularne narzędzie do zarządzania bazami danych MySQL/MariaDB za pomocą graficznego interfejsu użytkownika. W połączeniu z serwerem Nginx oraz certyfikatami SSL od Let’s Encrypt, możesz stworzyć bezpieczne i funkcjonalne środowisko do zarządzania bazami danych. W tym artykule przeprowadzimy Cię krok po kroku przez proces instalacji i konfiguracji PhpMyAdmin z Nginx i Let’s Encrypt SSL.
Wymagania wstępne
Przed rozpoczęciem upewnij się, że:
- Masz serwer działający na systemie Linux (np. Ubuntu 20.04/22.04 lub Debian).
- Serwer Nginx jest zainstalowany i działa.
- MySQL lub MariaDB są zainstalowane i skonfigurowane.
- Masz domenę wskazującą na Twój serwer.
- Posiadasz uprawnienia administratora (root) lub użytkownika z dostępem do
sudo
.

Krok 1: Zainstaluj PhpMyAdmin
1.1. Aktualizuj system
Przed instalacją zaktualizuj system, aby mieć pewność, że używasz najnowszych pakietów:
sudo apt update && sudo apt upgrade -y
1.2. Instalacja PhpMyAdmin
Zainstaluj PhpMyAdmin za pomocą menedżera pakietów:
sudo apt install phpmyadmin -y
Podczas instalacji zostaniesz poproszony o kilka opcji:
- Wybierz serwer WWW. Nginx nie jest dostępny na tej liście, więc możesz pominąć ten krok naciskając
Tab
iEnter
. - Skonfiguruj bazę danych dla PhpMyAdmin. Wybierz
Tak
, a następnie ustaw hasło administratora MySQL.
Krok 2: Konfiguracja Nginx dla PhpMyAdmin
PhpMyAdmin nie tworzy automatycznej konfiguracji dla Nginx. Musisz ją dodać ręcznie.
2.1. Stwórz plik konfiguracji
Utwórz nowy plik konfiguracji dla PhpMyAdmin w katalogu sites-available
:
sudo nano /etc/nginx/sites-available/phpmyadmin
Dodaj poniższą konfigurację:
server {
listen 80;
server_name twoja-domena.pl;
root /usr/share/phpmyadmin;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock; # Upewnij się, że wersja PHP jest poprawna
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
}
2.2. Aktywuj konfigurację
Utwórz dowiązanie symboliczne w katalogu sites-enabled
:
sudo ln -s /etc/nginx/sites-available/phpmyadmin /etc/nginx/sites-enabled/
Następnie przetestuj konfigurację:
sudo nginx -t
Jeśli test przebiegł pomyślnie, uruchom ponownie Nginx:
sudo systemctl reload nginx
Krok 3: Instalacja certyfikatu SSL od Let’s Encrypt
3.1. Instalacja Certbot
Zainstaluj Certbot i wtyczkę Nginx:
sudo apt install certbot python3-certbot-nginx -y
3.2. Uzyskanie certyfikatu
Uruchom Certbot, aby uzyskać certyfikat SSL dla swojej domeny:
sudo certbot --nginx -d twoja-domena.pl
Podczas konfiguracji Certbot automatycznie zaktualizuje plik Nginx, aby obsługiwał ruch HTTPS.
3.3. Sprawdzenie automatycznego odnawiania
Certbot instaluje automatyczne zadanie odnawiania certyfikatu. Możesz je przetestować:
sudo certbot renew --dry-run
Krok 4: Dostosowanie konfiguracji PhpMyAdmin
4.1. Zabezpieczenie dostępu
PhpMyAdmin może być narażony na ataki brute-force. Dodaj dodatkową warstwę zabezpieczeń za pomocą uwierzytelniania HTTP:
- Stwórz plik
.htpasswd
:sudo apt install apache2-utils sudo htpasswd -c /etc/nginx/.htpasswd admin
- Zmodyfikuj konfigurację Nginx, dodając uwierzytelnianie:
location / { auth_basic "Restricted Access"; auth_basic_user_file /etc/nginx/.htpasswd; try_files $uri $uri/ =404; }
- Uruchom ponownie Nginx:
sudo systemctl reload nginx
4.2. Ograniczenie dostępu do określonych adresów IP
Jeśli chcesz ograniczyć dostęp tylko do określonych adresów IP, dodaj do konfiguracji:
location / {
allow 192.168.1.100; # Twój adres IP
deny all;
}
Krok 5: Testowanie instalacji
Otwórz przeglądarkę i przejdź pod adres https://twoja-domena.pl
. Powinieneś zobaczyć ekran logowania do PhpMyAdmin. Użyj danych logowania administratora MySQL.
Częste problemy i ich rozwiązania
- Brak dostępu do PhpMyAdmin:
- Sprawdź, czy Nginx działa:
sudo systemctl status nginx
. - Sprawdź logi błędów:
sudo tail -f /var/log/nginx/error.log
.
- Sprawdź, czy Nginx działa:
- Błąd „502 Bad Gateway”:
- Upewnij się, że PHP-FPM działa:
sudo systemctl status php7.4-fpm
.
- Upewnij się, że PHP-FPM działa:
- Certyfikat SSL nie działa:
- Upewnij się, że domena wskazuje na Twój serwer.
- Sprawdź konfigurację Nginx i Certbot.
Podsumowanie
Instalacja PhpMyAdmin z Nginx i Let’s Encrypt SSL pozwala na stworzenie bezpiecznego i wydajnego środowiska do zarządzania bazami danych. Dzięki połączeniu zaawansowanych funkcji Nginx z darmowymi certyfikatami SSL od Let’s Encrypt Twoje dane są lepiej chronione przed potencjalnymi zagrożeniami. Regularne monitorowanie i aktualizacje zapewnią stabilność i bezpieczeństwo Twojej konfiguracji.