Tento tutoriál vám ukáže, jak nainstalovat phpMyAdmin s Nginx, MariaDB a PHP7.4 (LEMP) na Ubuntu 20.04. phpMyAdmin je bezplatný a open-source webový nástroj pro správu databází napsaný v PHP. Poskytuje uživatelům grafické webové rozhraní pro správu databáze MySQL nebo MariaDB.
phpMyAdmin umožňuje administrátorům:
- procházet databázemi a tabulkami;
- vytvářet, kopírovat, přejmenovávat, upravovat a rušit databáze;
- vytvářet, kopírovat, přejmenovávat, upravovat a rušit tabulky;
- provádět údržbu tabulek;
- přidávat, upravovat a rušit pole;
- provádět jakýkoli příkaz SQL, dokonce i více dotazů;
- vytvářet, měnit a rušit indexy;
- načíst textové soubory do tabulek;
- vytvářet a číst výpisy tabulek nebo databází;
- exportujte data do formátů SQL, CSV, XML, Word, Excel, PDF a LaTeX;
- spravovat více serverů;
- spravovat uživatele a oprávnění MySQL;
- zkontrolujte nastavení serveru a informace o běhu pomocí konfiguračních tipů;
- kontrola referenční integrity v tabulkách MyISAM;
- automaticky vytvářet složité dotazy pomocí jednotlivých příkladů (QBE)
- připojování požadovaných tabulek;
- vytvořit PDF grafiku rozložení databáze;
- globálně hledat v databázi nebo její podmnožině;
- transformovat uložená data do libovolného formátu pomocí sady předdefinovaných funkcí, jako je zobrazení dat BLOB jako obrázku nebo odkazu ke stažení;
- spravovat tabulky InnoDB a cizí klíče;
Předpoklady
Abyste mohli postupovat podle tohoto návodu, musíte mít operační systém Ubuntu 20.04 spuštěný na místním počítači nebo na vzdáleném serveru.
Pokud hledáte VPS (virtuální soukromý server), můžete kliknout na tento speciální odkaz a získat kredit 100 $ zdarma na DigitalOcean. (Pouze pro nové uživatele). Pokud již jste uživatelem DigitalOcean, můžete kliknout na tento speciální odkaz a získat kredit 50 $ zdarma na Vultr (pouze pro nové uživatele).
Předpokládá se, že jste již nainstalovali LEMP stack na Ubuntu 20.04. Pokud ne, podívejte se prosím na následující návod.
- Jak nainstalovat zásobník LEMP (Nginx, MariaDB, PHP7.4) na Ubuntu 20.04
Když je to z cesty, začněme s instalací phpMyAdmin.
Krok 1:Stáhněte a nainstalujte phpMyAdmin na Ubuntu 20.04
phpMyAdmin je součástí softwarového úložiště Ubuntu 20.04, takže jej můžeme snadno nainstalovat pomocí následujícího příkazu.
sudo apt update sudo apt install phpmyadmin
Výše uvedený příkaz nainstaluje všechny potřebné závislosti včetně rozšíření PHP7. Během instalace se zeptá, zda chcete použít dbconfig-common
pro konfiguraci databáze. Stisknutím klávesy Tab vyberte Ano.
Tím také vytvoříte nového uživatele databáze s názvem phpmyadmin
. Dejte tomuto uživateli heslo.
Dále vás vyzve k výběru webového serveru, který chcete nakonfigurovat. Nginx není na seznamu, takže stiskněte klávesu Tab a stiskněte OK pro přeskočení tohoto kroku.
Jakmile bude hotovo, nová databáze s názvem phpmyadmin
je vytvořen a uživatel databáze phpmyadmin
má potřebná oprávnění ke správě této databáze. Pokud jste zvědaví jako já, můžete se přihlásit do MariaDB a zkontrolovat, jaká oprávnění phpmyadmin
uživatel byl udělen.
Pro přihlášení k serveru MariaDB můžete použít následující příkaz.
sudo mysql -u root
Poté zkontrolujte oprávnění.
show grants for [email protected];
Výstup:
Jak můžete vidět, uživatel phpmyadmin
má všechna oprávnění k databázi phpmyadmin
. Nyní můžete ukončit spuštěním:
exit;
Krok 2:Vytvořte blok serveru Nginx pro phpMyAdmin
Abychom mohli přistupovat k webovému rozhraní phpMyAdmin, musíme vytvořit blok serveru Nginx spuštěním následujícího příkazu.
sudo nano /etc/nginx/conf.d/phpmyadmin.conf
Nakonfigurujeme jej tak, abychom měli přístup k phpMyAdmin přes subdoménu. Do souboru vložte následující text. Nahraďte pma.example.com
se svou skutečnou subdoménou a nezapomeňte pro ni vytvořit záznam DNS A.
server { listen 80; listen [::]:80; server_name pma.example.com; root /usr/share/phpmyadmin/; index index.php index.html index.htm index.nginx-debian.html; access_log /var/log/nginx/phpmyadmin_access.log; error_log /var/log/nginx/phpmyadmin_error.log; location / { try_files $uri $uri/ /index.php; } location ~ ^/(doc|sql|setup)/ { deny all; } location ~ \.php$ { fastcgi_pass unix:/run/php/php7.4-fpm.sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; include snippets/fastcgi-php.conf; } location ~ /\.ht { deny all; } }
Vaše soubory phpMyAdmin jsou v /usr/share/phpmyadmin/
adresář. Uložte a zavřete soubor. Poté otestujte konfigurace Nginx.
sudo nginx -t
Pokud je test úspěšný, znovu načtěte Nginx, aby se změny projevily.
sudo systemctl reload nginx
Nyní byste měli mít přístup k webovému rozhraní phpMyAdmin přes
pma.example.com
Krok 3:Instalace certifikátu TLS
Pro zabezpečení webového rozhraní phpMyadmin můžeme nainstalovat bezplatný certifikát Let’s Encrypt TLS. Nainstalujte klienta Let’s Encrypt ze softwarového úložiště Ubuntu 20.04, jak je uvedeno níže:
sudo apt install certbot python3-certbot-nginx
Python3-certbot-nginx
je plugin Nginx pro Certbot. Nyní spusťte následující příkaz pro získání a instalaci certifikátu TLS.
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp -d pma.example.com --email [email protected]
Kde:
- –nginx :Použijte ověřovací a instalační program Nginx
- –souhlasím :Souhlasíte s podmínkami služby Let’s Encrypt
- –přesměrování :Vynutit HTTPS přesměrováním 301.
- –hsts :Ke každé odpovědi HTTP přidejte hlavičku Strict-Transport-Security.
- –staple-ocsp :Povolí sešívání OCSP.
- –nezbytné sešít :Přidá do certifikátu rozšíření OCSP Must Staple.
- -d za příznakem následuje seznam názvů domén oddělených čárkou. Můžete přidat až 100 názvů domén.
- –e-mail :E-mail používaný pro registraci a kontakt pro obnovení.
Budete dotázáni, zda chcete dostávat e-maily od EFF (Electronic Frontier Foundation). Po výběru Y nebo N bude váš certifikát TLS automaticky získán a nakonfigurován, což je indikováno níže uvedenou zprávou.
Krok 4:Otestujte svůj certifikát TLS
Přejděte na stránku ssllabs.com a otestujte svůj certifikát TLS a konfiguraci. Měli byste dostat A+ protože je povoleno HSTS.
Krok 5:Odstraňování problémů s chybou přihlášení phpMyAdmin
Pokud se přihlásíte pomocí root účtu MariaDB, může se zobrazit následující chyba.
#1698 - Access denied for user 'root '@'localhost'
a
mysqli_real_connect(): (HY000/1698): Access denied for user 'root '@'localhost'
Pokud se přihlásíte pomocí uživatele phpmyadmin
, neuvidíte výše uvedenou chybu. Nicméně uživatel phpmyadmin
lze použít pouze ke správě phpmyadmin
databáze. Příčinou chyby je, že uživatel root MariDB je ve výchozím nastavení autentizován prostřednictvím pluginu unix_socket namísto použití mysql_native_password
zapojit. Abychom tento problém vyřešili, můžeme vytvořit dalšího administrátora a udělit mu všechna oprávnění.
Přihlaste se k serveru MariaDB z příkazového řádku.
sudo mariadb -u root
Vytvořte administrátora s ověřením pomocí hesla.
create user [email protected] identified by 'your-chosen-password';
Udělte všechna oprávnění pro všechny databáze.
grant all privileges on *.* to [email protected] with grant option;
Vyprázdnit oprávnění a odejít;
flush privileges; exit;
Nyní se můžete přihlásit do phpMyAdmin pomocí účtu správce a spravovat všechny databáze.
Automatické obnovení certifikátu TLS
Chcete-li automaticky obnovit certifikát Let’s Encrypt, jednoduše upravte soubor crontab uživatele root.
sudo crontab -e
Poté přidejte následující řádek na konec.
@daily certbot renew --quiet && systemctl reload nginx
Aby Nginx vyzvedl klientům nový certifikát, je nutné jej znovu načíst.