Instalacja PhpMyAdmin na Debian 10

Poradniki
phpmyadmin, debian, poradnik-miesiąca
psycho
psycho
6 lat temu

Witajcie!

Dziś w krótkim poradniku opiszę jak zainstalować najnowszą* wersję phpmyadmin, czyli popularnego narzędzia do zarządzania bazami danych MySQL. Do poradnika został użyty czysty VPS KVM reinstalowany przez funkcje panelu.

⚠️ Jeśli używasz konta administratora "root", nie musisz dodawać przedrostku sudo lub w przypadku błędu o braku komendy po prostu go usuń.

Krok 1: Instalacja potrzebnych pakietów

Na początek zajmijmy się instalacją potrzebnych pakietów, co do instalacji apache i mariadb odsyłam do poradnika autorstwa @adminek153 : https://lvlup.rok.ovh/t/www-instalacja-apache-php-i-mysql-na-vps-dedyku/582

Debian 10 domyślnie w swoich repozytoriach posiada PHP w wersji 7.3, a więc dodawanie kluczy, repozytoriów możemy pominąć. Wpisujemy więc poniższe polecenie i czekamy na zakończenie instalacji wszystkich pakietów:

sudo apt install php-imagick php-phpseclib php-php-gettext php7.3-common php7.3-gd php7.3-imap php7.3-json php7.3-curl php7.3-zip php7.3-xml php7.3-mbstring php7.3-bz2 php7.3-intl php7.3-gmp unzip

Po instalacji pakietów w przypadku Apache2 wpisujemy:

systemctl restart apache2

Krok 2: Pobranie i instalacja PhpMyAdmin

⚠️ Jeśli potrzebujesz zainstalować inną wersję phpmyadmin należy podmienić link po poleceniu wget i nazwę archiwum po poleceniu unzip.

Przechodzimy do naszego katalogu domowego lub dowolnego katalogu gdzie chcemy pobrać nasze archiwum, po czym wpisujemy:

wget https://www.phpmyadmin.net/downloads/phpMyAdmin-latest-all-languages.zip

Po pobraniu należy wypakować archiwum. Robimy to poleceniem:

unzip phpMyAdmin-latest-all-languages.zip

⚠️ Jeśli chcesz zmienić miejsce, w którym zapiszesz phpmyadmin zapamiętaj ściężkę do folderu, będzie później potrzebna!

Następnie przenosimy katalog do katalogu /usr/share

sudo mv phpMyAdmin-latest-all-languages /usr/share/phpmyadmin

Następnie w celu uniknięcia problemów z uprawnieniami plików ustalamy użytkownika serwera www (www-data) jako właściciela plików:

sudo chown -R www-data:www-data /usr/share/phpmyadmin

Krok 3: Tworzenie bazy danych dla PhpMyAdmin

Następnym krokiem w naszym poradniku jest stworzenie bazy danych dla naszego narzędzia. W tym celu musimy wejść do naszego serwera MySQL:

sudo mysql -u root

Kiedy już to zrobiliśmy musimy utworzyć wcześniej powiedzianą bazę danych, więc w konsoli serwera mysql:

CREATE DATABASE phpmyadmin DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

Następnie tworzymy użytkownika, który będzie miał do niej dostęp zamieniając super_tajne_haslo na ustalone przez nas hasło:

⚠️ Pamiętaj o utworzeniu mocnego hasła, używanie słabych haseł może narazić Cię na włamanie i/lub utratę danych, a tego byśmy nie chcieli prawda?

GRANT ALL ON phpmyadmin.* TO 'phpmyadmin'@'localhost' IDENTIFIED BY 'twoje_super_tajne_haslo';

Następnie przeładowujemy uprawnienia poleceniem:

FLUSH PRIVILEGES;

Gdy zrobiliśmy już poprzednie kroki możemy wyjść z klienta mysql poleceniem:

EXIT;

Krok 4: Konfiguracja Apache2 do obsługi phpmyadmin

⚠️ Jeśli wcześniej zmieniłeś ścieżkę zapisu narzędzia musisz je również zmienić w VirtualHoście. Inaczej serwer nie będzie mógł dobrze zinterpretować tego gdzie ma szukać naszego phpmyadmin.

Nadchodzi ten czas, ostatni krok w tym poradniku, a chodzi o konfigurację Apache2, aby poprawnie obsługiwał nasz PhpMyAdmin

Zaczynamy od stworzenia VirtualHosta, a po więcej informacji na ich temat odsyłam do wątku autorstwa @LinGruby : https://lvlup.rok.ovh/t/apache-virtualhost/252

Zaczynamy od stworzenia nowego pliku konfiguracyjnego VirtualHosta:

sudo nano /etc/apache2/conf-available/phpmyadmin.conf

Następnie musimy utworzyć wpis VirtualHosta. Następujący wzór pozwoli na połączenie się z phpmyadmin przy użyciu http://mojeip/phpmyadmin:

# phpMyAdmin default Apache configuration

Alias /phpmyadmin /usr/share/phpmyadmin


    Options SymLinksIfOwnerMatch
    DirectoryIndex index.php

    
        
            AddType application/x-httpd-php .php
        
        
            SetHandler application/x-httpd-php
        

        php_value include_path .
        php_admin_value upload_tmp_dir /var/lib/phpmyadmin/tmp
        php_admin_value open_basedir /usr/share/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/:/usr/share/php/php-gettext/:/usr/share/php/php-php-gettext/:/usr/share/javascript/:/usr/share/php/tcpdf/:/usr/share/doc/phpmyadmin/:/usr/share/php/phpseclib/
        php_admin_value mbstring.func_overload 0
    
    
        
            AddType application/x-httpd-php .php
        
        
            SetHandler application/x-httpd-php
        

        php_value include_path .
        php_admin_value upload_tmp_dir /var/lib/phpmyadmin/tmp
        php_admin_value open_basedir /usr/share/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/:/usr/share/php/php-gettext/:/usr/share/php/php-php-gettext/:/usr/share/javascript/:/usr/share/php/tcpdf/:/usr/share/doc/phpmyadmin/:/usr/share/php/phpseclib/
        php_admin_value mbstring.func_overload 0
    



# Disallow web access to directories that don't need it

    Require all denied


    Require all denied


    Require all denied

Gdy już mamy nasz VirtualHost musimy go włączyć poleceniem:

sudo a2enconf phpmyadmin.conf

Następnie tworzymy "folder tymczasowy" dla naszego phpmyadmin:

sudo mkdir -p /var/lib/phpmyadmin/tmp
sudo chown www-data:www-data /var/lib/phpmyadmin/tmp

Na koniec przeładowujemy nasz serwer Apache2, aby zaaktualizował konfigurację:

sudo systemctl reload apache2

Zakończenie:

Gratulacje użytkowniku! Właśnie przebrnąłeś przez niniejszy poradnik i powinieneś móc już cieszyć się efektami swojej pracy wchodząc na adres:

http://moje_ip/phpmyadmin

Pamiętaj jednak, aby dbać o używanie silnych haseł oraz o aktualności narzędzia, gdyż nowsze wersje mogą zawierać poprawki sporej ilości błędów, łatki bezpieczeństwa i poprawy stabilności.

To na tyle w tym poradniku, życzę miłego korzystania z PhpMyAdmin!


*Najnowsza wersja na dzień pisania poradnika to: 4.9.0.1

|84x126Poradnik miesiąca: wrzesień 2019

krfcm
krfcm Pionier
6 lat temu

psycho:

Po pobraniu należy wypakować archiwum. Robimy to poleceniem:

wget https://files.phpmyadmin.net/phpMyAdmin/4.9.0.1/phpMyAdmin-4.9.0.1-all-languages.zip

Tutaj chyba coś jest nie tak ;)

Jakub
Jakub
6 lat temu

Warto podmienić adres aby ludzie pobierali najnowszą wersję czyli 5.0.2 :slight_smile:

https://files.phpmyadmin.net/phpMyAdmin/5.0.2/phpMyAdmin-5.0.2-all-languages.zip

KMatuszak
KMatuszak Weteran
6 lat temu

Można też użyć linku który będzie zawsze prowadził do najnowszej wersji 😉

https://www.phpmyadmin.net/downloads/phpMyAdmin-latest-all-languages.zip
psycho
psycho
6 lat temu

Niestety dla mnie edycja nie jest już dostępna, więc nie mogę poprawić. Musi to zrobić ktoś wyższy ode mnie.

psycho
psycho
6 lat temu

Po interwencji @DBanaszewski poradnik zaaktualizowany. Pozostałym dziękuję za radę.

mcheir
mcheir
6 lat temu

Cytat sudo chown -R www-data:www-data /usr/share/phpmyadmin

Instalując na przykład wordpress z root tą komendą zabiłam system zmieniając uprawnienia. Czy chown r to dobry pomysł?

DBanaszewski
DBanaszewski α-tester v3
6 lat temu

Tak, to dobry pomysł, bo wtedy wszystkie pliki w danym folderze, mają tego samego właściciela+grupę.

-R wykonuje zmianę właściciela+grupy rekursywnie dla wszystkich plików/folderów znajdujących się w danym katalogu.

mcheir:

zabiłam system zmieniając uprawnienia To nie jest wina poradnika, prawdopodobnie został popełniony błąd przez Ciebie ;)

mcheir
mcheir
6 lat temu

Na pewno zrobiłam błąd. Jestem zielona w te klocki. Jak powinna brzmieć ta komenda dla użytkownika nazwa_użytkownika lub root? Analogicznie zrobiłam na wordpress kopiuj wklej komendę i zabiłam system. Tylko proszę prostym językiem do zielonej 😀

psycho
psycho
6 lat temu

W tej komendzie głównym błąd to spacje dodane przed i po "/". Bez nich wszystko będzie okej.

System dalej działa, czy wymaga teraz reinstalacji?

Lumpiasty
Lumpiasty Stały bywalec
6 lat temu

psycho:

System dalej działa, czy wymaga teraz reinstalacji?

Nawet jeśli działa to nie korzystałbym z niego w stanie, gdzie każdy plik w systemie ma za właściciela użytkownika, z którego działa apache. Naprawa tego to (tak mi się wydaje) bardziej skomplikowane zadanie niż reinstalacja wszystkiego.

mcheir
mcheir
6 lat temu

sudo chown -R www-data:www-data /usr/share/phpmyadmin

Czy zamiast pierwszego www-data (przed dwukropkiem) mam wpisać root czy użytkownika o nazwie mcheir (czyli ja) będąc na koncie mcheir? Bo rozumiem że LAMPy instaluję na koncie mcheir. Sudo w komendach sugerują innego użytkownika niż root. System jest świeży, pytam prewencyjnie, bo wiem, że na pewno coś ubiję jak zwykle...

psycho
psycho
6 lat temu

komenda jest poprawna i takiej należy użyć przy instalacji phpmyadmina. Polecenie sudo jest dla osób, które korzystają z innego konta niż root (i jest ono częścią pliku sudoers), a gdy ktoś robi to z konta root nie musi korzystać z tego polecenia na początku.

W razie pytań można pisać do mnie na PW i/lub oznaczać mnie gdzieś w wątkach.

Thomas33
Thomas33
5 lat temu

nie moge zainstalowac mysql :/ image|641x157 jakies pomysły?

logixdev
logixdev
5 lat temu

A dlaczego nie Ubuntu? Ma więcej repozytoriów dostępnych i jest przyjemniejsze w użytku. Zamiast MySQL polecam zainstalować nowszy fork, czyli MariaDB: apt update apt install mariadb-server

Thomas33
Thomas33
5 lat temu

otrzymałem opinię, iż debian jest lepszy pod serwer mc. maria czyms sie rozni od mysql czy to to samo?

KrEdEnS
KrEdEnS Moderator Freebies
5 lat temu

Jest wydajniejsza

Thomas33
Thomas33
5 lat temu

psycho:

Jeśli chcesz zmienić miejsce, w którym zapiszesz phpmyadmin zapamiętaj ściężkę do folderu, będzie później potrzebna!

Następnie przenosimy katalog do katalogu /usr/share

sudo mv phpMyAdmin-latest-all-languages /usr/share/phpmyadmin

Następnie w celu uniknięcia problemów z uprawnieniami plików ustalamy użytkownika serwera www (www-data) jako właściciela plików:

sudo chown -R www-data:www-data /usr/share/phpmyadmin

ta część u mnie nie działa, nie mam takiego folderu jak phpmyadmin. Stworzyc go recznie?

Thomas33
Thomas33
5 lat temu

mam folder php

KrEdEnS
KrEdEnS Moderator Freebies
5 lat temu

Komenda poniżej przenosi i zmienia nazwę katalogowi phpMyAdmin-latest-all-languages

sudo mv phpMyAdmin-latest-all-languages /usr/share/phpmyadmin

EDIT. Upewnij się, że masz zainstalowanego unzip-a i rozpakowanego zipa z pma