GNU/Linux >> Znalost Linux >  >> Ubuntu

Jak nainstalovat nejnovější phpMyAdmin s LEMP na Ubuntu 20.04

phpMyAdmin je bezplatný a open-source nástroj pro správu napsaný v PHP slouží ke správě databázových serverů MySQL a MariaDB z webového rozhraní . Většina vývojářů upřednostňuje použití phpMyAdmin pro interakci s databázovým serverem kvůli jeho snadnému použití a pokročilému SQL editoru, který usnadňuje sestavování a testování složitých SQL dotazů.

V následujícím tutoriálu se dozvíte, jak nainstalovat LEMP a phpMyAdmin ze zdroje na Ubuntu 20.04.

Předpoklady

  • Doporučený operační systém: Ubuntu 20.04 – volitelné (Ubuntu 21.04 a Linux Mint 20)
  • Uživatelský účet: Uživatelský účet s přístupem sudo nebo root.
  • Povinné: Nginx, MariaDB a PHP (LEMP)

Aktualizace operačního systému

Nejprve nejprve aktualizujte Ubuntu operační systém, abyste se ujistili, že všechny existující balíčky jsou aktuální:

sudo apt update && sudo apt upgrade -y

Nginx pro phpMyAdmin

Přidat vlastní PPA pro nejnovější Nginx

Vzhledem k tomu, že nastavujete phpMyAdmin s Nginx, budete muset nainstalovat webovou aplikaci. V současné době je pro většinu nejlepší metodou použití PPA od známého Ondřeje Surého, který spravuje verze Nginx i Stable a je neustále aktualizován.

Nejprve přidejte buď stabilní nebo hlavní PPA takto:

Stabilní Nginx:

sudo add-apt-repository ppa:ondrej/nginx-stable -y && sudo apt update

Hlavní řada Nginx (doporučeno):

sudo add-apt-repository ppa:ondrej/nginx-mainline -y && sudo apt update

Nainstalujte Nginx

Po instalaci stabilní nebo hlavní řady Nginx PPA použijte k instalaci Nginx následující příkaz:

sudo apt install nginx-core nginx-common nginx nginx-full

MariaDB pro phpMyAdmin

Nainstalujte MariaDB pro Ubuntu 20.04

Nejprve musíte nainstalovat MariaDB, abyste vytvořili databázi a uživatelské jméno následovně:

sudo apt install mariadb-server

Upozorňujeme, že se jedná o starší verzi s výchozí instalací verze 10.3. Pokud dáváte přednost instalaci novější verze MariaDB, například 10.5 a 10.6, navštivte prosím náš tutoriál.

Dále spusťte bezpečnostní skript, pokud jste instalovali čerstvou poprvé pomocí následujícího příkazu:

sudo mysql_secure_installation

Dále postupujte níže:

  • Nastavení hesla pro root účty.
  • Odebrání účtů root, které jsou přístupné mimo místního hostitele.
  • Odebrání anonymních uživatelských účtů.
  • Odstranění testovací databáze, ke které mají ve výchozím nastavení přístup anonymní uživatelé.

Všimněte si, že používáte (Y) vše odstranit.

Vytvořit databázi phpMyAdmin a uživatelské jméno

Nejprve otevřete MariaDB a vytvořte novou databázi pro phpMyAdmin:

sudo mysql -u root

Dále vytvořte databázi v terminálu MariaDB:

CREATE DATABASE phpmyadmindb;

Nyní musíte vytvořit uživatele a udělit oprávnění následovně:

GRANT ALL ON phpmyadmindb.* TO phpmyadminuser@localhost IDENTIFIED BY 'password here change';

Chcete-li dokončit, vyprázdněte oprávnění a ukončete s následujícími kódy:

FLUSH PRIVILEGES;
QUIT;

PHP pro phpMyAdmin

Přidat vlastní PPA pro nejnovější PHP

Podobně jako u naší instalace Nginx se doporučuje přidat PPA od Ondřeje Surého, správce PHP pro Debian. Vlastní PPA má všechny nejnovější verze 7.4, 8.0 a nejnovější příchozí 8.1.

Přidejte PPA pomocí následujícího příkazu:

sudo apt install software-properties-common && sudo add-apt-repository ppa:ondrej/php -y

Nainstalujte PHP pro Ubuntu 20.04

Nyní můžete nainstalovat PHP 7.4 nebo PHP 8.0. Vzhledem k tomu, že PHP je stále novější a může mít více chyb s phpMyAdminem, doporučujeme prozatím nainstalovat PHP 7.4. Chcete-li toho dosáhnout, použijte k instalaci požadovaných balíčků následující příkaz terminálu:

sudo apt install php7.4-fpm php7.4-mbstring php7.4-bcmath php7.4-xml php7.4-mysql php7.4-common php7.4-gd php7.4-mcrypt php7.4-cli php7.4-curl php7.4-zip php7.4-gd

Nainstalujte phpMyAdmin na Ubuntu 20.04

Ve výchozím nastavení je úložiště Ubuntu 20.04 dodáváno s phpMyAdmin a požadovanými závislostmi. Nicméně, jako často u vydání Ubuntu LTS, verze a sestavení jsou daleko za tím, co je aktuálně dostupné ze zdroje. Účelem této příručky je to, že budete stahovat ze zdroje následovně:

Stáhněte si nejnovější verzi zdroje phpMyAdmin

Pro začátek navštivte stránku pro stahování phpMyAdmin, kde najdete aktuální verzi. V době tohoto tutoriálu je verze 5.1.1 nejnovější.

Chcete-li si automaticky stáhnout nejnovější verzi pro všechny jazyky, spusťte následující kódy:

DATA="$(wget https://www.phpmyadmin.net/home_page/version.txt -q -O-)"
URL="$(echo $DATA | cut -d ' ' -f 3)"
VERSION="$(echo $DATA | cut -d ' ' -f 1)"
wget https://files.phpmyadmin.net/phpMyAdmin/${VERSION}/phpMyAdmin-${VERSION}-all-languages.tar.gz

Pokud si chcete stáhnout anglickou verzi, nahraďte koncový řádek tímto:

wget https://files.phpmyadmin.net/phpMyAdmin/${VERSION}/phpMyAdmin-${VERSION}-english.tar.gz

Dále rozbalte archiv pomocí následujícího příkazu:

tar xvf phpMyAdmin-${VERSION}-all-languages.tar.gz

Nakonfigurujte phpMyAdmin ručně

Musíte přesunout extrahovaný adresář a jeho podadresáře do /usr/share umístění adresáře, kde phpMyAdmin očekává, že ve výchozím nastavení najde své konfigurační soubory. Chcete-li to provést, použijte následující příkaz:

sudo mv phpMyAdmin-*/ /usr/share/phpmyadmin

Ve výchozím nastavení phpMyAdmin není dodáván s TMP adresář při instalaci ze zdroje a musíte jej vytvořit ručně:

sudo mkdir -p /var/lib/phpmyadmin/tmp

Přidělte správná oprávnění uživateli www-data s adresářem phpMyAdmin:

sudo chown -R www-data:www-data /var/lib/phpmyadmin

V adresáři phpMyAdmin je zahrnut výchozí soubor s příkladem konfigurace. Aby phpMyAdmin rozpoznal konfiguraci, budete muset tento soubor přejmenovat. Pro zálohování však použijete CP příkaz k vytvoření kopie a ponechání výchozího nastavení jako zálohy, pokud dojde k chybám v umístění /etc/usr/phpmyadmin/ adresář .

Zkopírujte config.sample.inc.php na config.inc.php pomocí následujícího příkazu:

sudo cp /usr/share/phpmyadmin/config.sample.inc.php /usr/share/phpmyadmin/config.inc.php

Dále tento soubor otevřete pomocí preferovaného textového editoru. Pro tutoriál se používá textový editor nano:

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

phpMyAdmin používá šifru Blowfish. Přejděte dolů na řádek, který začíná $cfg[‘blowfish_secret’] .

Řádky budou vypadat například:

$cfg['blowfish_secret'] = ''; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */

Mezi jednoduché uvozovky budete muset přiřadit řetězec 32 náhodných znaků. Nejjednodušší způsob, jak toho dosáhnout, je pomocí programu pwgen . Chcete-li nainstalovat pwgen, použijte následující příkaz terminálu:

sudo apt install pwgen

Po instalaci spusťte následující příkaz:

pwgen -s 32 1

Poté získáte svých 32 náhodných znaků pro tajemství blowfish, příklad výstupu:

Příklad přidání šifry do konfiguračního souboru (Nekopírovat):

$cfg['blowfish_secret'] = 'kQVwa2yLI6FxA3LN6E7YcW3WgtTKTZ2j'

Zbytek výchozího nastavení by měl fungovat pro většinu uživatelů. Pokud je váš server umístěn na jiném serveru ve vaší síti, vyhledejte a změňte řádek $cfg[‘Servers’][$i][‘host’] = na adresu soukromé IP adresy. Příklad níže:

$cfg['Servers'][$i]['host'] = '192.168.55.101';

Vytvořit blok serveru Nginx pro phpMyAdmin

Pro přístup k webovému rozhraní phpMyAdmin budete muset vytvořit blok serveru Nginx. Důrazně se doporučuje ponechat toto oddělené a na subdoméně jej můžete pojmenovat jakkoli chcete, abyste pomohli s bezpečností a útoky hrubou silou.

Nejprve vytvořte a otevřete blok serveru pomocí textového editoru nano takto:

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

Dále můžete do souboru vložit níže uvedený text. Upozorňujeme, že adresu URL domény musíte nahradit svou vlastní:

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;
  }
}

Pokud jste jediný, kdo k tomu přistupuje ze statické IP adresy, můžete nad první položku umístění přidat následující kód. Příklad je níže:

  allow <your ip address>;
  deny all; 

  location / {
    try_files $uri $uri/ /index.php;
  }
...........................................

To se přirozeně zablokuje kdokoli, kdo navštíví stránku s chybou 403, pokud to není povoleno vaší IP adresou. To přirozeně může zastavit všechny brutální útoky v jejich stopách, ale u některých nastavení to možná není životaschopné.


Nyní uložte pomocí (CTRL+O) a ukončete pomocí (CTRL+X) .

Otestujte svůj blok serveru Nginx spuštěním příkazu suchého spuštění:

sudo nginx -t

Pokud nemáte žádné chyby, měli byste získat následující výstup:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Nyní restartujte službu Nginx, aby se změny projevily:

sudo systemctl restart nginx

Přístup k webovému uživatelskému rozhraní phpMyAdmin

Pro přístup k webovému rozhraní otevřete preferovaný internetový prohlížeč a zadejte pma.example.com s (například) vaší doménou. Měli byste se dostat na přihlašovací obrazovku phpMyAdmin následovně:

Přihlaste se pomocí uživatelského jména a hesla MariaDB, které jste původně nastavili na začátku kurzu. Poté se dostanete na hlavní obrazovku.

Nainstalovat certifikát TLS

K dalšímu zabezpečení ve webovém rozhraní phpMyAdmin si můžete volitelně nainstalovat bezplatný Let’s Encrypt TLS certifikát z výchozího úložiště Ubuntu .

Spusťte ve svém terminálu Ubuntu následující příkaz:

sudo apt install certbot python3-certbot-nginx

Nyní spusťte následující příkaz pro získání a instalaci certifikátu TLS pro Nginx a phpMyAdmin:

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --must-staple -d pma.example.com --email your-email-address

Během instalace certifikátu obdržíte upozornění na příjem e-mailů od EFF (Electronic Frontier Foundation) . Vyberte buď Y, nebo N, pak se váš certifikát TLS automaticky nainstaluje a nakonfiguruje za vás.

To je vše a nainstalovali jste SSL do oblasti phpMyAdmin. Nezapomeňte otestovat pomocí bezplatného testu SSL, jako je DigiCert nebo SSL Labs.


Ubuntu
  1. Jak nainstalovat phpMyAdmin s Nginx na Ubuntu 18.04

  2. Jak nainstalovat Joomla s Apache na Ubuntu 18.04

  3. Jak nainstalovat phpMyAdmin na Ubuntu

  1. Jak nainstalovat WordPress 5.x s Nginx na Ubuntu 18.04 / Ubuntu 16.04

  2. Jak nainstalovat phpMyAdmin se zásobníkem LAMP na Ubuntu

  3. Jak nainstalovat ElastAlert s Elasticsearch na Ubuntu

  1. Jak nainstalovat NextCloud na Ubuntu 20.04 s Apache

  2. Jak nainstalovat WordPress s Nginx na Ubuntu

  3. Jak nainstalovat Lighttpd s PHP v Ubuntu 20.04