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.zipTip: 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.zipPresuňte phpMyadmin 4.9 do adresára /usr/share/.
sudo mv phpMyAdmin-4.9.0.1-all-languages /usr/share/phpmyadminPotom nastavte používateľa webového servera (www-data) ako vlastníka tohto adresára.
sudo chown -R www-data:www-data /usr/share/phpmyadminKrok 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 rootPotom 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-gmpPotom reštartujte Apache.
sudo systemctl restart apache2Krok 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.confVlož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.confMusíme tiež vytvoriť dočasnú zložku phpMyAdmin.
sudo mkdir -p /var/lib/phpmyadmin/tmp
sudo chown www-data:www-data /var/lib/phpmyadmin/tmpZnova načítajte Apache, aby sa zmeny prejavili.
sudo systemctl reload apache2Teraz máte prístup k webovému rozhraniu phpMyAdmin na adrese
your-server-ip/phpmyadminAk 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 ACCEPTAk používate bránu firewall UFW, spustite tento príkaz a otvorte port TCP 80 a 443.
sudo ufw allow http
sudo ufw allow httpsKrok 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.confPotom upravte nový súbor pomocou textového editora príkazového riadka, ako je napríklad Nano.
sudo nano /etc/apache2/sites-available/phpmyadmin.confNa 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 combinedNa 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.confZnova načítajte webový server Apache, aby sa táto zmena prejavila.
sudo systemctl reload apache2Teraz by ste mali mať prístup k webovému rozhraniu phpMyAdmin cez
pma.example.comPred 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-apachePython3-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/setupalebo
pma.example.com/setupKliknutí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.phpSkopí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 rootVytvorte 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 adminPotom upravte konfiguračný súbor Apache pre phpMyAdmin
sudo nano /etc/apache2/sites-available/phpmyadmin-le-ssl.confalebo
sudo nano /etc/apache2/conf-available/phpmyadmin.confPridajte 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 apache2Ak 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 🙂











