GNU/Linux >> Znalost Linux >  >> Ubuntu

Jak nainstalovat phpMyAdmin s Nginx (LEMP) na Ubuntu 18.04 LTS

Tento tutoriál vám ukáže, jak nainstalovat phpMyAdmin s Nginx, MariaDB a PHP7.2 (LEMP) na Ubuntu 18.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. Dozvíte se také, jak povolit dvoufaktorovou autentizaci na phpMyAdmin.

Předpoklady

Abyste mohli postupovat podle tohoto návodu, musíte mít operační systém Ubuntu 18.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 18.04. Pokud ne, podívejte se prosím na následující návod.

  • Jak nainstalovat zásobník LEMP (Nginx, MariaDB, PHP7.2) na Ubuntu 18.04

Když je to z cesty, začněme s instalací phpMyAdmin.

Krok 1:Stáhněte a nainstalujte phpMyAdmin

phpMyAdmin je součástí softwarového úložiště Ubuntu 18.04, takže jej můžeme snadno nainstalovat pomocí následujícího příkazu.

sudo apt update
sudo apt install phpmyadmin

Během instalace budete vyzváni k výběru webového serveru, který chcete nakonfigurovat. Nginx není v seznamu, takže stiskněte klávesu Tab a stiskněte OK pro přeskočení tohoto kroku.

Dále vyberte Yes pro vytvoření nové databáze a nechte dbconfig-common pro jeho konfiguraci.

Tím také vytvoříte nového uživatele databáze s názvem phpmyadmin . Dejte tomuto uživateli heslo.

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

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 s vaší skutečnou subdoménou a nezapomeňte pro ni vytvořit záznam 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.2-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

Pamatujte, že phpMyAdmin nebude fungovat v nejnovějších verzích Firefoxu. K návštěvě webového rozhraní phpMyAdmin můžete použít Google Chrome. Před zadáním přihlašovacích údajů uživatele do přihlašovacího formuláře povolme HTTPS.

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 18.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 --must-staple -d pma.example.com --email your-email-address

Vysvětlení:

  • –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í :Přidejte přesměrování 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.

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.

Odstraňování problémů s chybou přihlášení

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 phpMyAmin pomocí účtu správce a spravovat všechny databáze.

Použití jiného portu

Použití jiného portu místo výchozího portu 443 může být výhodné, protože tento port můžete zavřít, když nepoužíváte phpMyAdmin, abyste zabránili hackování, nebo můžete určit, které IP adresy mají povolen přístup k tomuto portu. Je to velmi jednoduché na konfiguraci. Jednoduše otevřete soubor bloku serveru.

sudo nano /etc/nginx/conf.d/phpmyadmin.conf

Najděte následující dva řádky:

listen [::]:443 ssl ipv6only=on; # managed by Certbot
listen 443 ssl; # managed by Certbot

Změňte 443 na jiný port, například 8443.

listen [::]:8443 ssl ipv6only=on; # managed by Certbot
listen 8443 ssl; # managed by Certbot

Můžete k nim také přidat http2, jak je uvedeno níže, abyste povolili protokol HTTP/2.

listen [::]:8443 ssl http2 ipv6only=on; # managed by Certbot
listen 8443 ssl http2; # managed by Certbot

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í můžete přistupovat k phpMyAdmin přes:

https://pma.example.com:8443

Nainstalujte nejnovější stabilní verzi phpMyAdmin

Úložiště Ubuntu 18.04 se dodává s PHP7.2 a phpMyAdmin 4.6.6. Verzi phpMyAdmin si můžete zkontrolovat v záhlaví prohlížeče.

PHP7.2 je však podporováno phpMyAdminem od verze 4.7.4. Když používáte phpMyAdmin 4.6.6 s PHP7.2, uvidíte následující varovnou zprávu.

parameter must be an array or an object that implements countable

Pro vyřešení problému s kompatibilitou můžeme nainstalovat phpMyAdmin 4.8, což je nejnovější stabilní verze v době psaní tohoto článku. Stáhněte si jej pomocí wget .

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

Poté jej extrahujte.

sudo apt install unzip

unzip phpMyAdmin-4.8.0.1-all-languages.zip

Zálohujte původní soubory phpMyAdmin.

sudo mv /usr/share/phpmyadmin /usr/share/phpmyadmin-original

Přesuňte phpMyadmin 4.8 do /usr/share/phpmyadmin/ adresář.

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

Upravte konfigurační soubor dodavatele.

sudo nano /usr/share/phpmyadmin/libraries/vendor_config.php

Najděte následující řádek.

define('CONFIG_DIR', '');

Změňte jej na

define('CONFIG_DIR', '/etc/phpmyadmin/');

Uložte a zavřete soubor. Poté vytvořte tmp složku pro ukládání souborů mezipaměti.

sudo mkdir /usr/share/phpmyadmin/tmp

Změňte vlastnictví uživatele a vlastnictví skupiny na www-data .

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

Nyní můžete používat phpMyAdmin 4.8 bez opětovného načítání nebo restartování Nginx.

Povolit dvoufaktorové ověřování

Můžete také posílit phpMyAdmin povolením dvoufaktorové autentizace, což je funkce přidaná ve verzi 4.8. Chcete-li to povolit, přihlaste se do phpMyAdmin. Poté přejděte do Settings -> Two-factor authentication a vyberte Aplikace ověřování (2FA) .

Po kliknutí na tlačítko Konfigurovat dvoufaktorové ověřování tlačítko, zobrazí se vám QR kód, který musíte naskenovat pomocí aplikace pro dvoufaktorovou autentizaci v telefonu.

Google Authenticator je oblíbená aplikace 2FA, ale doporučuji FreeOTP, což je open-source 2FA aplikace vyvinutá společností Red Hat. Jakmile zadáte ověřovací kód vygenerovaný vaší aplikací 2FA, aktivuje se dvoufaktorové ověřování. Pokud se nyní odhlásíte a znovu přihlásíte, musíte kromě uživatelského jména a hesla zadat také ověřovací kód.

Automatické obnovení certifikátu

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

--quiet příznak potlačí standardní výstup. Pokud chcete obdržet standardní chybu, přidejte na začátek souboru crontab následující řádek.

MAILTO=your-email-address

Pro předložení nového certifikátu klientům je potřeba znovu načíst Nginx.

Doufám, že vám tento návod pomohl nainstalovat phpMyAdmin s Nginx na Ubuntu 18.04 LTS. Jako vždy, pokud pro vás byl tento příspěvek užitečný, přihlaste se k odběru našeho bezplatného zpravodaje, kde získáte další tipy a triky. Opatruj se.


Ubuntu
  1. Jak nainstalovat phpMyAdmin s Nginx na Ubuntu 18.04

  2. Jak nainstalovat Seafile s Nginx na Ubuntu 20.04 LTS

  3. Jak nasadit Modsecurity s Nginx na Ubuntu 20.04 LTS

  1. Jak nainstalovat Seafile s Nginx na Ubuntu 18.04 LTS

  2. Jak nainstalovat GitBucket s Nginx na Ubuntu 18.04 LTS

  3. Jak nainstalovat osTicket s Nginx na Ubuntu 18.04 LTS

  1. Jak nainstalovat GitBucket s Nginx na Ubuntu 20.04 LTS

  2. Jak nainstalovat TYPO3 8.1 s Nginx (LEMP) na Ubuntu 16.04

  3. Nainstalujte phpMyAdmin s LEMP Stack na Ubuntu 20.04 LTS