Ki jan yo enstale dènye phpMyAdmin ak LEMP sou Ubuntu 20.04

fpmyadmen se yon zouti administrasyon gratis ak sous louvri ekri nan PHP itilize pou administre MySQL ak MariaDB serveurs baz done ki sòti nan yon Entèfas entènèt. Pifò devlopè prefere sèvi ak phpMyAdmin pou kominike avèk yon sèvè baz done paske li fasil pou itilize ak editè SQL avanse, ki fè li fasil pou konstwi ak teste demann SQL konplèks.

Nan leson patikilye sa a, ou pral aprann ki jan yo enstale LEMP ak phpMyAdmin soti nan sous sou Ubuntu 20.04.

Kondisyon

  • OS rekòmande: Ubentu 20.04 - si ou vle (Ubuntu 21.04 ak Linux Mint 20)
  • Kont itilizatè: Yon kont itilizatè ki gen aksè sudo oswa rasin.
  • Obligatwa: Nginx, MariaDB ak PHP (LEMP)

Mete ajou sistèm operasyon

Premyèman, anvan anyen, mete ajou ou Ubentu sistèm operasyon pou asire tout pakè ki egziste deja yo ajou:

sudo apt update && sudo apt upgrade -y

reklam


Nginx pou phpMyAdmin

Ajoute PPA Custom pou Dènye Nginx

Etandone w ap mete kanpe phpMyAdmin ak Nginx, w ap bezwen enstale aplikasyon entènèt la. Kounye a, pi bon metòd pou pifò se sèvi ak PPA pa byen koni Ondřej Surý, ki kenbe tou de vèsyon Nginx ak Stable epi li toujou ap mete ajou.

Premyèman, ajoute swa ki estab oswa prensipal PPA jan sa a:

Nginx ki estab:

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

Nginx Mainline (Rekòmande):

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

Enstale Nginx

Apre enstale swa ki estab oswa prensipal Nginx PPA, sèvi ak lòd sa a pou enstale Nginx:

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

MariaDB pou phpMyAdmin

Enstale MariaDB pou Ubuntu 20.04

Premyèman, ou bezwen enstale MariaDB pou kreye yon baz done ak non itilizatè jan sa a:

sudo apt install mariadb-server

Remake byen, sa a se yon vèsyon ki pi gran, ak enstalasyon an default se vèsyon 10.3. Tanpri vizite nou an leson patikilye si ou prefere enstale yon vèsyon ki pi resan MariaDB, tankou 10.5 ak 10.6.

Apre sa, kouri script sekirite a si ou enstale fre pou premye fwa ak lòd sa a:

sudo mysql_secure_installation

Apre sa, swiv anba a:

  • Mete modpas la pou rasin kont.
  • Retire kont rasin ki aksesib soti deyò lame lokal la.
  • Retire kont itilizatè anonim.
  • Retire baz done tès la, ki pa defo ka jwenn aksè pa itilizatè anonim.

Remake byen, ou itilize (Y) pou retire tout bagay.

Kreye baz done phpMyAdmin ak non itilizatè

Premyèman, louvri MariaDB epi kreye yon nouvo baz done pou phpMyAdmin:

sudo mysql -u root

Apre sa, kreye yon baz done nan tèminal MariaDB:

CREATE DATABASE phpmyadmindb;

Koulye a, ou bezwen kreye yon itilizatè epi bay otorizasyon jan sa a:

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

Pou fini, vide privilèj yo epi sòti ak kòd sa yo:

FLUSH PRIVILEGES;
QUIT;

reklam


PHP pou phpMyAdmin

Ajoute Custom PPA pou Dènye PHP

Menm jan ak enstalasyon Nginx nou an, li rekòmande pou ajoute PPA a pa Ondřej Surý, antretyen PHP pou Debian. PPA koutim lan gen tout dènye vèsyon 7.4, 8.0, ak dernye 8.1.

Ajoute PPA lè l sèvi avèk lòd sa a:

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

Enstale PHP pou Ubuntu 20.04

Koulye a, ou ka enstale PHP 7.4 oswa PHP 8.0. Kòm PHP toujou pi nouvo epi pètèt gen plis pinèz ak phpMyAdmin, li rekòmande pou enstale PHP 7.4 pou kounye a. Pou reyalize sa, sèvi ak lòd tèminal sa a pou enstale pakè ki nesesè yo:

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

Enstale phpMyAdmin sou Ubuntu 20.04

Pa default, depo Ubuntu 20.04 vini ak phpMyAdmin ak depandans obligatwa yo. Sepandan, kòm souvan ak degaje Ubuntu LTS, vèsyon an ak bati yo byen lwen dèyè sa ki kounye a disponib nan sous la. Se konsa, kòm objektif gid sa a, ou pral telechaje soti nan sous la jan sa a:

Telechaje Dènye Vèsyon Sous phpMyAdmin

Pou kòmanse, vizite phpMyAdmin la downloads paj pou jwenn dènye vèsyon an kounye a. Nan moman leson patikilye sa a, vèsyon 5.1.1 se dènye a.

Egzekite kòd sa yo pou telechaje tout lang dènye vèsyon an otomatikman:

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

Si ou vle telechaje vèsyon angle a, ranplase liy final la ak sa ki annapre yo:

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

Apre sa, ekstrè achiv la lè l sèvi avèk lòd sa a:

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

Konfigure phpMyAdmin manyèlman

Ou bezwen deplase anyè extrait ak sous-répertoires li yo nan / usr / share anyè kote phpMyAdmin espere jwenn dosye konfigirasyon li yo pa default. Pou fè sa, sèvi ak lòd sa a:

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

Pa default, phpMyAdmin pa vini ak yon TMP anyè lè w ap enstale soti nan sous, epi ou bezwen kreye sa a manyèlman:

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

Bay otorizasyon kòrèk pou itilizatè www-done ak anyè phpMyAdmin:

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

Nan anyè phpMyAdmin, gen yon fichye egzanp konfigirasyon default. Ou pral bezwen chanje non fichye sa a pou phpMyAdmin rekonèt konfigirasyon an. Sepandan, pou backup, ou pral sèvi ak la CP lòd pou kreye yon kopi epi kenbe default la kòm yon backup si nenpòt erè yo te fè nan kote a /etc/usr/phpmyadmin/ anyè.

Kopi config.sample.inc.php yo config.inc.php avèk lòd sa a:

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

Apre sa, louvri dosye sa a lè l sèvi avèk editè tèks ou pi pito. Pou leson patikilye a, yo itilize editè tèks nano:

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

phpMyAdmin itilize yon Blowfish chifreman. Scroll desann nan liy ki kòmanse ak $cfg['blowfish_secret'].

Liy yo pral sanble tankou pou egzanp:

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

Ou pral bezwen bay yon seri 32 karaktè o aza ant siy yo sèl. Fason ki pi fasil pou reyalize sa a se lè l sèvi avèk pwogram nan pwgen. Pou enstale pwgen, sèvi ak lòd tèminal sa a:

sudo apt install pwgen

Yon fwa enstale, kouri lòd sa a:

pwgen -s 32 1

Lè sa a, ou pral jwenn 32 karaktè o aza ou pou sekrè blowfish la, egzanp pwodiksyon:

Ki jan yo enstale dènye phpMyAdmin ak LEMP sou Ubuntu 20.04

Egzanp pou ajoute chifreman an nan fichye konfigirasyon an (pa kopye):

$cfg['blowfish_secret'] = 'kQVwa2yLI6FxA3LN6E7YcW3WgtTKTZ2j'

Rès paramèt default yo ta dwe travay pou pifò itilizatè yo. Si sèvè ou a sitiye sou yon lòt sèvè ki sitiye nan rezo ou a, jwenn ak chanje liy lan $cfg['Sèvè'][$i]['host'] = nan adrès IP prive a. Egzanp anba a:

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

reklam


Kreye blòk sèvè Nginx pou phpMyAdmin

Pou jwenn aksè nan koòdone entènèt phpMyAdmin, w ap bezwen kreye yon blòk sèvè Nginx. Li trè rekòmande pou kenbe sa a separe, epi sou yon sous-domèn, ou ka non li nenpòt bagay ou renmen ede ak sekirite ak atak fòs brital.

Premyèman, kreye epi louvri blòk sèvè ou a lè l sèvi avèk editè nano tèks jan sa a:

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

Apre sa, ou ka kole tèks ki anba a nan dosye a. Remake byen, ou dwe ranplase URL la domèn ak pwòp ou 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;
  }
}

Si ou se sèl ki gen aksè a sa a soti nan yon adrès IP estatik, ou ka ajoute kòd sa a pi wo a antre nan premye kote. Yon egzanp sa a se anba a:

  allow <your ip address>;
  deny all; 

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

Sa a pral natirèlman bloke nenpòt moun ki vizite paj la ak yon erè 403 sof si adrès IP ou pèmèt. Sa a, pa nati, ka sispann tout atak brital nan tren yo, men petèt pa solid pou kèk konfigirasyon.


Koulye a, sove lè l sèvi avèk (CTRL+O) epi sòti ak (CTRL+X).

Teste blòk sèvè Nginx ou a lè w ap kouri lòd sèk la:

sudo nginx -t

Si ou pa gen okenn erè, ou ta dwe jwenn pwodiksyon sa a:

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

Koulye a, rekòmanse sèvis Nginx ou a pou chanjman yo pran efè:

sudo systemctl restart nginx

Aksè phpMyAdmin Web UI

Pou jwenn aksè nan Entèfas Entènèt la, louvri Navigatè Entènèt ou pi pito epi tape pma.example.com ak (egzanp) domèn ou. Ou ta dwe vin nan ekran login nan phpMyAdmin jan sa a:

Ki jan yo enstale dènye phpMyAdmin ak LEMP sou Ubuntu 20.04

Konekte avèk non itilizatè ak modpas MariaDB ou te etabli okòmansman nan kòmansman leson patikilye a. Lè sa a, ou pral vin nan ekran prensipal la.

Ki jan yo enstale dènye phpMyAdmin ak LEMP sou Ubuntu 20.04

reklam


Enstale Sètifika TLS

Pou pi lwen sekirite koòdone wèb la phpMyAdmin, ou ka opsyonèlman enstale yon gratis Ann ankripte sètifika TLS ki soti nan Ubuntu depo depo.

Kouri lòd sa a nan tèminal Ubuntu ou a:

sudo apt install certbot python3-certbot-nginx

Koulye a, kouri lòd sa a pou jwenn ak enstale sètifika TLS pou Nginx ak phpMyAdmin:

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

Pandan enstalasyon sètifika a, w ap resevwa yon avi pou resevwa imèl EFF (Electronic Frontier Foundation). Chwazi swa Y oswa N Lè sa a, sètifika TLS ou a pral otomatikman enstale ak konfigirasyon pou ou.

Ki jan yo enstale dènye phpMyAdmin ak LEMP sou Ubuntu 20.04

Sa a, epi ou te enstale SSL sou zòn phpMyAdmin ou. Asire w ke w teste lè w sèvi ak yon tès SSL gratis tankou DigiCert or Labs SSL.

Kòmantè ak konklizyon

Nan leson patikilye a, ou te aprann ki jan yo enstale depandans lojisyèl ki nesesè yo epi telechaje epi kreye repèrtwar ki kòrèk pou phpMyAdmin soti nan sous la. An jeneral, lè l sèvi avèk phpMyAdmin se yon bon zouti pou nenpòt jesyon baz done. Ou ka fasilman kreye baz done, itilizatè yo, tab epi fè operasyon abityèl yo tankou efase ak modifye estrikti ak done nan yon koòdone pwòp entènèt UI olye pou yo tèminal la default.

Leave a Comment