phpMyAdmin je bezplatný a open-source administrační nástroj pro MySQL a MariaDB. Jako přenosná webová aplikace napsaná v PHP se stala jedním z nejoblíbenějších nástrojů pro správu MySQL, zejména pro webhostingové služby. Tento nástroj poskytuje uživatelsky přívětivé webové rozhraní pro přístup a správu vašich databází.
Zde jsou klíčové funkce a přednosti, díky kterým je phpMyAdmin vhodnou volbou pro správu databází:
- Webové rozhraní: Přístup k databázím a jejich správa odkudkoli prostřednictvím webového prohlížeče.
- Komplexní správa databáze: Provádění různých činností, včetně procházení databází, tabulek, sloupců, vztahů, indexů, uživatelů, oprávnění a provádění příkazů SQL.
- Import a export dat: Snadno importujte data z CSV a SQL a exportujte data do různých formátů, jako jsou CSV, SQL, XML, PDF, ISO/IEC 26300—OpenDocument Text and Spreadsheet, Word, Excel, LATEX a další.
- Vlastnosti MySQL: Plná podpora funkcí MySQL, včetně správy databází, tabulek, sloupců, vztahů, indexů, uživatelů a oprávnění.
- Pokročilé dotazování: Funkce Query-by-example (QBE) vytváří složité dotazy.
- Vizualizace: Generujte vizuální reprezentace vašich databází a jejich struktur.
- PHP kompatibilita: Plně napsáno v PHP, zajišťující kompatibilitu se systémy PHP.
- Vícejazyčná podpora: K dispozici v 78 jazycích, díky čemuž je přístupný uživatelům po celém světě.
Tyto funkce zvýrazňují schopnost phpMyAdmin efektivně zpracovávat různé úlohy správy databází, což vyhovuje začátečníkům i zkušeným uživatelům. Dále se pojďme ponořit do technických kroků k instalaci a konfiguraci phpMyAdmin s Nginx na Ubuntu.
Aktualizujte Ubuntu před instalací LEMP
Pro hladký průběh instalace a předcházení konfliktům před zahájením kurzu aktualizujte svůj systém nejnovějšími balíčky:
sudo apt update && sudo apt upgrade
Nainstalujte LEMP Stack pro phpMyAdmin
Nainstalujte část Nginx LEMP
Chcete-li nastavit zásobník LEMP, začněte instalací Nginx pomocí příkazu níže:
sudo apt install nginx
Služba je obvykle po instalaci standardně povolena. Vždy však ověřte a ujistěte se, že funguje správně:
systemctl status nginx
Pokud server není aktivován, aktivujte jej pomocí následujícího příkazu a nastavte automatické spouštění Nginx při každém restartu:
sudo systemctl enable nginx --now
Nainstalujte část MariaDB LEMP
Druhá fáze instalace LEMP zahrnuje instalaci komponenty databáze. MariaDB je obvykle preferovanou volbou v LEMP stacku před MySQL kvůli jeho lepšímu výkonu a dalším výhodám. Pokud dáváte přednost instalaci jiné verze MariaDB z oficiálních úložišť poskytovaných MariaDB.org, najdete našeho průvodce na instalace MariaDB 11.x nebo 10.x na Ubuntu.
Chcete-li nainstalovat MariaDB, spusťte ve svém terminálu následující příkaz.
sudo apt install mariadb-server mariadb-client
Po instalaci ověřte stav služby MariaDB, jako jste to udělali pro Nginx, abyste se ujistili, že je povolena a funguje správně bez chyb.
systemctl status mariadb
Pokud server není aktivován, použijte následující příkaz k aktivaci a spuštění MariaDB při restartu:
sudo systemctl enable mariadb --now
Spusťte MariaDB Post Installation Security Script na Ubuntu
Spusťte bezpečnostní skript instalace během procesu instalace MariaDB, abyste zabezpečili svou instalaci a zabránili potenciálnímu zneužití nebo vniknutí škodlivých aktérů. Průmysl velmi doporučuje tento skript, protože nové verze MariaDB často přicházejí s výchozím nastavením, které je považováno za slabé a riskantní.
Chcete-li začít, spusťte následující příkaz pro spuštění (mysql_secure_installation):
sudo mysql_secure_installation
Po spuštění skriptu mysql_secure_installation je dalším krokem konfigurace nastavení. To zahrnuje nastavení hesla uživatele root, omezení vzdáleného přístupu z externích zdrojů, odstranění anonymních uživatelských účtů a odstranění testovací databáze. Tyto kroky pomáhají zabezpečit vaši instalaci MariaDB a zabránit potenciálním bezpečnostním hrozbám.
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!
In order to log into MariaDB to secure it, we'll need the current
password for the root user. If you've just installed MariaDB, and
haven't set the root password yet, you should just press enter here.
Enter current password for root (enter for none):
OK, successfully used password, moving on...
Setting the root password or using the unix_socket ensures that nobody
can log into the MariaDB root user without the proper authorisation.
You already have your root account protected, so you can safely answer 'n'.
Switch to unix_socket authentication [Y/n] Y <---- Type Y then press the ENTER KEY.
Enabled successfully!
Reloading privilege tables..
... Success!
You already have your root account protected, so you can safely answer 'n'.
Change the root password? [Y/n] Y <---- Type Y then press the ENTER KEY.
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
... Success!
By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
production environment.
Remove anonymous users? [Y/n] Y <---- Type Y then press the ENTER KEY.
... Success!
Normally, root should only be allowed to connect from 'localhost'. This
ensures that someone cannot guess at the root password from the network.
Disallow root login remotely? [Y/n] Y <---- Type Y then press the ENTER KEY.
... Success!
By default, MariaDB comes with a database named 'test' that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment.
Remove test database and access to it? [Y/n] Y <---- Type Y then press the ENTER KEY.
- Dropping test database...
... Success!
- Removing privileges on test database...
... Success!
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.
Reload privilege tables now? [Y/n] Y <---- Type Y then press the ENTER KEY.
... Success!
Cleaning up...
All done! If you've completed all of the above steps, your MariaDB
installation should now be secure.
Thanks for using MariaDB!
Nainstalujte PHP část LEMP
Dokončení instalačního procesu LEMP vyžaduje instalaci služby PHP, prostředníka mezi Nginx a MariaDB. Služba PHP-FPM a další moduly požadované phpMyAdminem to usnadňují. Pokud si přejete nainstalovat jinou verzi PHP, poraďte se náš průvodce instalací PHP 8.x na Ubuntu informace o instalaci verze PHP, která vyhovuje vašim potřebám.
Chcete-li nainstalovat PHP a PHP-FPM a potřebné moduly na váš systém Ubuntu, spusťte ve svém terminálu následující příkaz.
sudo apt install php-fpm php-mbstring php-bcmath php-xml php-mysql php-common php-gd php-cli php-curl php-zip php-gd
Po instalaci ověřte stav služby PHP, jako jste to udělali pro MariaDB, abyste se ujistili, že je povolena a běží správně bez chyb.
Příklad příkazu je specifický pro nainstalovanou verzi PHP; v tomto případě to bylo pro PHP 8.1.
systemctl status php8.1-fpm
Aktivujte službu PHP pomocí následujícího příkazu, pokud ještě není aktivní; tento příkaz také zajišťuje automatické spouštění služby při každém restartu.
sudo systemctl enable php-fpm --now
Nainstalujte phpMyAdmin Backend na Ubuntu
Tato část se bude zabývat stažením archivu PHPMyAdmin a vytvořením potřebných adresářů, oprávnění a položek databáze.
Vytvořte uživatelské jméno phpMyAdmin Super User
Přístup k phpMyAdmin standardně s uživatelem root. Z bezpečnostních důvodů však místo uživatele root vytvořte samostatného superuživatele, který je v souladu s používáním uživatele sudo v Linuxu namísto přihlašování jako root. Začněte přihlášením do rozhraní terminálu:
sudo mariadb -u root
Po přihlášení do terminálového rozhraní je dalším krokem vytvoření databáze v terminálu MariaDB.
CREATE USER PMAUSER IDENTIFIED BY 'password here change';
Dalším krokem je vytvoření uživatele a udělení příslušných oprávnění, jak je uvedeno níže:
GRANT ALL PRIVILEGES ON *.* TO 'PMAUSER'@'localhost' IDENTIFIED BY 'password here change' WITH GRANT OPTION;
Poznámka: Před provedením příkazů musíte změnit vzorové heslo „password here change“. Aktualizujte heslo namísto pouhého kopírování a vkládání.
Nastavte uživatele a oprávnění a poté oprávnění okamžitě aktivujte, aby se změny aktivovaly.
FLUSH PRIVILEGES;
Chcete-li opustit terminál MariaDB, použijte následující příkaz.
QUIT;
Stáhněte si zdroj phpMyAdmin
V této části se budeme zabývat stažení archivu zdroje pro phpMyAdmin. Pokud používáte terminál příkazového řádku, existuje pohodlný způsob stažení nejnovější verze všech jazyků.
Chcete-li stáhnout archiv phpMyAdmin, spusťte v terminálu následující příkaz.
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 dáváte přednost stažení pouze anglické verze phpMyAdmin, nahraďte koncový řádek předchozího příkazu následujícím:
wget https://files.phpmyadmin.net/phpMyAdmin/${VERSION}/phpMyAdmin-${VERSION}-english.tar.gz
Po stažení archivu phpMyAdmin je dalším krokem jeho rozbalení provedením následujícího příkazu:
tar xvf phpMyAdmin-${VERSION}-all-languages.tar.gz
Nakonfigurujte phpMyAdmin
Následující krok zahrnuje přesun všech extrahovaných souborů do jejich konečného umístění ve standardním adresáři /var/www/ pomocí příkazu mv.
sudo mv phpMyAdmin-*/ /var/www/phpmyadmin
Instalace phpMyAdmin ze zdroje ve výchozím nastavení nevyžaduje adresář TMP. V důsledku toho musíte tento adresář vytvořit ručně.
sudo mkdir /var/www/phpmyadmin/tmp
Adresář phpMyAdmin obsahuje ukázkový soubor výchozí konfigurace. Přejmenujte tento soubor, aby jej phpMyAdmin rozpoznal. Pomocí příkazu CP zálohujte výchozí soubor a vytvořte jeho kopii v adresáři /var/www/phpmyadmin/.
Chcete-li zkopírovat soubor config.sample.inc.php do config.inc.php, spusťte následující příkaz:
sudo cp /var/www/phpmyadmin/config.sample.inc.php /var/www/phpmyadmin/config.inc.php
Po zkopírování souboru jej otevřete pomocí preferovaného textového editoru. Nano textový editor je příkladem:
sudo nano /var/www/phpmyadmin/config.inc.php
phpMyAdmin využívá šifru Blowfish. Pro přístup k tomuto nastavení přejděte dolů na řádek, který začíná $cfg['blowfish_secret'].
$cfg['blowfish_secret'] = ''; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */
V rámci jednoduchých uvozovek musíte přiřadit 32 náhodných znaků. Nejjednodušší způsob, jak vygenerovat tento řetězec, je pomocí programu pwgen. Chcete-li nainstalovat pwgen, spusťte následující příkaz terminálu:
sudo apt install pwgen
Po instalaci spusťte následující příkaz:
pwgen -s 32 1
To vám poskytne řetězec 32 náhodných znaků, které můžete použít jako tajemství blowfish, například:
Příklad přidání šifry do konfiguračního souboru (Nekopírovat):
$cfg['blowfish_secret'] = 'GO4GpscnhJbzB3HN7dgqvRzdIvIxXaaq'
Většině uživatelů postačí výchozí nastavení. Pokud se však váš server nachází na jiném serveru ve vaší síti, vyhledejte a upravte řádek $cfg['Servers'][$i]['host'] tak, aby odrážel privátní IP adresu. Viz příklad níže:
$cfg['Servers'][$i]['host'] = '192.168.55.101';
Nakonfigurujte oprávnění souboru phpMyAdmin
Nastavení oprávnění vlastníka adresáře na www-user je nezbytné pro zajištění kompatibility a bezpečnosti.
Chcete-li nastavit oprávnění chown:
sudo chown -R www-data:www-data /var/www/phpmyadmin/
Chcete-li nastavit oprávnění chmod:
sudo find /var/www/phpmyadmin/ -type d -exec chmod 755 {} \;
sudo find /var/www/phpmyadmin/ -type f -exec chmod 644 {} \;
Vytvořte blok serveru Nginx pro phpMyAdmin
Vytvořte blok serveru Nginx pro přístup k webovému rozhraní phpMyAdmin. Pro bezpečnost a předcházení útokům hrubou silou doporučujeme založit samostatnou subdoménu, kterou můžete pojmenovat podle svého uvážení.
Chcete-li začít, vytvořte a otevřete blok serveru pomocí textového editoru nano, jak je znázorněno níže:
sudo nano /etc/nginx/sites-available/phpmyadmin.conf
Po otevření souboru bloku serveru můžete do souboru vložit následující text. Nezapomeňte prosím nahradit adresu URL domény svou vlastní:
server {
listen 80;
listen [::]:80;
server_name pma.example.com;
root /var/www/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/php8.1-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
include snippets/fastcgi-php.conf;
}
location ~ /\.ht {
deny all;
}
}
Výše uvedený příklad obsahuje některé důležité poznámky:
- /run/php/php8.1-fpm.sock; – Toto musí být změněno, aby odráželo vaši verzi PHP-FPM, jako je 8.0, 7.4 atd.
- root /var/www/phpmyadmin/; – Toto je cesta nastavená v tutoriálu. Tento řádek musí být aktualizován, pokud umístíte phpMyAdmin na jiné místo.
Pokud jste jedinou osobou, která přistupuje k serveru ze statické adresy IP, můžete nad první položku umístění přidat následující kód. Příklad je uveden níže:
allow <your ip address>;
deny all;
location / {
try_files $uri $uri/ /index.php;
}
...........................................
To zablokuje všechny neoprávněné návštěvníky stránky s chybou 403 a umožní přístup pouze z vaší IP adresy. To může účinně zastavit útoky hrubou silou, ale nemusí být vhodné pro všechna nastavení. Pro uložení změn použijte (CTRL+O) a ukončete editor pomocí (CTRL+X).
Vytvořte symbolický odkaz z adresáře sites-available do adresáře sites-enabled pro uložení konfiguračního souboru.
sudo ln -s /etc/nginx/sites-available/phpmyadmin.conf /etc/nginx/sites-enabled/
Před restartováním služby Nginx je nezbytné provést test suchého běhu, zejména v živých prostředích, aby bylo zajištěno, že blokování serveru nebo jakékoli jiné změny vašich konfiguračních souborů nepovedou k chybám Nginx.
sudo nginx -t
Pokud je vaše konfigurace bezchybná, měli byste obdržet 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
Chcete-li implementovat změny, restartujte službu Nginx:
sudo systemctl restart nginx
Vstupte do webového uživatelského rozhraní phpMyAdmin
Pro přístup k webovému rozhraní otevřete preferovaný internetový prohlížeč a zadejte pma.example.com, kde „example“ nahraďte svou doménou. Měli byste se dostat na přihlašovací obrazovku phpMyAdmin, jak je uvedeno níže:
Zadejte své přihlašovací údaje a pokračujte na řídicí panel phpMyAdmin, jehož příklad můžete vidět níže.
Stojí za zmínku, že stránka statistik je k dispozici i pro nové uživatele phpMyAdmin.
Další užitečnou stránkou, o které byste měli vědět, je systém poradců.
Poradce doporučuje počkat 24 hodin, ale zvažte minimálně 72 hodin. Nespoléhejte výhradně na stránku poradce; provést změny po důkladném zvážení a testování. Optimalizace konfiguračních souborů MySQL nebo MariaDB vyžaduje čas a k dosažení požadovaných výsledků možná budete muset několikrát upravit a otestovat.
Bezpečná instalace phpMyAdmin LEMP přes SSL
Spuštění Nginx na HTTPS s certifikátem SSL je ideální pro nejlepší zabezpečení. Nejjednodušší způsob, jak toho dosáhnout, je použít Let's Encrypt, bezplatnou, automatizovanou a otevřenou certifikační autoritu provozovanou neziskovou organizací Internet Security Research Group (ISRG).
Chcete-li začít, nainstalujte balíček certbot pomocí následujícího příkazu:
sudo apt install python3-certbot-nginx -y
Po instalaci balíčku certbot spusťte následující příkaz pro zahájení vytváření certifikátu:
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email you@example.com -d pma.example.com
Během instalace certifikátu vás systém vyzve k přijímání e-mailů od EFF (Electronic Frontier Foundation). Zvolte A nebo N. Tato volba spustí automatickou instalaci a konfiguraci vašeho certifikátu TLS s optimálním nastavením. Tato nastavení zahrnují přesměrování HTTPS 301, hlavičku Strict-Transport-Security a sešívání OCSP, vše přizpůsobené vašemu e-mailu a názvu domény. Po instalaci se vaše adresa URL převede z HTTP://pma.example.com na zabezpečenou HTTPS://pma.example.com a automaticky přesměruje starou HTTP URL na zabezpečenou verzi.
Pro větší pohodlí můžete nastavit úlohu cron pro automatickou obnovu vašich certifikátů a Certbot poskytuje skript, který to automaticky zpracuje. Před nastavením můžete provést test chodu nasucho, abyste se ujistili, že vše funguje správně.
sudo certbot renew --dry-run
Chcete-li otevřít okno crontab, proveďte následující příkaz terminálu:
sudo crontab -e
Ujistěte se, že denně kontrolujete obnovení, abyste udrželi aktuální certifikát. Je-li nutné obnovení, skript aktualizuje certifikát automaticky.
00 00 */1 * * /usr/sbin/certbot-auto renew
Závěr
V této příručce jsme vás provedli instalací phpMyAdmin s Nginx na Ubuntu 24.04, 22.04 nebo 20.04 LTS, takže cesta od základů příkazového řádku k co nejhladšímu zprovoznění systému správy databází. Pamatujte, že udržování aktuálního softwaru a zabezpečení instalace phpMyAdmin jsou zásadní kroky, které byste neměli přehlížet. Dobře nakonfigurované nastavení zlepšuje váš pracovní postup a chrání vaše data před potenciálními hrozbami. Udělejte si proto chvilku a poplácejte se po zádech za přidání dalšího nástroje do vašeho arzenálu pro vývoj webu. Neváhejte se ponořit hlouběji do funkcí a funkcí, které phpMyAdmin nabízí. Šťastné řízení!
užitečné odkazy
Zde je několik cenných odkazů souvisejících s používáním phpMyAdmin a souvisejících nástrojů:
- Oficiální stránky phpMyAdmin: Navštivte oficiální web phpMyAdmin, kde najdete informace o nástroji pro správu databáze, funkcích a možnostech stahování.
- Dokumentace phpMyAdmin: Přístup ke komplexní dokumentaci s podrobnými průvodci instalací, konfigurací a používáním phpMyAdmin.
- Témata phpMyAdmin: Prozkoumejte dostupná témata a přizpůsobte si vzhled phpMyAdmin.
- phpMyAdmin úložiště GitHub: Vstupte do úložiště GitHub phpMyAdmin, kde můžete zobrazit zdrojový kód, nahlásit problémy a přispět k vývoji.
Související nástroje
- Oficiální webové stránky MariaDB: Navštivte web MariaDB, kde najdete informace o databázovém systému, možnostech stahování a zdrojích komunity.
- Oficiální stránky MySQL: Přejděte na web MySQL, kde najdete informace o produktu, funkce a možnosti stahování.
- Oficiální stránky PHP: Prozkoumejte web PHP, kde najdete dokumentaci, instalační příručky a zdroje pro vývoj PHP.