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
- Predpoklady
- Začíname
- Nainštalujte LAMP Server
- Nainštalujte a nakonfigurujte phpMyAdmin
- Vytvorte administrátora phpMyAdmin
- Nakonfigurujte Apache pre phpMyAdmin
- Prístup k phpMyAdmin
- Zabezpečený phpMyAdmin
- Overte phpMyAdmin
- 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.