PhpMyAdmin jest interfejsem graficznym umożliwiającym tworzenie, magazynowanie oraz edycję baz danych stworzonych w MySQL.
W tym poradniku nauczysz się jak instalować phpMyAdmin oraz jak zabezpieczyć go w Ubuntu 18.04.
Poradnik ten pomoże ci zainstalować phpmyadmin na twoim serwerze Ubuntu 18.04, pod warunkiem, iż posiada skonfigurowany LAMP. Jeśli jeszcze nie skonfigurowałeś LAMP, skorzystaj z tego poradnika.
Najpierw połącz się z serwerem za pośrednictwem połączenia SSH. Jeśli jeszcze tego nie zrobiłeś, zalecamy skorzystanie z naszej instrukcji, aby nawiązać bezpieczne połączenie przez SSH. W przypadku lokalnego serwera przejdź do następnego punktu i otwórz terminal swojego serwera.
Instalacja phpMyAdmin
PhpMyAdmin znajduje się w podstawowym repozytorium Ubuntu.
Najpierw odśwież indeks apt, a następnie pobierz i zainstaluj phpMyAdmin:
$ sudo apt update
$ sudo apt install phpmyadmin php-mbstring php-gettext
Naciśnij Y, a następnie Enter by potwierdzić.
Pojawi się następujący komunikat:
Z listy wybierz apache jednak uważaj, czerwony kwadrat nie oznacza wybrania opcji. W celu wybrania apache, naciśnij spację, a następnie Enter. Jeśli nie naciśniesz spacji, pliki wymagane do instalacji nie zostaną przeniesione.
Po naciśnięciu Enter, otrzymasz następujący komunikat:
Wybierz Yes i naciśnij Enter.
Musisz teraz wprowadzić hasło do bazy danych administratora. Wprowadź hasło, naciśnij TAB by zaznaczyć OK i wybierz na klawiaturze Enter.
Teraz wprowadź oraz zatwierdź hasło dla phpMyAdmin.
Tak jak uprzednio, wprowadź nowe hasło, naciśnij TAB by zaznaczyć OK i wybierz na klawiaturze Enter.
Potwierdź hasło.
Po zakończeniu instalacji, plik konfiguracyjny zostanie dodany w tym miejscu:
/etc/apache2/conf-enabled/phpmyadmin.conf
Teraz należy aktywować rozszerzenie PHP – mbstring. W tym celu wpisz:
$ sudo phpenmod mbstring
By zaakceptować zmiany, zrestartuj Apache:
$ sudo systemctl restart apache2
Zarządzanie uprawnieniami dostępu
By użyć phpMyAdmin, nie loguj się na konto użytkownika utworzonego automatycznie podczas instalacji. Zamiast tego zaloguj się na konto root lub na konto database manager przy pomocy interfejsu phpMyAdmin.
Możesz skonfigurować jedno lub oba konta.
KONFIGURACJA HASŁA DLA KONTA ROOT USŁUGI MYSQL
Celem zalogowania się jako konto root MySQL wymagane jest potwierdzenie auth_socket w przeciwieństwie do prostego hasła. By zalogować się na konto root MySQL przy pomocy phpMyAdmin należy zmienić sposób potwierdzenia tożsamości.
W tym celu wejdź do MySQL:
$ sudo mysql
Sprawdź metody autoryzacji dla każdego użytkownika wpisując:
$ SELECT user, authentication_string, plugin, host FROM mysql.user;
Lista dla użytkowników MySQL zostania wyświetlona. Tutaj możesz sprawdzić jak wygląda auth_socket dla użytkownika root.
+------------------+-------------------------------------------+-----------------------+-----------+
| user | authentication_string | plugin | host |
+------------------+-------------------------------------------+-----------------------+-----------+
| root | | auth_socket | localhost |
| mysql.session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| mysql.sys | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| debian-sys-maint | *8486437DE5F65ADC4A4B001CA591363B64746D4C | mysql_native_password | localhost |
| phpmyadmin | *5FD2B7524254B7F81B32873B1EA6D681503A5CA9 | mysql_native_password | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+
5 rows in set (0.00 sec)
Aby zmienić metodę zabezpieczenia konta z auth_socket na mysql_native_password, co umożliwi logowanie przy pomocy hasła na konto root, wpisz:
$ ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'testowe';
Zamiast wartości testowe, wprowadź hasło, które będziesz musiał zapamiętać.
Potwierdź zmiany które wprowadziłeś wpisując:
FLUSH PRIVILEGES;
Tym sposobem serwer będzie poinformowany o konieczności zmiany zabezpieczeń dla konta root.
Zobacz, czy zmiany zostały zapisane poprzez powtórzenie komendy.
$ SELECT user, authentication_string, plugin, host FROM mysql.user;
Jeśli wszystko zostało prawidłowo zmienione, metoda zabezpieczeń dla konta root będzie podobna do poniższej:
+------------------+-------------------------------------------+-----------------------+-----------+
| user | authentication_string | plugin | host |
+------------------+-------------------------------------------+-----------------------+-----------+
| root | *DE06E242B88EFB1FE4B5083587C260BACB2A6158 | mysql_native_password | localhost |
| mysql.session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| mysql.sys | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| debian-sys-maint | *8486437DE5F65ADC4A4B001CA591363B64746D4C | mysql_native_password | localhost |
| phpmyadmin | *5FD2B7524254B7F81B32873B1EA6D681503A5CA9 | mysql_native_password | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+
5 rows in set (0.00 sec)
Wyjdź z MySQL za pomocą polecenia:
$ exit;
Po potwierdzeniu zmiany, użyj wybrane hasło celem zalogowania się jako root do panelu phpMyAdmin.
KONFIGURACJA HASŁA DLA DEDYKOWANEGO UŻYTKOWNIKA MYSQL
Aby zalogować się do phpMyAdmin nie jako root ale jako konto utworzone specjalnie w tym celu, należy w pierwszej kolejności utworzyć nowe konto.
W tym celu wejdź do MySQL.
W przypadku jeśIi utworzyłeś już konto root z hasłem, wpisz:
$ mysql -u root -p
Jeśli nie planujesz używać konta root wpisz:
$ sudo mysql
Teraz utwórz nowego użytkownika, a następnie wybierz jego login i hasło:
$ CREATE USER 'login'@'localhost' IDENTIFIED BY 'hasło';
Zastąp “login” i “hasło” wartościami przez siebie wybranymi.
Aby dać nowemu użytkownikowi wszystkie konieczne uprawnienia, wpisz:
$ GRANT ALL PRIVILEGES ON *. * TO 'login'@'localhost' WITH GRANT OPTION;
Wyjdź z MySQL wpisując:
$ exit
Pierwsze kroki w phpMyAdmin
Aby połączyć się z serwerem, musisz w pasku adresu swojej przeglądarki www wpisać: http: // IP-SERWERA / phpmyadmin.
Jeśli adres jest prawidłowy, zostania wyświetlony ekran logowania, do którego należy się zalogować przy pomocy konta root lub dedykowanego konta.
Jeśli wszystko zostało prawidłowo wprowadzone, zostania wyświetlona strona główna panelu phpMyAdmin.
Ochrona przed atakami
PhpMyAdmin w domyślnej konfiguracji jest podatny na ataki z zewnątrz, jako że zawartość baz danych jest kusząca dla niektórych ludzi.
Najłatwiejszym sposobem ochrony przed tego typu atakami jest dodanie punktu dostępu dla całej usługi przy pomocy zintegrowanych funkcji Apache.
Taką zintegrowaną funkcją jest .htaccess.
Aby go skonfigurować, wejdź do pliku .conf w katalogu apache.
W tym celu wpisz:
$ sudo nano /etc/apache2/conf-available/phpmyadmin.conf
W pliku .conf wyszukaj poniższy fragment tekstu:
<Directory / usr / share / phpmyadmin>
A następnie dodaj:
AllowOverride All
Po dodaniu zmiennej AllowOverride All, zapisz i zamknij plik .conf, a następnie zrestartuj Apache, by zmiany zostały zaimplementowane.
$ sudo systemctl restart apache2
Po odblokowaniu .htaccess dla phpMyAdmin, utwórz nowy plik.
W tym celu przejdź do folderu phpMyAdmin i wpisz
$ sudo nano /usr/share/phpmyadmin/.htaccess
Będąc w edycji pliku, wpisz:
AuthType Basic
AuthName "Chronione dane"
AuthUserFile /etc/phpmyadmin/.htpasswd
Require valid-user
Dzięki temu utworzone zostania proste okno logowania.
Nazwą okna logowania będzie “Chronione dane”. Nazwa okna może być dowolnie zmieniana. Nie radzimy podawania nazwy, która mogłaby wskazywać na zawartość kryjącą się za nim, celem nie zwracania uwagi osób niepowołanych.
Zapisz zmiany i zamknij plik.
Teraz utwórz plik z hasłem w następujący sposób:
$ sudo htpasswd -c /etc/phpmyadmin/.htpasswd login
Zastąp “login” dowolną nazwą użytkownika.
Będziesz poproszony o wprowadzenie i potwierdzenie hasła, a plik go zawierający zostanie utworzony tutaj: /etc/phpmyadmin/.htpasswd.
Od tej pory, przed logowaniem do phpMyAdmin, wymagane będzie by dodatkowo zalogować się przy pomocy utworzonej nazwy użytkownika i hasła.
Po udanym logowaniu, prawidłowa strona logowania do phpMyAdmin zostania wyświetlona.