Instalacja phpMyAdmin (Debian).
Instalacja phpMyAdmin do łatwiejszej obsługi naszej bazy danych MySQL z poziomu przeglądarki WWW.
Dystrybucja: Debian 10
warning
Ten poradnik zakłada że na naszym serwerze jest już zainstalowany LAMP czyli Apache, MySQL oraz PHP.
warning
Jeśli stos LAMP mamy zainstalowany i działający, przechodzimy do instalacji phpmyadmin.
- W pierwszej kolejności logujemy się do swojego VPS po SSH np. za pomocą puTTy, na domyślny port
22
- Następnie po zalogowaniu na konto
root
wydajemy polecenie aktualizacji listy pakietów poleceniem:
apt update
Wynik:
root@adamhitme:~# apt update
Hit:1 http://ftp.debian.org/debian buster InRelease
Hit:2 http://security.debian.org buster/updates InRelease
Hit:3 http://ftp.debian.org/debian buster-updates InRelease
Reading package lists... Done
Ręczna instalacja phpMyAdmin.
W odróżnieniu od Debian 9 czy Debian 11, Debian 10 nie ma w repozytorium dostępnego pakietu phpMyAdmin. W związku z tym musimy zainstalować go ręcznie.
- Instalujemy pakiety potrzebne dla phpMyAdmin:
apt -y install wget php php-cgi php-mysqli php-pear php-mbstring php-gettext libapache2-mod-php php-common php-phpseclib php-mysql
- Pobieramy archiwum phpMyAdmin
wget https://files.phpmyadmin.net/phpMyAdmin/5.1.1/phpMyAdmin-5.1.1-all-languages.zip
- Rozpakowujemy archiwum i przenosimy
unzip phpMyAdmin-5.1.1-all-languages.zip
mv phpMyAdmin-*/ /usr/share/phpmyadmin
- Tworzymy katalog tymczasowy dla phpMyAdmin
mkdir -p /var/lib/phpmyadmin/tmp
- zmieniamy właściciela dla katalogu
chown -R www-data:www-data /var/lib/phpmyadmin
- Kopiujemy plik konfiguracyjny
cp /usr/share/phpmyadmin/config.sample.inc.php /usr/share/phpmyadmin/config.inc.php
- Edytujemy plik konfiguracyjny
nano /usr/share/phpmyadmin/config.inc.php
- Ustalamy sobie długie hasło-secret i wpisujemy w pliku konfiguracyjnym w linii
$cfg['blowfish_secret'] = ''; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */
- ma to wyglądać np. tak:
$cfg['blowfish_secret'] = ''; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */
- Ustalamy nowe hasło do mysql wpisując w miejsce 'haslo' - nasze hasło
$cfg['Servers'][$i]['controluser'] = 'pma';
$cfg['Servers'][$i]['controlpass'] = 'haslo';
- Następnie usuwamy oznaczenia zakomentowanych (nieaktywnych) linii usuwając podwójne slashe ' // ' w następujących liniach:
/* Storage database and tables */
$cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';
$cfg['Servers'][$i]['bookmarktable'] = 'pma__bookmark';
$cfg['Servers'][$i]['relation'] = 'pma__relation';
$cfg['Servers'][$i]['table_info'] = 'pma__table_info';
$cfg['Servers'][$i]['table_coords'] = 'pma__table_coords';
$cfg['Servers'][$i]['pdf_pages'] = 'pma__pdf_pages';
$cfg['Servers'][$i]['column_info'] = 'pma__column_info';
$cfg['Servers'][$i]['history'] = 'pma__history';
$cfg['Servers'][$i]['table_uiprefs'] = 'pma__table_uiprefs';
$cfg['Servers'][$i]['tracking'] = 'pma__tracking';
$cfg['Servers'][$i]['userconfig'] = 'pma__userconfig';
$cfg['Servers'][$i]['recent'] = 'pma__recent';
$cfg['Servers'][$i]['favorite'] = 'pma__favorite';
$cfg['Servers'][$i]['users'] = 'pma__users';
$cfg['Servers'][$i]['usergroups'] = 'pma__usergroups';
$cfg['Servers'][$i]['navigationhiding'] = 'pma__navigationhiding';
$cfg['Servers'][$i]['savedsearches'] = 'pma__savedsearches';
$cfg['Servers'][$i]['central_columns'] = 'pma__central_columns';
$cfg['Servers'][$i]['designer_settings'] = 'pma__designer_settings';
$cfg['Servers'][$i]['export_templates'] = 'pma__export_templates';
- na końcu pliku konfiguracyjnego dodajemy linię wpisu z naszym katalogiem tymczasowym
$cfg['TempDir'] = '/var/lib/phpmyadmin/tmp';
- Zapisujemy zmiany w pliku naciskając klawisz 'F2' oraz potwierdzając nazwę pliku klawiszem [enter].
Konfiguracja Apache.
- Tworzymy i edytujemy plik phpmyadmin.conf
nano /etc/apache2/conf-enabled/phpmyadmin.conf
- Wklejając poniższy kod
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>
<Directory /usr/share/phpmyadmin/setup>
<IfModule mod_authz_core.c>
<IfModule mod_authn_file.c>
AuthType Basic
AuthName "phpMyAdmin Setup"
AuthUserFile /etc/phpmyadmin/htpasswd.setup
</IfModule>
Require valid-user
</IfModule>
</Directory>
<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>
- Po czym restartujemy usługę Apache:
systemctl restart apache2
Konfiguracja bazy danych.
- Importujemy potrzebne tabele do MySQL
mysql < /usr/share/phpmyadmin/sql/create_tables.sql
- Następnie wydamy kilka poleceń SQL w MariaDB, w tym celu uruchamiamy poleceniem
mysql
Wynik:
root@adamhitme:~# mysql
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 127
Server version: 10.3.29-MariaDB-0+deb10u1 Debian 10
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]>
- następnie wprowadzamy kwerendę SQL:
GRANT SELECT, INSERT, UPDATE, DELETE ON phpmyadmin.* TO 'pma'@'localhost' IDENTIFIED BY 'haslo';
Uwaga! W miejsce 'haslo' - podajemy to samo hasło, które wpisaliśmy w pliku /usr/share/phpmyadmin/config.inc.php
w pozycji $cfg['Servers'][$i]['controlpass']
- Następnie tworzymy użytkownika np.
janek
, który będzie mógł zalogować się do phpMyAdmin, ponownie w miejscu 'haslo' nadajemy mu własne nowe hasło
GRANT ALL PRIVILEGES ON *.* TO 'janek'@'localhost' IDENTIFIED BY 'haslo' WITH GRANT OPTION;
- Wychodzimy z MySQL poleceniem
exit
Logowanie do panelu phpMyAdmin.
- Otwieramy przeglądarkę i wpisujemy
http://<adres IP serwera>/phpmyadmin
- Podajemy login użytkownika np. (1)
janek
i (2) jego hasło, po czym klikamy w (3) "Wykonaj"
phpMyAdmin - okno logowania do panelu.
- Po poprawnym logowaniu przenosi nas do panelu phpMyAdmin.
Panel phpMyAdmin