psycho | 2020-04-21 23:29:12 UTC | #1
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 :
https://forum.lvlup.pro/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
: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 :
https://forum.lvlup.pro/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
<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
krfcm | 2020-04-16 12:06:48 UTC | #2
[quote=”psycho, post:1, topic:12184”]
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
[/quote]
Tutaj chyba coś jest nie tak ;)
Jakub | 2020-04-16 13:33:47 UTC | #3
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 | 2020-04-16 14:44:24 UTC | #4
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
psycho | 2020-04-16 18:39:05 UTC | #5
Niestety dla mnie edycja nie jest już dostępna, więc nie mogę poprawić. Musi to zrobić ktoś wyższy ode mnie.
psycho | 2020-04-16 18:53:11 UTC | #6
Po interwencji @DBanaszewski poradnik zaaktualizowany. Pozostałym dziękuję za radę.
mcheir | 2020-04-29 05:00:32 UTC | #7
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 | 2020-04-29 09:45:37 UTC | #8
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.
[quote=”mcheir, post:7, topic:12184”]
zabiłam system zmieniając uprawnienia
[/quote]
To nie jest wina poradnika, prawdopodobnie został popełniony błąd przez Ciebie ;)
mcheir | 2020-04-29 11:52:10 UTC | #9
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 | 2020-04-29 12:35:20 UTC | #10
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 | 2020-04-29 13:06:21 UTC | #11
[quote=”psycho, post:10, topic:12184”]
System dalej działa, czy wymaga teraz reinstalacji?
[/quote]
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 | 2020-04-29 13:07:55 UTC | #12
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 | 2020-04-29 13:11:10 UTC | #13
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 | 2020-07-09 21:31:30 UTC | #14
nie moge zainstalowac mysql :/
jakies pomysły?
logixdev | 2020-07-09 22:39:37 UTC | #15
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 | 2020-07-09 22:59:54 UTC | #16
otrzymałem opinię, iż debian jest lepszy pod serwer mc.
maria czyms sie rozni od mysql czy to to samo?
KrEdEnS | 2020-07-09 23:16:49 UTC | #17
Jest wydajniejsza
Thomas33 | 2020-07-10 09:15:22 UTC | #18
[quote=”psycho, post:1, topic:12184”]
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
[/quote]
ta część u mnie nie działa, nie mam takiego folderu jak phpmyadmin. Stworzyc go recznie?
Thomas33 | 2020-07-10 09:19:57 UTC | #19
mam folder php
KrEdEnS | 2020-07-10 09:21:49 UTC | #20
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