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.