Instalacja PhpMyAdmin na Debian 10

Tagi: #<Tag:0x00007f94a5fb0298> #<Tag:0x00007f94a5fb0108> #<Tag:0x00007f94a5fb7ea8>

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.

:warning: 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 :

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

:warning: 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

:warning: 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:

:warning: 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

:warning: 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 :

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

<Directory /usr/share/phpmyadmin>
    Options SymLinksIfOwnerMatch
    DirectoryIndex index.php

    <IfModule mod_php5.c>
        <IfModule mod_mime.c>
            AddType application/x-httpd-php .php
        </IfModule>
        <FilesMatch ".+\.php$">
            SetHandler application/x-httpd-php
        </FilesMatch>

        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
    </IfModule>
    <IfModule mod_php.c>
        <IfModule mod_mime.c>
            AddType application/x-httpd-php .php
        </IfModule>
        <FilesMatch ".+\.php$">
            SetHandler application/x-httpd-php
        </FilesMatch>

        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
    </IfModule>

</Directory>

# Disallow web access to directories that don't need it
<Directory /usr/share/phpmyadmin/templates>
    Require all denied
</Directory>
<Directory /usr/share/phpmyadmin/libraries>
    Require all denied
</Directory>
<Directory /usr/share/phpmyadmin/setup/lib>
    Require all denied
</Directory>

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

Poradnik miesiąca: wrzesień 2019

5lajków

Tutaj chyba coś jest nie tak :wink:

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

1lajk

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

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

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

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

2lajki

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ł?

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.

To nie jest wina poradnika, prawdopodobnie został popełniony błąd przez Ciebie :wink:

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 :grinning:

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?

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.

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…

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.

1lajk

nie moge zainstalowac mysql :confused:
image
jakies pomysły?

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

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

Jest wydajniejsza

1lajk

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

mam folder php

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