Własny serwer – cz.11: phpMyAdmin
Ostatnia aktualizacja: 16 września 2023, 15:14
Zarządzanie serwerem www z linii poleceń może być dla niektórych użytkowników zadaniem dość abstrakcyjnym lub uciążliwym. Aby to usprawnić lub ułatwić, dostępne są narzędzia graficzne, głównie webowe, czyli działające w przeglądarce stron www. Jednym z takich narzędzi jest aplikacja do zarządzania systemem bazodanowym SQL (MariaDB/MySQL) – phpMyAdmin.
Co to jest phpMyAdmin?
phpMyAdmin to darmowe narzędzie napisane w PHP, przeznaczone do obsługi i administrowania MySQL przez Internet. phpMyAdmin obsługuje szeroki zakres operacji na MySQL i MariaDB. Często używane operacje (zarządzanie bazami danych, tabelami, kolumnami, relacjami, indeksami, użytkownikami, uprawnieniami, itp.) mogą być wykonywane za pośrednictwem interfejsu użytkownika, dając jednocześnie możliwość bezpośredniego wykonania dowolnej instrukcji SQL.
Instalacja phpMyAdmin
Większość dystrybucji Linux posiada w swoich repozytoriach pakiet 'phpmyadmin’, więc możesz go zainstalować przy użyciu domyślnego menadżera pakietów.
Możliwe, że wersja pakietu w repozytoriach jest starsza niż na stronie projektu – w takim wypadku zalecam zainstalowanie paczki od dewelopera, co też zrobimy w tym tutorialu.
1. Pobierz najnowszą paczkę 'phpmyadmin’ ze strony projektu: phpmyadmin.net
2. Rozpakuj archiwum zip:
unzip phpmyadmin-wersja.zip
a w przypadku archiwum tar.gz:
tar xfv phpmyadmin-wersja.tar.gz
3. Przenieś rozpakowany katalog 'phpmyadmin’ do katalogu /var/www/ :
mv phpmyadmin-wersja /var/www/
mv /var/www/phpmyadmin-wersja /var/www/phpmyadmin
chown -R www-data:www-data /var/www/phpmyadmin
4. Utwórz katalog na pliki tymczasowe phpMyAdmin:
mkdir -p /var/lib/phpmyadmin/tmp
chown -R www-data:www-data /var/lib/phpmyadmin
5. Utwórz katalog na pliki konfiguracyjne phpMyAdmin:
mkdir /etc/phpmyadmin/
6. Utwórz plik konfiguracyjny phpMyAdmin:
cp /var/www/phpmyadmin/config.sample.inc.php /var/www/phpmyadmin/config.inc.php
Zainstaluj pakiet 'pwgen’ i wygeneruj hasło:
apt-get install pwgen
pwgen -s 32 1
Wyedytuj plik konfiguracyjny:
nano /var/www/phpmyadmin/config.inc.php
i wstaw wygenerowane hasło (przykładowe):
$cfg['blowfish_secret'] = 'jVG2g0RnsK8Z6KaeifSWTAYcjNCUJ4xP';
oraz dodaj katalog na pliki tymczasowe:
$cfg['TempDir'] = '/var/lib/phpmyadmin/tmp';
Serwer www
Dodaj konfigurację dla Apache:
nano /etc/apache2/sites-available/000-default.conf
wpisując:
##### phpmyadmin #####
Alias /phpmyadmin /var/www/phpmyadmin
<Directory /var/www/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 /var/www/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 /var/www/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>
# Authorize for setup
<Directory /var/www/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>
# Disallow web access to directories that don't need it
<Directory /var/www/phpmyadmin/templates>
Require all denied
</Directory>
<Directory /var/www/phpmyadmin/libraries>
Require all denied
</Directory>
<Directory /var/www/phpmyadmin/setup/lib>
Require all denied
</Directory>
Konfiguracja MariaDB
Zaimportuj tabele phpMyAdmin do bazy danych MariaDB za pomocą polecenia:
mysql < /var/www/phpmyadmin/sql/create_tables.sql
Zaloguj się do bazy jako root:
mysql -u root -p
Nadaj wszystkie niezbędne uprawnienia do bazy danych phpmyadmin o nazwie 'pma' za pomocą polecenia:
GRANT SELECT, INSERT, UPDATE, DELETE ON phpmyadmin.* TO 'pma'@'localhost' IDENTIFIED BY 'password';
Utwórz administratora tej bazy za pomocą polecenia:
CREATE USER myadmin;
Nadaj wszystkie uprawnienia użytkownikowi 'myadmin' za pomocą polecenia:
GRANT ALL PRIVILEGES ON *.* TO 'myadmin'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;
Usuń uprawnienia i wyjdź z MariaDB za pomocą polecenia:
FLUSH PRIVILEGES;
exit;
Instalacja zakończona, możesz wylogować się z konsoli i zalogować do phpMyAdmin za pośrednictwem przeglądarki www, wpisując adres:
IP-twojego-serwera/phpmyadmin
lub
nazwa-twojej-domeny.pl/phpmyadmin
Podaj swoją nazwę użytkownika administratora oraz hasło i kliknij przycisk Przejdź. Powinieneś zobaczyć pulpit nawigacyjny phpMyAdmin.
Zachęcam również do zabezpieczenia dostępu do phpMyAdmin za pomocą, np. pliku .htaccess
W następnej, dwunastej części cyklu Własny serwer zainstalujemy aplikację webową służącą do zarządzania ustawieniami serwera Webmin.