phpMyAdmin je bezplatná, open-source a webová aplikace používaná pro správu databází MySQL a MariaDB z webového rozhraní. Vytváření a správa databáze z rozhraní příkazového řádku je pro začínající uživatele velmi obtížné. phpMyAdmin poskytuje snazší způsob správy databází MySQL, uživatelských účtů a oprávnění, spouštění příkazů SQL, importu a exportu dat prostřednictvím webového prohlížeče.
V tomto příspěvku vám ukážeme, jak nainstalovat a zabezpečit nástroj pro správu databáze phpMyAdmin na Debian 11.
Předpoklady
- Server se systémem Debian 11.
- Na serveru je nakonfigurováno heslo uživatele root.
Začínáme
Než začnete, je dobré aktualizovat systémové balíčky na nejnovější verzi. Všechny balíčky můžete aktualizovat pomocí následujícího příkazu:
apt-get update -y
Jakmile je váš systém aktualizován, můžete přejít k dalšímu kroku.
Instalovat LAMP Server
phpMyAdmin je aplikace založená na PHP a běží na webovém serveru. Takže budete muset nainstalovat server LAMP na váš server. Můžete jej nainstalovat pomocí následujícího příkazu:
apt-get install apache2 mariadb-server libapache2-mod-php php-cli php-mysql php-zip php-curl php-xml php-mbstring php-zip php-gd unzip -y
Jakmile jsou všechny balíčky nainstalovány, můžete přejít k dalšímu kroku.
Instalovat a konfigurovat phpMyAdmin
Nejprve si stáhněte nejnovější verzi phpMyAdmin z jejich oficiálních stránek pomocí následujícího příkazu:
wget https://files.phpmyadmin.net/phpMyAdmin/5.1.1/phpMyAdmin-5.1.1-all-languages.zip
Po dokončení stahování rozbalte stažený soubor pomocí následujícího příkazu:
unzip phpMyAdmin-5.1.1-all-languages.zip
Dále přesuňte extrahovaný adresář do /usr/share pomocí následujícího příkazu:
mv phpMyAdmin-5.1.1-all-languages /usr/share/phpmyadmin
Dále vytvořte požadovaný adresář pomocí následujícího příkazu:
mkdir -p /var/lib/phpmyadmin/tmp
Dále nastavte správné vlastnictví adresáře phpMyAdmin:
chown -R www-data:www-data /var/lib/phpmyadmin
Dále zkopírujte vzorový konfigurační soubor phpMyAdmin:
cp /usr/share/phpmyadmin/config.sample.inc.php /usr/share/phpmyadmin/config.inc.php
Dále nainstalujte pwgen a vygenerujte tajný klíč pomocí následujícího příkazu:
apt-get install pwgen -y
pwgen -s 32 1
Výstup:
pau9t1SG6lmaeCFxKqeeaY5N4erIa25K
Dále upravte soubor config.inc.php a nakonfigurujte jej:
nano /usr/share/phpmyadmin/config.inc.php
Definujte svůj tajný klíč a odkomentujte následující řádky:
$cfg['blowfish_secret'] = 'pau9t1SG6lmaeCFxKqeeaY5N4erIa25K'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */ $cfg['Servers'][$i]['controluser'] = 'pma'; $cfg['Servers'][$i]['controlpass'] = 'password'; $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'; $cfg['TempDir'] = '/var/lib/phpmyadmin/tmp';
Po dokončení uložte a zavřete soubor.
Vytvořit administrátora phpMyAdmin
Vždy se doporučuje vytvořit samostatného uživatele pro správu databáze prostřednictvím phpMyAdmin.
Nejprve importujte tabulky phpMyAdmin do databáze MariaDB pomocí následujícího příkazu:
mysql < /usr/share/phpmyadmin/sql/create_tables.sql
Dále se připojte k prostředí MariaDB pomocí následujícího příkazu:
mysql
Jakmile se připojíte, udělte všechna potřebná oprávnění databázi phpmyadmin pomocí následujícího příkazu:
MariaDB [(none)]> GRANT SELECT, INSERT, UPDATE, DELETE ON phpmyadmin.* TO 'pma'@'localhost' IDENTIFIED BY 'password';
Dále vytvořte uživatele admin pomocí následujícího příkazu:
MariaDB [(none)]> CREATE USER myadmin;
Dále udělte všechna oprávnění uživateli admin pomocí následujícího příkazu:
MariaDB [(none)]> GRANT ALL PRIVILEGES ON *.* TO 'myadmin'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;
Dále vyprázdněte oprávnění a ukončete prostředí MariaDB pomocí následujícího příkazu:
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT;
Jakmile budete hotovi, můžete přejít k dalšímu kroku.
Konfigurovat Apache pro phpMyAdmin
Dále budete muset vytvořit konfigurační soubor virtuálního hostitele Apache pro phpMyAdmin. Můžete jej vytvořit pomocí následujícího příkazu:
nano /etc/apache2/conf-available/phpmyadmin.conf
Přidejte následující řádky:
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>
# Authorize for setup
<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>
# 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>
Po dokončení uložte a zavřete soubor, poté povolte konfigurační soubor phpMyAdmin následujícím příkazem:
a2enconf phpmyadmin.conf
Dále znovu načtěte službu Apache, abyste použili změny:
systemctl reload apache2
Stav služby Apache můžete zkontrolovat pomocí následujícího příkazu:
systemctl status apache2
Měli byste vidět následující výstup:
? apache2.service - The Apache HTTP Server
Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2021-08-17 10:16:28 UTC; 2s ago
Docs: https://httpd.apache.org/docs/2.4/
Process: 45027 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS)
Main PID: 45031 (apache2)
Tasks: 6 (limit: 2341)
Memory: 14.6M
CPU: 89ms
CGroup: /system.slice/apache2.service
??45031 /usr/sbin/apache2 -k start
??45032 /usr/sbin/apache2 -k start
??45033 /usr/sbin/apache2 -k start
??45034 /usr/sbin/apache2 -k start
??45035 /usr/sbin/apache2 -k start
??45036 /usr/sbin/apache2 -k start
Aug 17 10:16:28 debian systemd[1]: Starting The Apache HTTP Server...
Přístup k phpMyAdmin
V tomto okamžiku je phpMyAdmin nainstalován a nakonfigurován. Nyní otevřete webový prohlížeč a přejděte do phpMyAdmin pomocí adresy URL http://ip-ip-vašeho-serveru/phpmyadmin . Měli byste vidět přihlašovací stránku phpMyAdmin:

Zadejte své uživatelské jméno a heslo správce a klikněte na Přejít knoflík. Na následující stránce byste měli vidět řídicí panel phpMyAdmin:

Bezpečný phpMyAdmin
Je dobré zabezpečit phpMyAdmin dvoufaktorovou autentizací. Můžete to provést pomocí funkcí ověřování a autorizace .htaccess.
Nejprve upravte konfigurační soubor phpMyAdmin:
nano /etc/apache2/conf-available/phpmyadmin.conf
Přidejte řádek "AllowOverride All" do následujícího bloku serveru:
<Directory /usr/share/phpmyadmin>
Options FollowSymLinks
DirectoryIndex index.php
AllowOverride All
<IfModule mod_php5.c>
Po dokončení uložte a zavřete soubor a restartujte službu Apache:
systemctl restart apache2
Dále vytvořte soubor .htaccess a definujte typ ověřování Apache:
nano /usr/share/phpmyadmin/.htaccess
Přidejte následující řádky:
AuthType Basic AuthName "Restricted Files" AuthUserFile /usr/share/phpmyadmin/.htpasswd Require valid-user
Uložte a zavřete soubor a poté vytvořte uživatele pomocí následujícího příkazu:
htpasswd -c /usr/share/phpmyadmin/.htpasswd secureuser
Budete požádáni o nastavení hesla, jak je uvedeno níže:
New password: Re-type new password: Adding password for user secureuser
Ověřte phpMyAdmin
V tomto okamžiku je phpMyAdmin zabezpečen dodatečnou autentizací. Chcete-li to ověřit, otevřete webový prohlížeč a přejděte do phpMyAdmin pomocí adresy URL http://ip-vaseho-serveru/phpmyadmin . Budete požádáni o dodatečné uživatelské jméno a heslo, jak je uvedeno níže:

Po zadání vašeho uživatelského jména a hesla budete přesměrováni na běžnou přihlašovací stránku phpMyAdmin.
Závěr
Gratulujeme! úspěšně jste nainstalovali a zabezpečili phpMyAdmin na Debian 11. Nyní můžete prozkoumat phpMyAdmin a začít spravovat svou databázi z webového prohlížeče.