Nainštalujte phpMyAdmin s Apache (LAMP) na Debian 10 Buster


Tento tutoriál vám ukáže, ako nainštalovať phpMyAdmin s Apache, MariaDB, PHP7.3 (zásobník LAMP) na Debian 10 Buster. phpMyAdmin je bezplatný a open source webový nástroj na správu databáz napísaný v PHP. Poskytuje používateľom grafické webové rozhranie na správu databázy MySQL alebo MariaDB. Tiež sa naučíme, ako povoliť dvojfaktorovú autentifikáciu na phpMyAdmin.

phpMyAdmin umožňuje administrátorom:

  • prehliadať databázy a tabuľky;
  • vytvárať, kopírovať, premenovávať, meniť a rušiť databázy;
  • vytvárať, kopírovať, premenovávať, meniť a rušiť tabuľky;
  • vykonávať údržbu stola;
  • pridať, upraviť a vypustiť polia;
  • vykonať akýkoľvek príkaz SQL, dokonca aj viacero dotazov;
  • vytvárať, meniť a rušiť indexy;
  • načítať textové súbory do tabuliek;
  • vytvárať a čítať výpisy tabuliek alebo databáz;
  • export dát do formátov SQL, CSV, XML, Word, Excel, PDF a LaTeX;
  • spravovať viacero serverov;
  • spravovať používateľov a privilégiá MySQL;
  • skontrolujte nastavenia servera a informácie o čase spustenia pomocou konfiguračných rád;
  • kontrola referenčnej integrity v tabuľkách MyISAM;
  • vytvárať komplexné dotazy pomocou Query-by-example (QBE), automaticky
  • pripojenie požadovaných stolov;
  • vytvoriť PDF grafiku rozloženia databázy;
  • globálne vyhľadávanie v databáze alebo jej podmnožine;
  • transformovať uložené údaje do ľubovoľného formátu pomocou súboru preddefinovaných funkcií, ako je napríklad zobrazenie údajov BLOB ako obrázku alebo odkazu na stiahnutie;
  • spravovať tabuľky InnoDB a cudzie kľúče;

Predpoklady

Ak chcete postupovať podľa tohto návodu, potrebujete operačný systém Debian 10 spustený na vašom lokálnom počítači alebo na vzdialenom serveri.

Ak hľadáte VPS (virtuálny súkromný server), môžete si vytvoriť účet na Vultr prostredníctvom môjho odkazu na sprostredkovanie a získať bezplatný kredit 50 USD (len pre nových používateľov). A ak potrebujete nastaviť phpMyAdmin s názvom domény, odporúčam kúpiť názvy domén od NameCheap, pretože cena je nízka a poskytujú ochranu súkromia whois zadarmo.

Predpokladá sa, že ste už nainštalovali zásobník LAMP na Debian 10. Ak nie, pozrite si nasledujúci návod.

  • Ako nainštalovať zásobník LAMP (Apache, MariaDB, PHP7.3) na Debian 10 Buster

Upozorňujeme, že pri inštalácii softvéru na Debian musíte mať oprávnenie root. Môžete pridať sudo na začiatok príkazu alebo použiť príkaz su - na prepnutie na používateľa root.

S tým prekážkou, začnime s inštaláciou phpMyAdmin.

Krok 1: Stiahnite si phpMyAdmin na server Debian 10

phpMyAdmin nie je súčasťou softvérového úložiska Debian 10, takže musíme softvér stiahnuť manuálne. Prejdite na stránku sťahovania phpMyAdmin a skontrolujte najnovšiu stabilnú verziu. Potom spustite nasledujúci príkaz a stiahnite si ho.

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

Tip: Na stiahnutie najnovšej stabilnej verzie phpMyAdmin môžete vždy použiť vyššie uvedený formát adresy URL. Jednoducho nahraďte 4.9.0.1 najnovším číslom verzie.

Potom ho extrahujte.

sudo apt install unzip

unzip phpMyAdmin-4.9.0.1-all-languages.zip

Presuňte phpMyadmin 4.9 do adresára /usr/share/.

sudo mv phpMyAdmin-4.9.0.1-all-languages /usr/share/phpmyadmin

Potom nastavte používateľa webového servera (www-data) ako vlastníka tohto adresára.

sudo chown -R www-data:www-data /usr/share/phpmyadmin

Krok 2: Vytvorte databázu MariaDB a používateľa pre phpMyAdmin

Teraz sa musíme prihlásiť do konzoly MariaDB a vytvoriť databázu a používateľa pre phpMyAdmin. Balík MaraiDB v Debiane štandardne používa unix_socket na overenie prihlásenia používateľa, čo v podstate znamená, že na prihlásenie do konzoly MariaDB môžete použiť používateľské meno a heslo operačného systému. Takže môžete spustiť nasledujúci príkaz na prihlásenie bez zadania rootovského hesla MariaDB.

sudo mysql -u root

Potom vytvorte novú databázu pre phpMyAdmin pomocou nasledujúceho príkazu SQL. Tento tutoriál ju pomenuje phpmyadmin, pre databázu môžete použiť ľubovoľný názov.

CREATE DATABASE phpmyadmin DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

Nasledujúci SQL príkaz vytvorí používateľa databázy phpmyadmin a nastaví heslo a zároveň udelí novému používateľovi všetky povolenia novej databázy, aby mohol neskôr phpMyAdmin zapisovať do databázy. Nahraďte červené texty svojim preferovaným heslom.

GRANT ALL ON phpmyadmin.* TO 'phpmyadmin'@'localhost' IDENTIFIED BY 'your_preferred_password';

Vyprázdnite tabuľku privilégií a ukončite konzolu MariaDB.

FLUSH PRIVILEGES;

EXIT;

Krok 3: Nainštalujte požadované a odporúčané moduly PHP.

Spustite nasledujúci príkaz na inštaláciu modulov PHP, ktoré vyžaduje alebo odporúča phpMyAdmin.

sudo apt install php-imagick php-phpseclib php-php-gettext php7.3-common php7.3-mysql php7.3-gd php7.3-imap php7.3-json php7.3-curl php7.3-zip php7.3-xml php7.3-mbstring php7.3-bz2 php7.3-intl php7.3-gmp

Potom reštartujte Apache.

sudo systemctl restart apache2

Krok 4: Vytvorte konfiguráciu Apache pre phpMyAdmin

Ak chcete získať prístup k webovému rozhraniu phpMyAdmin z podadresára, vytvorte konfiguračný úryvok pomocou nasledujúceho príkazu.

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

Vložte nasledujúci text do súboru.

# phpMyAdmin default Apache configuration

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>

# 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>

Uložte a zatvorte súbor. Potom povoľte tento konfiguračný útržok.

sudo a2enconf phpmyadmin.conf

Musíme tiež vytvoriť dočasnú zložku phpMyAdmin.

sudo mkdir -p /var/lib/phpmyadmin/tmp
sudo chown www-data:www-data /var/lib/phpmyadmin/tmp

Znova načítajte Apache, aby sa zmeny prejavili.

sudo systemctl reload apache2

Teraz máte prístup k webovému rozhraniu phpMyAdmin na adrese

your-server-ip/phpmyadmin

Ak je phpMyAdmin nainštalovaný na vašom lokálnom počítači Debian, potom môžete získať prístup k webovému rozhraniu phpMyAdmin zadaním nasledujúceho textu do panela s adresou prehliadača.

localhost/phpmyadmin

Ak je pripojenie odmietnuté alebo sa nepodarilo dokončiť, môže existovať brána firewall, ktorá zabraňuje požiadavkám HTTP. Ak používate bránu firewall iptables, musíte spustiť nasledujúci príkaz na otvorenie portu TCP 80 a 443.

sudo iptables -I INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -I INPUT -p tcp --dport 443 -j ACCEPT

Ak používate bránu firewall UFW, spustite tento príkaz a otvorte port TCP 80 a 443.

sudo ufw allow http
sudo ufw allow https

Krok 5: Prístup k phpMyAdmin zo subdomény

Niekedy možno budete chcieť použiť subdoménu na prístup k webovému rozhraniu phpMyAdmin. Týmto spôsobom môžete povoliť HTTPS na šifrovanie prenosu.

Najprv musíme vytvoriť virtuálneho hostiteľa Apache pre phpMyAdmin. Existujúci konfiguračný útržok phpMyAdmin možno použiť ako šablónu. Skopírujeme to do nového súboru.

sudo cp /etc/apache2/conf-enabled/phpmyadmin.conf /etc/apache2/sites-available/phpmyadmin.conf

Potom upravte nový súbor pomocou textového editora príkazového riadka, ako je napríklad Nano.

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

Na začiatok tohto súboru pridajte nasledujúce riadky. Nahraďte pma.example.com vašou preferovanou subdoménou pre phpMyAdmin. Nezabudnite vytvoriť DNS A záznam pre túto subdoménu.

<VirtualHost *:80>
    ServerName pma.example.com
    DocumentRoot /usr/share/phpmyadmin

    ErrorLog ${APACHE_LOG_DIR}/pma.error.log
    CustomLog ${APACHE_LOG_DIR}/pma.access.log combined

Na koniec tohto súboru pridajte nasledujúci riadok.

</VirtualHost>

Uložte a zatvorte súbor. (Ak chcete uložiť súbor v textovom editore Nano, stlačte Ctrl+O, potom potvrďte stlačením klávesu Enter. Ak chcete ukončiť, stlačte Ctrl+X.) Potom povoľte tohto virtuálneho hostiteľa.

sudo a2ensite phpmyadmin.conf

Znova načítajte webový server Apache, aby sa táto zmena prejavila.

sudo systemctl reload apache2

Teraz by ste mali mať prístup k webovému rozhraniu phpMyAdmin cez

pma.example.com

Pred zadaním prihlasovacích údajov používateľa do prihlasovacieho formulára povoľme HTTPS.

Krok 6: Povoľte HTTPS na phpMyAdmin s Apache

Pre zabezpečenie webového rozhrania phpMyadmin môžeme nainštalovať bezplatný certifikát Let’s Encrypt TLS. Spustite nasledujúci príkaz a nainštalujte klienta Let’s Encrypt (certbot) zo softvérového úložiska Debian 10.

sudo apt install certbot python3-certbot-apache

Python3-certbot-apache je doplnok Apache pre Certbot. Teraz spustite nasledujúci príkaz na získanie a inštaláciu certifikátu TLS.

sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --must-staple -d pma.example.com --email [email 

Vysvetlenie:

  • -apache: Použite autentifikátor a inštalačný program Apache
  • -agree-tos: Súhlaste so zmluvnými podmienkami Let's Encrypt
  • -presmerovanie: Pridajte presmerovanie 301.
  • -hsts: Pridajte hlavičku Strict-Transport-Security do každej odpovede HTTP.
  • -staple-ocsp: Povolí zošívanie OCSP.
  • -must-staple: Pridá do certifikátu rozšírenie OCSP Must Staple.
  • Za príznakom -d nasleduje zoznam názvov domén oddelených čiarkou. Môžete pridať až 100 názvov domén.
  • -e-mail: E-mail používaný na registráciu a kontakt na obnovenie.

Zobrazí sa otázka, či chcete dostávať e-maily od EFF (Electronic Frontier Foundation). Po výbere Y alebo N sa váš certifikát TLS automaticky získa a nakonfiguruje za vás, čo je uvedené v správe nižšie.

Krok 7: Spustite inštalačný skript phpMyAdmin

Do panela s adresou prehliadača zadajte nasledujúce.

your-server-ip/phpmyadmin/setup

alebo

pma.example.com/setup

Kliknutím na tlačidlo Nový server nakonfigurujte server.

Potom jednoducho kliknite na tlačidlo Použiť.

Potom kliknutím na tlačidlo Zobraziť zobrazte konfiguračný súbor.

V adresári /usr/share/phpmyadmin/ vytvorte súbor config.inc.php.

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

Skopírujte obsah config.inc.php zo stránky nastavenia phpMyAdmin a vložte ho do súboru /usr/share/phpmyadmin/config.inc.php.

Krok 8: Riešenie problémov s chybou prihlásenia phpMyAdmin

Ak sa teraz pokúsite prihlásiť do phpMyAdmin pomocou root účtu MariaDB, môže sa vám zobraziť nasledujúca chyba.

#1698 - Access denied for user 'root '@'localhost'

a

mysqli_real_connect(): (HY000/1698): Access denied for user 'root '@'localhost'

Ak sa prihlásite pomocou používateľa phpmyadmin, vyššie uvedená chyba sa vám nezobrazí. Používateľa phpmyadmin však možno použiť iba na správu databázy phpmyadmin. Príčinou chyby je, že používateľ root MariDB je štandardne overený prostredníctvom zásuvného modulu unix_socket namiesto použitia zásuvného modulu mysql_native_password. Na vyriešenie tohto problému môžeme vytvoriť ďalšieho administrátora a udeliť mu všetky privilégiá.

Prihláste sa na server MariaDB z príkazového riadku.

sudo mysql -u root

Vytvorte administrátora s overením hesla.

create user admin@localhost identified by 'your-preferred-password';

Udeľte všetky privilégiá pre všetky databázy.

grant all privileges on *.* to admin@localhost with grant option;

Vyprázdniť oprávnenia a ukončiť;

flush privileges;

exit;

Teraz sa môžete prihlásiť do phpMyAmin pomocou účtu admin a spravovať všetky databázy.

Krok 9: Nastavte úložisko konfigurácie phpMyAdmin

Teraz v ovládacom paneli phpMyAdmin môžete vidieť varovnú správu.

The phpMyAdmin configuration storage is not completely configured, some extended features have been deactivated. Find out why. 
Or alternately go to 'Operations' tab of any database to set it up there.

Kliknite na odkaz Zistite prečo. Potom kliknite na odkaz Vytvoriť a vytvorte tabuľky v databáze phpmyadmin.

Krok 10: Obmedzenie prístupu k adresáru /setup

Aby sme obmedzili prístup do adresára /setup, môžeme povoliť základné overenie hesla na webovom serveri Apache. Spustite nasledujúci príkaz na nastavenie hesla pre používateľa admin. Súbor /etc/apache2/htpasswd sa používa na uloženie používateľských mien a hesiel.

sudo htpasswd -c /etc/apache2/htpasswd admin

Potom upravte konfiguračný súbor Apache pre phpMyAdmin

sudo nano /etc/apache2/sites-available/phpmyadmin-le-ssl.conf

alebo

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

Pridajte nasledujúce riadky.

# 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/apache2/htpasswd
        </IfModule>
        Require valid-user
    </IfModule>
</Directory>

Uložte a zatvorte súbor. Potom znova načítajte Apache, aby sa zmeny prejavili.

sudo systemctl reload apache2

Ak znova pristúpite k inštalačnému skriptu phpMyAdmin, budete vyzvaní na zadanie používateľského mena a hesla.

Povoliť dvojfaktorové overenie

phpMyAdmin môžete posilniť aj povolením dvojfaktorovej autentifikácie, čo je funkcia pridaná vo verzii 4.8. Ak to chcete povoliť, prihláste sa do phpMyAdmin. Potom prejdite na Nastavenia -> Dvojfaktorové overenie a vyberte možnosť Aplikácia overenia totožnosti (2FA).

Po kliknutí na tlačidlo Konfigurovať dvojfaktorové overenie sa vám zobrazí kód QR, ktorý musíte naskenovať pomocou aplikácie na dvojfaktorové overenie v telefóne.

Google Authenticator je populárna aplikácia 2FA, ale odporúčam FreeOTP, čo je open source aplikácia 2FA vyvinutá spoločnosťou Red Hat. Po zadaní overovacieho kódu vygenerovaného vašou aplikáciou 2FA sa aktivuje dvojfaktorové overenie. Ak sa teraz odhlásite a znova prihlásite, musíte okrem používateľského mena a hesla zadať aj overovací kód.

Zabaliť sa

Dúfam, že vám tento návod pomohol nainštalovať phpMyAdmin s LAMP na Debian 10 Buster. Môžete tiež sledovať RSS kanál s oznámením o zabezpečení phpMyAdmin. Ako vždy, ak ste považovali tento príspevok za užitočný, prihláste sa na odber nášho bezplatného bulletinu a získajte ďalšie tipy a triky. Opatruj sa 🙂

Súvisiace články