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.