Ako nainštalovať a zabezpečiť najnovšiu verziu phpMyAdmin na Debian 12


Tento návod existuje pre tieto verzie OS

  • Debian 12 (knihomoľ)
  • Debian 11 (bullseye)

Na tejto stránke

  1. Predpoklady
  2. Začíname
  3. Nainštalujte LAMP Server
  4. Nainštalujte a nakonfigurujte phpMyAdmin
  5. Vytvorte administrátora phpMyAdmin
  6. Nakonfigurujte Apache pre phpMyAdmin
  7. Prístup k phpMyAdmin
  8. Zabezpečený phpMyAdmin
  9. Overte phpMyAdmin
  10. Záver

phpMyAdmin je bezplatný webový administračný nástroj používaný na správu databáz MySQL a MariaDB, široko používaný v systémoch Debian Linux. Poskytuje užívateľsky prívetivé rozhranie na interakciu s databázami, ktoré umožňuje používateľom vykonávať SQL dotazy, spravovať databázové tabuľky, importovať a exportovať údaje a konfigurovať rôzne nastavenia databázy bez toho, aby museli používať príkazový riadok. Na Debian Linuxe sa phpMyAdmin často inštaluje spolu so zásobníkom LAMP (Linux, Apache, MySQL/MariaDB, PHP), čo uľahčuje administrátorom a vývojárom manipuláciu s databázovými operáciami viac vizuálne a organizovane.

V tomto návode vám ukážem, ako nainštalovať a zabezpečiť nástroj na správu databázy phpMyAdmin na Debian 12.

Predpoklady

  • Server so systémom Debian 12.
  • Na serveri je nakonfigurované heslo root.

Začíname

Pred začatím je vhodné aktualizovať systémové balíky na najnovšiu verziu. Všetky balíky môžete aktualizovať pomocou nasledujúceho príkazu:

apt update -y

Po aktualizácii systému môžete prejsť na ďalší krok.

Nainštalujte LAMP Server

phpMyAdmin je aplikácia založená na PHP, ktorá beží na webovom serveri. Takže budete musieť nainštalovať server LAMP na váš server. Môžete ho nainštalovať pomocou nasledujúceho príkazu:

apt 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

Po nainštalovaní všetkých balíkov môžete prejsť na ďalší krok.

Nainštalujte a nakonfigurujte phpMyAdmin

Najprv si stiahnite najnovšiu verziu phpMyAdmin z ich oficiálnej webovej stránky pomocou nasledujúceho príkazu:

wget https://files.phpmyadmin.net/phpMyAdmin/5.2.1/phpMyAdmin-5.2.1-all-languages.zip

Po dokončení sťahovania rozbaľte stiahnutý súbor pomocou nasledujúceho príkazu:

unzip phpMyAdmin-5.2.1-all-languages.zip

Ďalej presuňte extrahovaný adresár do /usr/share pomocou nasledujúceho príkazu:

mv phpMyAdmin-5.2.1-all-languages /usr/share/phpmyadmin

Potom vytvorte požadovaný adresár pomocou nasledujúceho príkazu:

mkdir -p /var/lib/phpmyadmin/tmp

Ďalej nastavte správne vlastníctvo adresára phpMyAdmin:

chown -R www-data:www-data /var/lib/phpmyadmin

Ďalej skopírujte vzorový konfiguračný súbor phpMyAdmin:

cp /usr/share/phpmyadmin/config.sample.inc.php /usr/share/phpmyadmin/config.inc.php

Ďalej nainštalujte pwgen a vygenerujte tajný kľúč pomocou nasledujúceho príkazu:

apt-get install pwgen -y
pwgen -s 32 1

výstup:

pau9t1SG6lmaeCFxKqeeaY5N4erIa25K

Ďalej upravte súbor config.inc.php a nakonfigurujte ho:

nano /usr/share/phpmyadmin/config.inc.php

Definujte svoj tajný kľúč a odkomentujte nasledujúce riadky:

$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 zatvorte súbor.

Vytvorte používateľa správcu phpMyAdmin

Vždy sa odporúča vytvoriť samostatného používateľa na správu databázy cez phpMyAdmin.

Najprv importujte tabuľky phpMyAdmin do databázy MariaDB pomocou nasledujúceho príkazu:

mysql < /usr/share/phpmyadmin/sql/create_tables.sql

Ďalej sa pripojte k shellu MariaDB pomocou nasledujúceho príkazu:

mysql

Po pripojení udeľte všetky potrebné privilégiá databáze phpmyadmin pomocou nasledujúceho príkazu:

MariaDB [(none)]> GRANT SELECT, INSERT, UPDATE, DELETE ON phpmyadmin.* TO 'pma'@'localhost' IDENTIFIED BY 'password';

Potom vytvorte administrátora pomocou nasledujúceho príkazu:

MariaDB [(none)]> CREATE USER myadmin;

Ďalej udeľte všetky privilégiá správcovi pomocou nasledujúceho príkazu:

MariaDB [(none)]> GRANT ALL PRIVILEGES ON *.* TO 'myadmin'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;

Potom vyprázdnite privilégiá a ukončite prostredie MariaDB pomocou nasledujúceho príkazu:

MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT;

Po dokončení môžete prejsť na ďalší krok.

Nakonfigurujte Apache pre phpMyAdmin

Ďalej musíte vytvoriť konfiguračný súbor virtuálneho hostiteľa Apache pre phpMyAdmin. Môžete ho vytvoriť pomocou nasledujúceho príkazu:

nano /etc/apache2/conf-available/phpmyadmin.conf

Pridajte nasledujúce riadky:

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 zatvorte súbor, potom povoľte konfiguračný súbor phpMyAdmin pomocou nasledujúceho príkazu:

a2enconf phpmyadmin.conf

Potom znova načítajte službu Apache, aby ste použili zmeny:

systemctl reload apache2

Stav služby Apache môžete skontrolovať pomocou nasledujúceho príkazu:

systemctl status apache2

Mali by ste vidieť nasledujúci výstup:

? apache2.service - The Apache HTTP Server
     Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
     Active: active (running) since Sun 2024-08-25 11:28:21 UTC; 5s ago
       Docs: https://httpd.apache.org/docs/2.4/
    Process: 23021 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS)
   Main PID: 23031 (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

Sun 25 11:28:21 debian systemd[1]: Starting The Apache HTTP Server...

Prístup k phpMyAdmin

V tomto bode je nainštalovaný a nakonfigurovaný phpMyAdmin. Teraz otvorte webový prehliadač a prejdite do phpMyAdmin pomocou adresy URL http://ip-vaseho-serveru/phpmyadmin. Mali by ste vidieť prihlasovaciu stránku phpMyAdmin:

Zadajte svoje používateľské meno, heslo správcu a kliknite na tlačidlo Prejsť . Na nasledujúcej stránke by ste mali vidieť informačný panel phpMyAdmin:

Zabezpečený phpMyAdmin

phpMyAdmin je dobré zabezpečiť dvojfaktorovou autentifikáciou. Môžete to urobiť pomocou funkcií autentifikácie a autorizácie .htaccess.

Najprv upravte konfiguračný súbor phpMyAdmin:

nano /etc/apache2/conf-available/phpmyadmin.conf

Pridajte riadok „AllowOverride All“ do nasledujúceho bloku servera:

<Directory /usr/share/phpmyadmin>
    Options FollowSymLinks
    DirectoryIndex index.php
    AllowOverride All

    <IfModule mod_php5.c>

Po dokončení uložte a zatvorte súbor a potom reštartujte službu Apache:

systemctl restart apache2

Ďalej vytvorte súbor .htaccess a definujte typ autentifikácie Apache:

nano /usr/share/phpmyadmin/.htaccess

Pridajte nasledujúce riadky:

AuthType Basic
AuthName "Restricted Files"
AuthUserFile /usr/share/phpmyadmin/.htpasswd
Require valid-user

Uložte a zatvorte súbor a potom vytvorte používateľa pomocou nasledujúceho príkazu:

htpasswd -c /usr/share/phpmyadmin/.htpasswd secureuser

Budete požiadaní o nastavenie hesla, ako je uvedené nižšie:

New password: 
Re-type new password: 
Adding password for user secureuser

Overte phpMyAdmin

V tomto bode je phpMyAdmin zabezpečený dodatočnou autentifikáciou. Ak si to chcete overiť, otvorte webový prehliadač a prejdite do phpMyAdmin pomocou adresy URL http://ip-vasho-serveru/phpmyadmin. Budete požiadaní o dodatočné používateľské meno a heslo, ako je uvedené nižšie:

Po zadaní používateľského mena a hesla budete presmerovaní na bežnú prihlasovaciu stránku phpMyAdmin.

Záver

Gratulujem! Úspešne ste nainštalovali a zabezpečili phpMyAdmin na Debian 12. Teraz môžete preskúmať phpMyAdmin a spravovať svoju databázu z webového prehliadača.