Categories
Linux

Cum se instalează Linux, Nginx, MariaDB, PHP (stiva LEMP) pe Debian

Debian GNU/Linux Installer menu (BIOS mode)
Debian GNU/Linux Installer menu (BIOS mode)

Acest ghid vă va învăța cum să instalați și să configurați Linux, NGINX, MySQL/MariaDB, PHP (stiva LEMP) pe Debian 10.

  1. Instalați distribuția Linux Debian:

Descărcați cea mai recentă imagine de instalare minimă de pe https://www.debian.org/distrib/index.en.html: Imagine iso de instalare prin rețea pentru arhitecturi 64-bit (64-bit PC netinst iso) sau Imagine iso de instalare prin rețea pentru arhitecturi 32-bit (32-bit PC netinst iso) și creați o unitate USB bootabilă cu Rufus; Pentru acest exemplu am să folosesc instalatorul pentru arhitecturi Intel/AMD pe 32 de biți (debian-10.1.0-i386-netinst.iso);

  • Porniți sistemul cu unitatea flash USB Debian și alegeți Install:

[!!] Select a language
Language: Romanian - Română

[!!] Selectați locația
Țară, teritoriu sau zonă: România

[!] Configurarea tastaturii
Configurația de taste utilizată: Engleză Americană sau Engleză Britanică, Română #depinde de tastatura dumneavoastră

Se descarcă componente adiționale

[!!] Configurarea rețelei
Interfața de rețea primară: enp2s0 #exemplul meu

[!] Configurarea rețelei
Numele calculatorului: webserver
<Continuă>
Numele de domeniu: exemplu.ro
<Continuă>

[!!] Configurare utilizatori și parole
Parola super-utilizatorului (root): parolaroot #creați o parolă puternică, nu una simplă
<Continuă>
Reintroduceti parola pentru verificare: parolaroot
<Continuă>

[!!] Configurare utilizatori și parole #pentru activități non-administrative
Numele complet pentru noul utilizator: Bogdan Caraman #exemplul meu
<Continuă>
Numele de utilizator pentru contul dumneavoastră: bogdan
Continuă>
Alegeți o parolă pentru noul utilizator: parolautilizator #creați o parolă puternică, nu una simplă
<Continuă>
Reintroduceți parola pentru verificare: parolautilizator
<Continuă>

[!!] Partiționează discuri
Metoda de partiționare: Ghidată - pe tot discul
Selectați discul de partiționat: SCSI3 (sda) #exemplul meu

[!] Partiționează discuri
Schema de partiționare: Tot pe o partiție (recomandat pentru începători)

[!!] Partiționează discuri
Finalizează partiționarea și scrie modificările pe disc

[!!] Partiționează discuri
Se scriu modificările pe disc? <Da>

Se instalează sistemul de bază

[!] Configurează managerul de pachete
Se examinează un alt CD sau DVD? <Nu>

Țara sitului cu arhiva Debian: Statele Unite

[!] Configurează managerul de pachete
Situl alternativ al arhivei Debian: deb.debian.org

[!] Configurează managerul de pachete
Informații despre proxy (lăsați gol dacă nu există):
<Continuă>

Se configurează apt

[!!] Configurează managerul de pachete
Sit pentru arhivă defect
A fost detectată o eroare în timp ce se încerca folosirea sitului alternativ Debian specificat.
Posibile cauze pentru eroare sunt: situl alternativ specificat este incorect; situl alternativ nu este disponibil (spre exemplu deoarece s-a găsit un fișier Release invalid); situl alternativ nu suportă versiunea Debian corectă.
Se pot găsi detalii sumplimentare în /var/log/syslog sau în consola virtuală 4.
Verificați situl alternativ specificat sau încercați altul.
<Înapoi> <Continuă>

[!!] Configurează managerul de pachete
Niciun sit alternativ selectat.
Dacă instalați de pe un CD netinst și optați să nu folosiți un sit alternativ veți rămâne doar cu un sistem de bază minimal.
Se continuă fără un sit alternativ?
<Înapoi> <Da> <Nu>

[!] Se configurează popularity-contest
Participați la sondajul legat de utilizarea pachetelor? <Nu>

[!] Selecția de programe
Alegeți programele de instalat:
[] Utilitare de sistem standard deselectați cu bara de spațiu 
<Continuă>

[!] Instalează încărcătorul de sistem GRUB pe un disc fix
Instalează încărcătorul de sistem GRUB în înregistrarea master boot? <Da>

[!] Instalează încărcătorul de sistem GRUB pe un disc fix
Dispozitivul folosit pentru instalarea încărcătorului de sistem: /dev/sda

[!] Finalizarea instalării

  • Asigurați-vă că ați înlăturat mediul de instalare pentru a permite noului sistem să pornească.

<Continuă>

Debian GNU/Linux 10 webserver tty1
webserver login: root
parolaroot

  1. Edităm prima oară sources.list:

[email protected]:~# nano /etc/apt/sources.list

și adăugăm în plus:

deb http://deb.debian.org/debian/ buster main
deb-src http://deb.debian.org/debian/ buster main

deb http://security.debian.org/debian-security buster/updates main
deb-src http://security.debian.org/debian-security buster/updates main

# buster-updates, previously known as 'volatile'
deb http://deb.debian.org/debian/ buster-updates main
deb-src http://deb.debian.org/debian/ buster-updates main

^X Ieșire
Se salvează spațiul modificat? (Răspunsul „Nu” va ANULA schimbările.) Y Da
Numele fișierului pentru scriere: /etc/apt/sources.list <Enter>

Buster este numele de cod pentru Debian 10 și a fost lansat pe data de 6 iulie 2019 după 25 de luni de dezvoltare, apoi Debian 10.1 pe data de 7 septembrie 2019. Numele de Buster vine de la o rasă de câini originară din Germania și anume Teckel (sau Dachshund). Pentru versiunile viitoare numele de cod se va schimba.

  1. Menținem actualizat la zi sistemul de operare Debian:

[email protected]:~# apt-get udpate (actualizarea bazei de date a pachetelor)
[email protected]:~# apt-get upgrade (actualizați pachetele instalate)
[email protected]:~# apt-get dist-upgrade (efectuați o actualizare completă)

  • Cum să vă curățați sistemul cu apt-get:

[email protected]:~# apt-get clean (elimină acele fișiere de pachete preluate care au acuma o versiune mai recentă și astfel ele nu vor mai fi folosite)
[email protected]:~# apt-get autoclean (elimină bibliotecile și pachetele care au fost instalate automat pentru a satisface dependențele unui alt pachet instalat)
[email protected]:~# apt-get autoremove (curățarea unui sistem Linux)

  • În caz de aveți eroarea Eșec temporar la rezolvarea lui ‘deb.debian.org’ modificați:

[email protected]:~# nano /etc/resolv.conf
domain local
search local
nameserver 192.168.1.1 #adresa routerului/gateway

^X Ieșire
Se salvează spațiul modificat? (Răspunsul „Nu” va ANULA schimbările.) Y Da
Numele fișierului pentru scriere: /etc/resolv.conf <Enter>

[email protected]:~# apt-get update # încercați de două ori

  1. Instalăm SSH Server
  • căutăm pachetul software:

[email protected]:~# apt-get update #citire liste pachete
[email protected]:~# apt-cache policy openssh-server
openssh-server:
Instalat: (niciunul)
Candidează: 1:7.9p1-10
Tabela de versiuni:
1:7.9p1-10 500
500 http://deb.debian.org/debian buster/main i386 Packages

  • instalăm pachetul software:

[email protected]:~# apt-get install openssh-server
Citire liste de pachete... Terminat
Se contruiește arborele de dependență
Se citesc informațille de stare... Terminat
The following additional packeges will be installed:
dbus krb5-locales libdbus-1-3 libedit2 libgssapi-krb5-2 libk5crypto3 libkeyutils1 libkrb5-3 libkrb5support0 libpam-systemd libwrap0 libx11-6 libx11-data libxau6 libxcb1 libxdmcp6 libext6 libxmuu1 ncurses-term openssh-client openssh-sftp-server xauth
Pachete sugerate:
default-dbus-session-bus | dbus-session-bus krb5-doc krb5-user keychain libpam-ssh monkeysphere ssh-askpass molly-guard rssh ufw
Următoarele pachete NOI vor fi instalate:
dbus krb5-locales libdbus-1-3 libedit2 libgssapi-krb5-2 libk5crypto3 libkeyutils1 libkrb5-3 libkrb5support0 libpam-systemd libwrap0 libx11-6 libx11-data libxau6 libxcb1 libxdmcp6 libext6 libxmuu1 ncurses-term openssh-client openssh-server openssh-sftp-server xauth
0 înnoite, 23 nou instalate, 0 de șters și 0 neînnoite
Este nevoie să descărcați 4.855 KB de arhive.
După această operație vor fi folosiți din disc încă 18,5 MB.
Vreți să continuați? [Y/n] Y

  1. Permiteți conectarea userului root prin SSH la serverul Linux Debian.
  • creați o copie a fișierului original sshd_config:

[email protected]:~# cp /etc/ssh/sshd_config /etc/ssh/sshd_config.backup-original

  • editați sshd_config și adăugați linia PermitRootLogin yes:

[email protected]:~# nano /etc/ssh/sshd_config

# Authentication:
#LoginGraceTime 2m
#PermitRootLogin prohibit-password
PermitRootLogin yes
#StrictModes yes
#MaxAuthTries 6
#MaxSessions 10

^X Ieșire
Se salvează spațiul modificat? (Răspunsul „Nu” va ANULA schimbările.) Y Da
Numele fișierului pentru scriere: /etc/ssh/sshd_config <Enter>

  • reporniți serviciul SSH:

[email protected]:~# /etc/init.d/ssh restart
[ ok ] Restarting ssh (via systemctl): ssh.service.

  • găsiți adresa IP curentă a serverului:

[email protected]:~# ip -4 a
inet 192.168.1.15/24 brd 192.168.1.255 scope global dynamic enp2s0
a fost gasită adresa IP DHCP 192.168.1.15
Acum vă puteți conecta la serverul dumneavoastră de pe un alt computer cu Windows instalat, folosind utilitarul PuTTY și adresa IP găsită (192.168.1.15).

  1. Configurarea interfeței Ethernet.
  • configurarea manuală a interfeței prin schimbarea lui dhcp cu o adresă IP statică:

[email protected]:~# nano /etc/network/interfaces
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
allow-hotplug enp2s0
iface enp2s0 inet dhcp
# This is an autoconfigured IPv6 interface
iface enp2s0 inet6 auto

vom schimba cu:

# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
allow-hotplug enp2s0
iface enp2s0 inet static
address 192.168.1.120
netmask 255.255.255.0
network 192.168.1.100
broadcast 192.168.1.255 # gasită prin linia de comandă ip -4 a (inet 192.168.1.15/24 brd 192.168.1.255 scope global dynamic enp2s0)
gateway 192.168.1.1 # gasită prin linia de comandă ip route (ip route default via 192.168.1.1 dev enp2s0)

# This is an autoconfigured IPv6 interface
iface enp2s0 inet6 auto

^X Ieșire
Se salvează spațiul modificat? (Răspunsul „Nu” va ANULA schimbările.) Y Da
Numele fișierului pentru scriere: /etc/network/interfaces <Enter>

Adresa 192.168.1.1 va fi routerul dumneavoastră de unde ar trebui să adăugați 192.168.1.120 pentru Port forwarding al porturilor de rețea 80 HTTP și 443 HTTPS

[email protected]:~# reboot pentru ca modificările să aibă efect

  1. Împiedicați suspendarea software-lui atunci când capacul de la laptop este închis:

[email protected]:~# nano /etc/systemd/logind.conf
#HandleLidSwitch=suspend
HandleLidSwitch=ignore
#HandleLidSwitchExternalPower=suspend
#HandleLidSwitchDocked=ignore
HandleLidSwitchDocked=ignore
#PowerKeyIgnoreInhibited=no

^X Ieșire
Se salvează spațiul modificat? (Răspunsul „Nu” va ANULA schimbările.) Y Da
Numele fișierului pentru scriere: /etc/systemd/logind.conf <Enter>

  1. Dezactivați suspendarea și hibernarea software-ului:

[email protected]:~# systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target
Created symlink /etc/systemd/system/sleep.target → /dev/null.
Created symlink /etc/systemd/system/suspend.target → /dev/null.
Created symlink /etc/systemd/system/hibernate.target → /dev/null.
Created symlink /etc/systemd/system/hybrid-sleep.target → /dev/null.

  • Permiteți din nou suspendarea și hibernarea software-ului:

[email protected]:~# systemctl unmask sleep.target suspend.target hibernate.target hybrid-sleep.target
Removed /etc/systemd/system/sleep.target.
Removed /etc/systemd/system/suspend.target.
Removed /etc/systemd/system/hibernate.target.
Removed /etc/systemd/system/hybrid-sleep.target.

[email protected]:~# reboot serverul dvs. pentru ca modificările să aibă efect

  1. Schimbați numele de gazdă (hostname) „webserver” cu orice altceva:

[email protected]:~# nano /etc/hostname

schimbați numele webserver cu orice alt nume doriți. Pentru această demonstrație numele de gazdă nu a fost schimbat.

[email protected]:~# hostname
webserver
[email protected]:~# hostname -f (long host name FQDN)
webserver.exemplu.ro
[email protected]:~#

  1. Configurați numele de gazdă pentru domeniul dvs. (www.exemplu.ro).

[email protected]:~# nano /etc/hosts
127.0.0.1 localhost
127.0.1.1 webserver.exemplu.ro webserver
Adresa IP statică exemplu.ro www.exemplu.ro
# The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

Dacă domeniul dvs. este gazduit pe Cloudflare săriți acest pas.
Eu am ales Cloudflare pentru certificatul SSL/TLS și să rulez paginile web prin protocolul securizat HTTPS. Let’s Encrypt (certbot) sau Comodo Free SSL Certificate (valid pentru 30 zile) sunt alte alternative, dar până acuma Cloudflare rămâne favoritul meu.
În loc de adresă IP statică puteți de altfel folosi un Dynamic DNS pentru actualizarea automată a lui name server în Domain Name Server (DNS) iar pentru acest lucru nu mai trebuie să modificați fișierul hosts.

  1. Sincronizați ceasul de sistem cu un server NTP (protocol de rețea pentru sincronizarea ceasului):

[email protected]:~# apt-get update
[email protected]:~# apt-get install ntp
Citire liste de pachete... Terminat
Se construiește arborele de dependență
Se citesc informațiile de stare... Terminat
The following additional packages will be installed:
libevent-core-2.1-6 libevent-pthreads-2.1-6 libgdbm-compat4 libgdbm6
libopts25 libperl5.28 perl perl-modules-5.28 sntp
Pachete sugerate:
ntp-doc perl-doc libterm-readline-gnu-perl | libterm-readline-perl-perl make
libb-debug-perl liblocale-codes-perl
Următoarele pachete NOI vor fi instalate:
libevent-core-2.1-6 libevent-pthreads-2.1-6 libgdbm-compat4 libgdbm6
libopts25 libperl5.28 ntp perl perl-modules-5.28 sntp
0 înnoite, 10 nou instalate, 0 de șters și 0 neînnoite.
Este nevoie să descărcați 7.907 kB de arhive.
După această operație vor fi folosiți din disc încă 44,2 MB.
Vreți să continuați? [Y/n]

  1. Reglarea paravanului de protecție (DebianFirewall).

Dacă utilizați iptables pentru a filtra conexiunile la sistemul dvs., va trebui să deschideți porturile HTTP (80), HTTPS (443) și SSH (22).
Deschideți porturile necesare prin următoarea comandă:

[email protected]:~# iptables -A INPUT -p tcp --dport 22 -j ACCEPT
[email protected]:~# iptables -A INPUT -p tcp --dport 80 -j ACCEPT
[email protected]:~# iptables -A INPUT -p tcp --dport 443 -j ACCEPT

Pentru a vedea regulile eficiente:
[email protected]:~# iptables -L
[email protected]:~# iptables -t nat -L

Salvați regulile stocate din tabele într-un fișier:
[email protected]:~# iptables-save > ~/iptables.rules

După ~# reboot puteți restaura regulile stocate în tabele din fișier cu:
[email protected]:~# iptables-restore < ~/iptables.rules

Instalarea și configurarea web serverului Nginx (Engine X), a gestionarului bazelor de date MariaDB și PHP utilizând pachetele disponibile din arhiva pachetului Debian (Debian Package) – buster (10.0).

  1. Instalați și configurați Nginx:

[email protected]:~# apt-get update (actualizarea bazei de date a pachetelor)
[email protected]:~# apt-cache policy nginx (căutăm dacă pachetul software respectiv este instalat)
nginx:
Instalat: (niciunul)
Candidează: 1.14.2-2+deb10u1
Tabela de versiuni:
1.14.2-2+deb10u1 500
500 http://deb.debian.org/debian buster/main i386 Packages
500 http://security.debian.org/debian-security buster/updates/main i386 Packages
[email protected]:~# apt-get install nginx (instalați pachetul software)
Citire liste de pachete... Terminat
Se construiește arborele de dependență
Se citesc informațiile de stare... Terminat
The following additional packages will be installed:
fontconfig-config fonts-dejavu-core geoip-database libfontconfig1 libgd3
libgeoip1 libicu63 libjbig0 libjpeg62-turbo libnginx-mod-http-auth-pam
libnginx-mod-http-dav-ext libnginx-mod-http-echo libnginx-mod-http-geoip
libnginx-mod-http-image-filter libnginx-mod-http-subs-filter
libnginx-mod-http-upstream-fair libnginx-mod-http-xslt-filter
libnginx-mod-mail libnginx-mod-stream libtiff5 libwebp6 libxml2 libxpm4
libxslt1.1 nginx-common nginx-full
Pachete sugerate:
libgd-tools geoip-bin fcgiwrap nginx-doc ssl-cert
Următoarele pachete NOI vor fi instalate:
fontconfig-config fonts-dejavu-core geoip-database libfontconfig1 libgd3
libgeoip1 libicu63 libjbig0 libjpeg62-turbo libnginx-mod-http-auth-pam
libnginx-mod-http-dav-ext libnginx-mod-http-echo libnginx-mod-http-geoip
libnginx-mod-http-image-filter libnginx-mod-http-subs-filter
libnginx-mod-http-upstream-fair libnginx-mod-http-xslt-filter
libnginx-mod-mail libnginx-mod-stream libtiff5 libwebp6 libxml2 libxpm4
libxslt1.1 nginx nginx-common nginx-full
0 înnoite, 27 nou instalate, 0 de șters și 0 neînnoite.
Este nevoie să descărcați 16,4 MB de arhive.
După această operație vor fi folosiți din disc încă 53,3 MB.
Vreți să continuați? [Y/n]
[email protected]:~# nginx -v verificați versiunea nginx instalată
nginx version: nginx/1.14.2

  • faceți o copie de siguranță a fișierului nginx.conf:

[email protected]:~# cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.backup-original

  • Dezactivați determinarea versiunii NGINX:

[email protected]:~# nano /etc/nginx/nginx.conf
...
http {
...
# server_tokens off;
schimbați cu
server_tokens off;

^X Ieșire
Se salvează spațiul modificat? (Răspunsul „Nu” va ANULA schimbările.) Y Da
Numele fișierului pentru scriere: /etc/nginx/nginx.conf <Enter>

[email protected]:~# systemctl restart nginx (repornirea serviciului nginx)

De acuma toate paginile cu eroarea 404 Not Found ce apăreau cu nginx 1.14.2 vor arăta doar 404 Not Found – nginx

Setați directorul rădăcină al site-ului:

  • creați directorul pentru exemplu.ro

[email protected]:~# mkdir -p /var/www/exemplu.ro/
[email protected]:~# cd /var/www/exemplu.ro
[email protected]:/var/www/exemplu.ro# ls -la lista în format lung (permisiuni, proprietate, dimensiune și data modificării) a tuturor fișierelor
total 8
drwxr-xr-x 2 root root 4096 sep 21 11:18 .
drwxr-xr-x 4 root root 4096 sep 21 11:18 ..
[email protected]:/var/www/exemplu.ro#

  • creați o pagină index.html pentru probă

[email protected]:~# nano /var/www/exemplu.ro/index.html
<html>
<head>
<title>Bine ați venit la exemplu.ro!</title>
</head>
<body>
<h1>Succes! Blocul serverului exemplu.ro funcționează!</h1>
</body>
</html>

^X Ieșire
Se salvează spațiul modificat? (Răspunsul „Nu” va ANULA schimbările.) Y Da
Numele fișierului pentru scriere: /var/www/exemplu.ro/index.html <Enter>

Pentru ca Nginx să poată servi acest conținut, este necesar să se creeze un bloc de server cu directivele corecte. În loc să modificăm direct fișierul de configurare implicit, să facem unul nou la /etc/nginx/sites-available/exemplu.ro:

[email protected]:~# nano /etc/nginx/sites-available/exemplu.ro
server {
listen 80;
listen [::]:80;
server_name exemplu.ro www.exemplu.ro;
root /var/www/exemplu.ro;
index index.html index.htm index.nginx-debian.html;
location / {
try_files $uri $uri/ =404;
}
}

  • activați fișierul creând o legătură de la acesta la directorul activat pe site-uri, pe care Nginx îl citește în timpul pornirii sistemului:

[email protected]:~# ln -s /etc/nginx/sites-available/exemplu.ro /etc/nginx/sites-enabled/

[email protected]:~# nginx -t (testează fișierul de configurare: nginx verifică configurația pentru sintaxa corectă, apoi încearcă să deschidă fișierele menționate în configurație)
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

[email protected]:~# systemctl restart nginx (repornirea serviciului nginx)

De pe computerul dvs. de birou, deschideți browserul preferat și introduceți adresa exemplu.ro sau adresa IP pentru a vă vedea prima pagina de test HTML. Pentru ca să urcați paginile web (upload) către /var/www/exemplu.ro/ puteți folosi WinSCP (un client sursă gratuită și deschisă SFTP, FTP pentru Microsoft Windows) unde vă puteți conecta cu numele de user root și parolaroot. Asigurați-vă că aveți PermitRootLogin yes în fișierul /etc/ssh/ssd_config.

  1. Activarea protocolului HTTPS pe serverul dvs..

[email protected]:~# apt-get update
[email protected]:~# apt-get install openssl

  • Managing Cloudflare Origin CA certificates (în cazul meu) sau utilizați alternative de genul Let’s Encrypt (certbot) ori Comodo Free SSL Certificate (valabil 30 de zile);
  • Generați un certificat TLS gratuit semnat de Cloudflare pentru instalarea pe serverul de origine;
  • Alegeți cât timp expiră certificatul: 30 de zile sau mai mult;
  • Salvați cheia privată și certificatul de mai jos pe serverul dvs. Web;
  • Certificatul de origine îl salvați în exemplu.ro.pem
  • O cheie privată salvați-o în exemplu.ro.key
  • copiați fișierele pe server sau puteți lipi codurile ca mai jos:

[email protected]:~# nano /etc/ssl/certs/exemplu.ro.pem Lipiți codul PEM acolo și salvați fișierul
[email protected]:~# nano /etc/ssl/private/exemplu.ro.key Lipiți cheia privată și salvați fișierul

  1. Editați fișierul gazdă virtual Nginx și adăugați următoarele linii la:

[email protected]:~# nano /etc/nginx/sites-available/exemplu.ro
server {
listen 80;
listen [::]:80;

listen 443;
listen [::]:443;

ssl on;
ssl_certificate /etc/ssl/certs/exemplu.ro.pem;
ssl_certificate_key /etc/ssl/private/exemplu.ro.key;

server_name exemplu.ro www.exemplu.ro;
root /var/www/exemplu.ro;
index index.html index.htm index.nginx-debian.html;
location / {
try_files $uri $uri/ =404;
}
}

^X Ieșire
Se salvează spațiul modificat? (Răspunsul „Nu” va ANULA schimbările.) Y Da
Numele fișierului pentru scriere: /etc/nginx/sites-available/exemplu.ro <Enter>

  • testați fișierul de configurare:

[email protected]:~# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

  • reporniți Nginx:

[email protected]:~# systemctl restart nginx

De acum înainte, adresa paginii web va fi modificată în https://exemplu.ro când îl tastați din browserul preferat.

  1. Instalați și configurați MariaDB:

[email protected]:~# apt-get update (actualizarea bazei de date a pachetelor)
[email protected]:~# apt-cache policy mariadb-server (căutăm dacă pachetul software respectiv este instalat)
mariadb-server:
Instalat: (niciunul)
Candidează: 1:10.3.17-0+deb10u1
Tabela de versiuni:
1:10.3.17-0+deb10u1 500
500 http://deb.debian.org/debian buster/main i386 Packages
[email protected]:~# apt-get install mariadb-server (instalați pachetul software)
Citire liste de pachete... Terminat
Se construiește arborele de dependență
Se citesc informațiile de stare... Terminat
The following additional packages will be installed:
galera-3 gawk libaio1 libcgi-fast-perl libcgi-pm-perl
libconfig-inifiles-perl libdbd-mysql-perl libdbi-perl libencode-locale-perl
libfcgi-perl libhtml-parser-perl libhtml-tagset-perl libhtml-template-perl
libhttp-date-perl libhttp-message-perl libio-html-perl
liblwp-mediatypes-perl libmariadb3 libmpfr6 libreadline5 libsigsegv2
libsnappy1v5 libterm-readkey-perl libtimedate-perl liburi-perl lsof
mariadb-client-10.3 mariadb-client-core-10.3 mariadb-common
mariadb-server-10.3 mariadb-server-core-10.3 mysql-common psmisc rsync socat
Pachete sugerate:
gawk-doc libclone-perl libmldbm-perl libnet-daemon-perl
libsql-statement-perl libdata-dump-perl libipc-sharedcache-perl libwww-perl
mailx mariadb-test netcat-openbsd tinyca
Următoarele pachete NOI vor fi instalate:
galera-3 gawk libaio1 libcgi-fast-perl libcgi-pm-perl
libconfig-inifiles-perl libdbd-mysql-perl libdbi-perl libencode-locale-perl
libfcgi-perl libhtml-parser-perl libhtml-tagset-perl libhtml-template-perl
libhttp-date-perl libhttp-message-perl libio-html-perl
liblwp-mediatypes-perl libmariadb3 libmpfr6 libreadline5 libsigsegv2
libsnappy1v5 libterm-readkey-perl libtimedate-perl liburi-perl lsof
mariadb-client-10.3 mariadb-client-core-10.3 mariadb-common mariadb-server
mariadb-server-10.3 mariadb-server-core-10.3 mysql-common psmisc rsync socat
0 înnoite, 36 nou instalate, 0 de șters și 0 neînnoite.
Este nevoie să descărcați 22,5 MB de arhive.
După această operație vor fi folosiți din disc încă 161 MB.
Vreți să continuați? [Y/n]
[email protected]:~# systemctl status mariadb (verificați starea serviciului MariaDB)
● mariadb.service - MariaDB 10.3.17 database server
Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset:
Active: active (running) since Sat 2019-09-21 21:51:57 EEST; 2min 6s ago
Docs: man:mysqld(8)
https://mariadb.com/kb/en/library/systemd/
Main PID: 1643 (mysqld)
Status: "Taking your SQL requests now..."
Tasks: 31 (limit: 4915)
Memory: 50.9M
CGroup: /system.slice/mariadb.service
└─1643 /usr/sbin/mysqld

sep 21 21:51:58 webserver /etc/mysql/debian-start[1681]: Phase 6/7: Checking and
sep 21 21:51:58 webserver /etc/mysql/debian-start[1681]: Running 'mysqlcheck' wi
sep 21 21:51:58 webserver /etc/mysql/debian-start[1681]: # Connecting to localho
sep 21 21:51:58 webserver /etc/mysql/debian-start[1681]: # Disconnecting from lo
sep 21 21:51:58 webserver /etc/mysql/debian-start[1681]: Processing databases
sep 21 21:51:58 webserver /etc/mysql/debian-start[1681]: information_schema
sep 21 21:51:58 webserver /etc/mysql/debian-start[1681]: performance_schema
sep 21 21:51:58 webserver /etc/mysql/debian-start[1681]: Phase 7/7: Running 'FLU
sep 21 21:51:58 webserver /etc/mysql/debian-start[1681]: OK
sep 21 21:51:58 webserver /etc/mysql/debian-start[1734]: Triggering myisam-recov
lines 1-22/22 (END)

  • îmbunătățiți securitatea instalării pentru MariaDB:

[email protected]:~# mysql_secure_installation

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
you haven't set the root password yet, the password will be blank,
so you should just press enter here.

Nu trebuie să schimbăm parola userului root pentru MySQL deoarece setăm doar una nouă în timpul instalării.
Răspundeți la întrebări după cum urmează:

Enter current password for root (enter for none): <Enter>
Set root password? <Y>
New password: parola root MySQL
Re-enter new password: parola root MySQL
Remove anonymous users? <Y>
Disallow root login remotely? <Y>
Remove test database and access to it? <Y>
Reload privilege tables now? <Y>
Cleaning up...
All done! If you've completed all of the above steps, your MariaDB
installation should now be secure.
Thanks for using MariaDB!

  • arată lista bazelor de date de la MariaDB:

[email protected]:~# mysql -u root -p
Enter password: parola root MySQL
MariaDB [(none)]> SHOW DATABASES;
Database
information_schema
mysql
performance_schema

  • arată lista utilizatorilor de la MariaDB:

MariaDB [(none)]> SELECT User FROM mysql.user;
User
root

MariaDB [(none)]> create database db1;

MariaDB [(none)]> GRANT ALL ON db1.* TO administrator_db1 IDENTIFIED BY "paroladeadministratorpentrub1";

MariaDB [(none)]> DROP USER administrator_db1;

MariaDB [(none)]> DROP DATABASE db1;

  • pentru a ieși din MariaDB:

MariaDB [(none)]> quit
Bye
[email protected]:~#

  • exportarea unei singure baze de date și a utilizatorului folosind mysqldump:

[email protected]:~# mysqldump -u administrator_db1 -p db1 > backup-db1.sql
Enter password: paroladeadministratorpentrub1

  • verificați dacă este un fișier SQL legitim:

[email protected]:~# head -n 5 backup-db1.sql

  • ștergeți MySQL Shell History și Bash History:

[email protected]:~# cat /dev/null > ~/.mysql_history
[email protected]:~# cat /dev/null > ~/.bash_history

  1. Instalați PHP împreună cu FastCGI Process Manager (FPM)

[email protected]:~# apt-get update (actualizarea bazei de date a pachetelor)
[email protected]:~# apt-get install php-fpm (instalați pachetul software)
Citire liste de pachete... Terminat
Se construiește arborele de dependență
Se citesc informațiile de stare... Terminat
The following additional packages will be installed:
libpcre2-8-0 libsodium23 php-common php7.3-cli php7.3-common php7.3-fpm
php7.3-json php7.3-opcache php7.3-readline
Pachete sugerate:
php-pear
Următoarele pachete NOI vor fi instalate:
libpcre2-8-0 libsodium23 php-common php-fpm php7.3-cli php7.3-common
php7.3-fpm php7.3-json php7.3-opcache php7.3-readline
0 înnoite, 10 nou instalate, 0 de șters și 0 neînnoite.
Este nevoie să descărcați 4.481 kB de arhive.
După această operație vor fi folosiți din disc încă 17,8 MB.
Vreți să continuați? [Y/n]

  • instalați un pachet suplimentar:

[email protected]:~# apt-get install php-mysql
Citire liste de pachete... Terminat
Se construiește arborele de dependență
Se citesc informațiile de stare... Terminat
The following additional packages will be installed:
php-common php7.3-common php7.3-mysql
Următoarele pachete NOI vor fi instalate:
php-common php-mysql php7.3-common php7.3-mysql
0 înnoite, 4 nou instalate, 0 de șters și 0 neînnoite.
Este nevoie să descărcați 1.102 kB de arhive.
După această operație vor fi folosiți din disc încă 7.564 kB.
Vreți să continuați? [Y/n]
[email protected]:~#

  • verificați versiunea implicită PHP folosită pe sistemul dvs.:

[email protected]:~# php -v
PHP 7.3.9-1~deb10u1 (cli) (built: Sep 18 2019 10:33:23) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.9, Copyright (c) 1998-2018 Zend Technologies
with Zend OPcache v7.3.9-1~deb10u1, Copyright (c) 1999-2018, by Zend Technologies

  • arată informațiile despre versiunea PHP:

[email protected]:~# apt show php
[email protected]:~# apt show php -a

  • Configurați Nginx pentru a utiliza procesorul PHP:

[email protected]:~# nano /etc/nginx/sites-available/exemplu.ro
server {
listen 80;
listen [::]:80;

listen 443;
listen [::]:443;

ssl on;
ssl_certificate /etc/ssl/certs/exemplu.ro.pem;
ssl_certificate_key /etc/ssl/private/exemplu.ro.key;

server_name exemplu.ro www.exemplu.ro;

root /var/www/exemplu.ro;
index index.php index.html index.htm index.nginx-debian.html;

location / {
try_files $uri $uri/ =404;
}

location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.3-fpm.sock;
}

location ~ /\.ht {
deny all;
}

}

  • când ați făcut modificările de mai sus, puteți salva și închide fișierul:

^X Ieșire
Se salvează spațiul modificat? (Răspunsul „Nu” va ANULA schimbările.) Y Da
Numele fișierului pentru scriere: /etc/nginx/sites-available/exemplu.ro <Enter>

[email protected]:~# nginx -t (testează fișierul de configurare: nginx verifică configurația pentru sintaxa corectă, apoi încearcă să deschidă fișierele menționate în configurație)
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

[email protected]:~# systemctl restart nginx (repornirea serviciului nginx)

  • creați un fișier PHP pentru a testa configurația:

[email protected]:~# nano /var/www/exemplu.ro/info.php

  • scrieți următorul cod:

<?php
// Show all information, defaults to INFO_ALL
phpinfo();
?>

^X Ieșire
Se salvează spațiul modificat? (Răspunsul „Nu” va ANULA schimbările.) Y Da
Numele fișierului pentru scriere: /var/www/exemplu.ro/info.php <Enter>

Deschideți browserul preferat și tastați www.exemplu.ro/info.php sau adresa dvs. IP statică pentru a vedea o pagină web ce a fost generată de PHP cu informații despre serverul dvs.

  • eliminați fișierul info.php tastând:

[email protected]:~# rm /var/www/exemplu.ro/info.php

  • configurați procesorul PHP:

[email protected]:~# cp /etc/php/7.3/fpm/php.ini /etc/php/7.3/fpm/php.ini.backup-original copie de rezervă pentru php.ini
[email protected]:~# nano /etc/php/7.3/fpm/php.ini editați fișierul php.ini

găsiți și modificați date.timezone cu regiunea dvs.:

date.timezone = Europe/Bucharest

  • reporniți PHP

[email protected]:~# systemctl restart php7.3-fpm
[email protected]:~# exit

~Sfârșit~

Ultima versiune Debian o puteţi găsi la https://www.debian.org