Jak zainstalować PhpMyAdmin z Nginx i Let's Encrypt SSL
Linux

Jak zainstalować PhpMyAdmin z Nginx i Let’s Encrypt SSL

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:

  1. Masz serwer działający na systemie Linux (np. Ubuntu 20.04/22.04 lub Debian).
  2. Serwer Nginx jest zainstalowany i działa.
  3. MySQL lub MariaDB są zainstalowane i skonfigurowane.
  4. Masz domenę wskazującą na Twój serwer.
  5. Posiadasz uprawnienia administratora (root) lub użytkownika z dostępem do sudo.
Jak zainstalować PhpMyAdmin z Nginx i Let's Encrypt SSL
Jak zainstalować PhpMyAdmin z Nginx i Let’s Encrypt SSL

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 i Enter.
  • Skonfiguruj bazę danych dla PhpMyAdmin. Wybierz Tak, a następnie ustaw hasło administratora MySQL.
Czytaj  Jak sprawdzić model dysku twardego Linux

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:

  1. Stwórz plik .htpasswd:
    sudo apt install apache2-utils
    sudo htpasswd -c /etc/nginx/.htpasswd admin
    
  2. Zmodyfikuj konfigurację Nginx, dodając uwierzytelnianie:
    location / {
        auth_basic "Restricted Access";
        auth_basic_user_file /etc/nginx/.htpasswd;
        try_files $uri $uri/ =404;
    }
    
  3. 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.

Czytaj  Jak zainstalować system Linux na swoim komputerze

Częste problemy i ich rozwiązania

  1. 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.
  2. Błąd „502 Bad Gateway”:
    • Upewnij się, że PHP-FPM działa: sudo systemctl status php7.4-fpm.
  3. 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.

Polecane wpisy
Konfiguracja Samba w Linuksie
Konfiguracja Samba w Linuksie

Konfiguracja Samba w Linuksie Samba to oprogramowanie, które pozwala na udostępnianie plików i drukarek w systemie Linux dla komputerów z Czytaj dalej

Optymalizacja jądra Linuksa: Jak wycisnąć więcej z Twojego systemu
Optymalizacja jądra Linuksa: Jak wycisnąć więcej z Twojego systemu

Optymalizacja jądra Linuksa: Jak wycisnąć więcej z Twojego systemu Jądro Linuksa to serce każdego systemu operacyjnego opartego na Linuksie. Jest Czytaj dalej