Instalarea și configurarea lămpii Debian 9. Instalarea apache și php pe Debian

În prima parte a acestei povești, unul dintre Opțiuni setări GUI Debian pentru o utilizare convenabilă și familiară (numai punctul de vedere subiectiv al autorului) de către o persoană care a venit la Linux din Windows. Și dacă am folosit doar sistemul gazdă pentru a configura o mașină virtuală cu Debian, atunci am lucrat în mod specific doar în această mașină virtuală, căutând informații pe Internet, luând note în Notepadqq sau gedit, ascultând muzică prin Аudacious, deschizând fișiere prin LibreOffice și altele asemenea. În acest fel, vă puteți acomoda, simți și aprecia mult mai profund munca cu sistemul de operare și mediul său, care este destul de completă și funcțională în distribuția standard Debian.

Pe acest moment, sistemul nostru este configurat în așa fel încât pe viitor să puteți utiliza doar linia de comandă cu consola editor de text, cum ar fi nano sau use manager de fișiere Double Commander cu editor integrat Notepadqq. De asemenea, este posibil să combinați aceste două metode, de exemplu, prin navigarea în sistem și editarea fișierelor de configurare prin managerul de fișiere și toate celelalte comenzi prin consolă. Toate metodele sunt echivalente pentru a obține rezultatul final.

Scopul actual este de a crea un server, căruia îi va fi dedicată această parte. Serverul poate fi configurat cu sau fără instalarea și utilizarea GUI. În al doilea caz din partea anterioară, puteți săriți pur și simplu secțiunile privind instalarea și configurarea software-ului GUI și configurarea acestuia, instalarea pachetelor programe graficeși vmware-tools.

Nu văd nimic greșit în utilizarea unei interfețe grafice atunci când creez un server: dacă este mai familiar, convenabil și mai confortabil pentru o persoană să-și creeze primul sau al doilea server cu un mediu grafic - de ce nu? La urma urmei, serverul meu web GUI a funcționat de un an și va funcționa cât mai mulți ani este nevoie. Cu toate acestea, unele puncte trebuie reținute.

În mod ideal, odată configurat, sistemul va trebui să funcționeze foarte mult timp fără intervenția noastră. Serverul meu în versiunea „finisare” a fost configurat în două zile și a funcționat fără intervenție aproape un an. Aceasta înseamnă că interfața grafică a fost folosită timp de 0,05% din timpul în care serverul a fost activ (calculatorul funcționează doar o jumătate de zi) și în același timp a ocupat resurse: RAM, spațiu pe disc, timpul procesorului. Toate aceste resurse sunt mai bine direcționate către asigurarea funcționării serverului în sine: de exemplu, creșterea limitei_memoriei pentru PHP sau găzduirea mai multor date de utilizator pe HDD. În plus, în caz de probleme și defecțiuni atunci când lucrați cu un server la distanță real, este adesea mult mai ușor să utilizați accesul SSH. În acest context, prezența unei interfețe grafice este de nedorit și de aceea al doilea server din rețeaua mea era deja o mașină virtuală fără mediu grafic, pe care doar Midnight Commander a fost instalat din software-ul grafic, prin care navigam. Sistemul de fișiereși editarea fișierelor de setări prin editorul său mcedit. Prin urmare, mai jos este instrucție universală: comenzi date cu accent pe utilizare Linie de comanda, cu toate acestea, se presupune că pentru prima dată utilizatorul configurează o mașină cu un mediu grafic, ceea ce determină utilizarea unui browser pentru a verifica local disponibilitatea site-urilor create și a unor caracteristici ale setărilor programului de e-mail.

În procesul de creare a unui server și adăugare de noi site-uri la acesta, am acumulat câteva informații de fundal care pot fi utile unui utilizator începător. L-am schițat după materialul despre instalarea și configurarea serverului.

Notă
Pentru citiri suplimentare în structuri precum http:// 127.0.0.1 (https:// 127.0.0.1), spațiul de după http:// (https://) trebuie eliminat la intrarea în bara de adrese a browserului. La publicarea acestui articol a fost introdus un spațiu pentru a preveni convertirea automată a textului în link-uri de către motorul site-ului.

Instalare server web Apache2:

# apt-get install apache2 apache2-doc

Și e tot. Aproximativ douăzeci de megaocteți și serverul web este deja instalat. Nu sunt necesare reporniri sau setări - serverul știe deja cum să deschidă pagini HTML. Cu toate acestea, un site modern de pe Internet nu este doar un set de fișiere statice, stiluri, fonturi și alte lucruri ca acum douăzeci de ani. Un site modern conține scripturi scrise în PHP și informații dinamice (de exemplu, continutul textului, comentarii, profiluri de utilizator) nu este scris în fișierele de lângă fișierele PHP, ci într-o bază de date SQL specială. Pentru un server cu drepturi depline, este necesar să se ofere suport pentru aceste tehnologii. În plus, este ușor:

# apt-get install mysql-server mysql-client phpmyadmin
# apt-get install php5 php5-mysql libapache2-mod-php5

În timpul procesului de instalare MySQL, vi se va solicita să setați parola de superutilizator mysql și va trebui să selectați serverul apache2 pentru a configura automat mysql. Când am instalat pachetul phpmyadmin, am fost de acord cu reglaj automat pachet și a introdus peste tot parola mysql superutilizator. Instalarea PHP are loc fără solicitări.

Nu am folosit PHP7 mai rapid sau MariaDB gratuit ca o alternativă de înlocuire a SQL deschis și am decis să-mi construiesc serverul pe LAMP-ul „canonic” = Linux + Apache + MySQL + PHP, folosind soluții vechi și dovedite, în caz de probleme cu pe care le-am putut găsi rapid și ușor informații pe Internet.

Trei echipe (care pot fi de fapt reduse la una) și avem un server complet și modern instalat local. Este destul de simplu!

Dar configurarea unui server durează mult mai mult decât instalarea componentelor acestuia. Inițial, am vrut să arăt greșelile mele tipice în această parte, modalitățile false de rezolvare a problemelor și rezultatele la care au condus, dar s-a dovedit că de-a lungul anului am fost șterse mult din memorie, a trebuit să refac multe din înregistrări, deci numai instrucție de lucru cu câteva comentarii, permițându-vă să obțineți un rezultat de lucru universal.

Configurarea serverului web Apache2

Mai întâi trebuie să vă asigurați că serverul web rulează. Pentru a face acest lucru, deschideți un browser și tastați http:// 127.0.0.1 (localhost). O pagină web ar trebui să se deschidă cu un mesaj liniştitor: „Pagina implicită Apache2 Debian. „Funcționează!” Serverul chiar funcționează. Dacă aveți un set de fișiere de site din anul 2000, atunci acesta poate fi plasat în directorul /var/www/html și probabil se va deschide pe serverul nostru.

Toate setările de bază ale serverului web sunt stocate în /etc/apache2. Dacă deschideți acest director, puteți vedea fișierul principal de configurare apache2.conf și directoarele conf-available, mod-available, site-available. Aceste directoare conțin fișiere preconfigurate cu setări (așa-numitele fragmente), pe care le puteți pur și simplu să le utilizați implicit, cu propriile editări sau să le luați ca șablon pentru crearea propriilor configurații. De exemplu, directorul site-available conține fișierul implicit de configurare a gazdei 000-default.conf. Dacă îl deschideți și îl studiați, se dovedește că acest fișier stabilește doar calea în care se deschide site-ul nostru la http:// 127.0.0.1: „DocumentRoot /var/www/html”. Mai mult, linia „ înseamnă că dacă îmi eliberez mașina înăuntru retea locala si il voi accesa pe portul 80 (port pentru HTTP), apoi voi deschide un site situat pe calea /var/www/html. Cum să te asigur?

Mai întâi trebuie să aflați adresa IP care a fost atribuită mașinii virtuale după ce aceasta a fost încărcată. Pentru a vizualiza configurația adaptoare de rețea Hai sa facem:

#ifconfig

Din ieșirea consolei, este ușor de observat că adaptorul eth0 este setat la următoarea adresă:

Adresa Inet:192.168.233.138

Acum, pe mașina gazdă, deschid http:// 192.168.233.138 într-un browser și mă aștept să se deschidă o pagină familiară. Dar... nu se deschide. După un timp, browser-ul meu spune „Conexiune a expirat”. Și scrie corect. Într-adevăr, în prima parte, am pornit firewall-ul, dar nu am deschis portul 80! Să reparăm asta:

#ufw permite 80

Din nou, încercăm să deschidem adresa http:// 192.168.233.138 și să ne asigurăm că se deschide pagina așteptată. Gazda virtuală din mașina virtuală s-a deschis din afara acestei virtualizări. Am făcut un pas mic în construirea propriului nostru mic internet virtual.

Pe lângă directoarele -available, există și directoare activate care conțin ceea ce este în prezent „activat”. Dacă vă uitați la ele, puteți vedea că aceste directoare conțin legături către fișiere situate în directoarele -available. În prezent, există un singur link în directorul cu site-uri activate - către fișierul /etc/apache2/sites-available/000-default.conf. Acest lucru este foarte convenabil - putem controla activarea sau dezactivarea gazdelor cu comenzi rapide fără a edita fișierele de configurare ale acestora. În plus, sursa configurației este un singur fișier, indiferent dacă această configurație este activată sau nu, iar acest lucru previne erorile atunci când ceva este corectat într-un fișier și uitat în altul. Pentru a dezactiva gazda noastră, trebuie să ștergeți comanda rapidă necesară și, pentru ao activa, să o creați. Pentru a nu șterge sau crea comenzi rapide manual, este mai ușor și mai fiabil să folosiți utilități speciale.

Dezactivează gazda virtuală:

# a2dissite 000-implicit

Activați gazda virtuală:

# a2enssite 000-implicit

După fiecare modificare, trebuie să reîncărcați configurațiile gazdei sau să reporniți serverul:

# service apache2 reîncărcare

# service apache2 reporniți

Deci, acum am o înțelegere de bază despre cum să configurez gazde normale în apache, iar în continuare voi arăta un exemplu despre cum mi-am configurat serverul să funcționeze prin protocoalele HTTP și HTTPS.

Trebuie să începeți cu faptul că, atunci când dezactivați o gazdă virtuală implicită 000, nu există nicio oprire ca atare. Adică, site-ul a fost deschis atât din interiorul, cât și din exteriorul mașinii virtuale - și se va deschide indiferent dacă configurația sa se află în folderul activat pentru site-uri. A fost neașteptat și am petrecut relativ mult timp să înțeleg dacă am făcut sau am înțeles totul corect. Încă nu mi-am dat seama pe deplin, se pare că acest lucru se datorează faptului că calea /var/www/html este setată la nivel global ca director implicit pentru DocumentRoot. Deoarece nu am vrut să fie inclus și disponibil ceva de prisos, am decis să scap de directorul html în sine și pentru toate /var/www imbricate, în mod implicit, accesul a fost refuzat.

Pentru a configura o gazdă virtuală implicită, i-am editat fișierul de configurare:

Conținutul fișierului de configurare este următorul:

ServerName localhost ServerAdmin [email protected] DocumentRoot /var/www ErrorLog $(APACHE_LOG_DIR)/error.log CustomLog $(APACHE_LOG_DIR)/access.log combinat
Cu această configurație, am resetat directorul implicit la /var/www, am permis serverului să urmeze legăturile simbolice din acel director, am permis serverului să urmeze toate directivele declarate în fișierele .htaccess găsite și am refuzat accesul la acel director. Logica acestor acțiuni este că pot controla accesul la acest director fără a accesa deloc setările serverului web și fără a-l reporni. Acum trebuie să testăm această soluție.
Transferarea fișierului:

# mv /var/www/html/index.html /var/www/index.html

Și eliminați directorul:

# rm /var/www/html

Reporniți serverul pentru ca noile setări implicite ale gazdei virtuale să intre în vigoare:

# service apache2 reporniți

Creăm un fișier:

# nano /var/www/.htaccess

În care scriem un rând (fără ghilimele): „Require all granted”.

Să rezumam. Acum nu există o cale /var/www/html, dar gazda implicită este reconfigurată la calea /var/www, unde se află fișierul index.html și, implicit, la nivel de server web, accesul la acest director este refuzat, dar conținutul este permis local fișierul .htaccess aflat acolo.

Deschidem http:// 127.0.0.1 în browser și vedem deja familiară Pagina implicită Apache2 Debian. „Funcționează”. Acum să verificăm performanța controlului accesului „local”:
Ștergeți fișierul .htaccess:

# rm /var/www/.htaccess

Și actualizăm pagina deschisă în browser - ar trebui să se deschidă o pagină cu o notificare de restricție de acces (Interzis). Da, totul funcționează, așa că totul este făcut corect.

În principiu, aceste setări simple sunt destul de suficiente pentru funcționarea suplimentară fără probleme a serverului web. Dar asta mi s-a părut că nu este suficient. Acum serverul nostru web poate funcționa numai prin protocolul HTTP. Dar ce zici de protocolul HTTPS? La urma urmei, dacă în viitor pentru a afișa proiecte bazate pe acest server web pe Internet, atunci capacitatea de a lucra folosind acest protocol este cel puțin de dorit. Și am decis să organizez suport pentru HTTPS pe baza creării unui certificat SSL autosemnat.

Mai întâi trebuie să obțineți un certificat SSL care va fi instalat pe serverul nostru. Nu avem niciun domeniu și, de fapt, nu avem nici o adresă IP statică. Dar nu contează, pentru că eu voi genera eu certificatul, folosind instrumentele sistemului meu.

Atenţie! Instrucțiunile de mai jos presupun că serverul este instalat pe o mașină „fără nume”. Dacă există un IP sau un nume de domeniu real, atunci acestea trebuie specificate în TREI locuri: ; ; - în construcțiile corespunzătoare, înlocuiți IP/Domeniu cu o adresă IP sau un nume de domeniu. Textul de mai jos folosește localhost în loc de IP/Domain.

Să generăm un certificat SSL:

# openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout /etc/ssl/private/apache-selfsigned.key -out /etc/ssl/certs/apache-selfsigned.crt

Această comandă va crea un certificat autosemnat al standardului X.509 imediat timp de 10 ani, sărind opțiunea de a proteja certificatul cu o expresie de acces - acest lucru este necesar pentru ca la pornire serverul Apache să poată citi fișierul fără intervenția utilizatorului, deoarece după setarea parolei, va trebui să o introduceți după fiecare descărcare sau repornire a serverului. Odată cu certificatul, va fi creată o nouă cheie RSA de 2048 de biți, cu care certificatul va fi semnat. Opțiunile --keyout și --out specifică căile unde OpenSSL ar trebui să genereze cheia și certificatul.

În timpul procesului de creare a unui certificat, vor fi adresate întrebări, cărora le-am indicat următoarele date:

Numele țării = MW
Numele statului sau provinciei = Sun System
Numele localității = Lunar
Numele organizației = Hellium Inc.
Numele unității organizaționale = 2
Nume comun = localhost
Adresa de e-mail = [email protected]

Apoi, trebuie să creați chei Diffie-Hellman pentru a oferi suport PFS:

# openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048

Punctele și semnele plus vor rula în terminal, iar după sfârșitul desenului animat, puteți crea fișierul ssl-params.conf, în care vor fi definiți parametrii SSL pentru server:

# nano /etc/apache2/conf-available/ssl-params.conf

Pentru o configurare securizată și actualizată, am folosit codul generat în generatorul de configurare SSL la mozilla.github.io . În generator, am selectat serverul Apache2, profilul Modern și am setat corect serverul și versiunile OpenSSL, care pot fi găsite prin următoarele comenzi:

# apache2 -v
# versiune openssl

Drept urmare, am primit următorul text:

# 14-01-2018 / pentru apache2 2.4.10 & openssl 1.0.1t # de la https://mozilla.github.io/server-side-tls/ssl-config-generator/ # parametri ajutor: https://raymii .org/s/tutorials/Strong_SSL_Security_On_Apache2.html # configurație modernă, ajustați-vă la nevoile dvs. SSL -ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCMSA256-AESHA25: GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384 :ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256 SSLHonorCipherCipherOrder, numai pe SSLSPCompression Comandă #2 și SSLSPCompression dezactivată #2. mai târziu SSLUseStapling pe SSLStaplingResponderTimeout 5 SSLStaplingReturnResponderErrors dezactivat SSLStaplingCache shmcb:/var/run/ocsp0(128)
Acum să configuram gazda virtuală cu suport SSL:

Textul acestui fișier l-am adus la următoarea formă:

ServerAdmin [email protected] ServerName localhost DocumentRoot /var/www Opțiuni FollowSymLinks AllowOverride All Solicită toate refuzate SSLOptions+StdEnvVars SSLOptions+StdEnvVars
Din cele de mai sus rezultă că /var/www este definit și ca directorul DocumentRoot, accesul la care este configurat în mod similar cu setările anterioare. Este activat mecanismul HSTS, ceea ce facilitează stabilirea forțată a unei conexiuni prin protocolul HTTPS. Suport SSL activat care indică certificatul și cheia utilizate, precum și suport pentru procesarea datelor certificatelor în scripturi PHP și CGI. Ultima secțiune este menită să fie compatibilă cu versiuni timpurii motor de cautare Explorer și, în general, nu este necesar.

Acum să facem ultimele retușuri.

Să deschidem portul pentru SSL:

# ufw permit 443

Activați modulele apache pentru a suporta SSL și HSTS:

# a2enmod ssl
# antete a2enmod

Activați configurația SSL:

# a2enconf ssl-params

Activați gazda virtuală cu suport SSL:

# a2ensite default-ssl

Reporniți serverul pentru a accepta toate setările noi:

# service apache2 reporniți

Deci a venit un moment interesant - verificarea performanței noii funcționalități a sistemului configurat.

Creăm un fișier:

# nano /var/www/.htaccess

Deschideți https:// 127.0.0.1 într-un browser. Ar trebui să se deschidă o pagină despre un certificat necunoscut, după ce ați acceptat care (permisiune unică sau permanentă) pagina deja familiară se va deschide cu o notificare despre un server web care rulează.

Ștergeți fișierul .htaccess:

# rm /var/www/.htaccess

Și actualizăm pagina deschisă în browser - ar trebui să se deschidă o pagină cu o notificare de restricție de acces (Interzis). Totul funcționează corect. Acum site-urile noastre sunt accesibile atât prin HTTP, cât și prin HTTPS.

Accesul HTTP poate fi lăsat activat, dezactivat sau forțat să redirecționeze către HTTPS.

Nu trebuie făcut nimic pentru a permite accesul HTTP, deoarece serverul procesează cererile pentru porturile 80 și 443 individual, iar site-ul nostru din folderul /var/www se va deschide atât prin HTTP, cât și prin HTTPS.

Pentru a dezactiva accesul HTTP, pur și simplu dezactivați gazda virtuală corespunzătoare și reporniți serverul web:

# a2dissite 000-implicit
# service apache2 reporniți

Acum, dacă deschideți http:// 127.0.0.1 într-un browser, ar trebui să se deschidă o pagină cu o notificare Not Found.

Cea mai interesantă a treia opțiune. În acest caz, HTTP rămâne în mod oficial activat, dar procesarea datelor va fi forțată să fie redirecționată prin HTTPS.

Pentru a face acest lucru, mai întâi activați modulul de redirecționare:

# a2enmod rescrie

Acum să deschidem fișierul 000-default.conf:

# nano /etc/apache2/sites-available/000-default.conf

Și înainte de eticheta de închidere, adăugați următorul text:

RewriteEngine On RewriteCond %(HTTPS) off RewriteRule (.*) https://%(HTTP_HOST)%(REQUEST_URI)
Să repornim serverul:

# service apache2 reporniți

Să creăm un fișier:

# nano /var/www/.htaccess

În care scriem un rând: „Solicită toate acordate”.

Acum, dacă deschidem adresa http:// 127.0.0.1 în browser, vom fi redirecționați automat către https:// 127.0.0.1 cu un avertisment despre un certificat necunoscut (dacă nu a fost adăugat anterior în lista de excepții în browser), după acceptarea căruia cel deja familiar va deschide o pagină cu o notificare despre un server web care rulează.

Configurare SQL

Pentru configurare inițială mysql rulează următoarea comandă:

# mysql_secure_installation

După ce am introdus parola de superutilizator mysql, am răspuns la întrebările puse în următoarea ordine:

  • a refuzat să schimbe parola root;
  • a confirmat eliminarea utilizatorilor anonimi din baza de date;
  • a confirmat blocarea conexiunii la distanță pentru root (din motive de securitate, lăsați root să se conecteze doar local);
  • ștergerea confirmată a bazelor de date de testare;
  • a fost de acord să reîncarce tabelele de privilegii.
Pentru a verifica dacă mysql funcționează, puteți rula următoarea comandă:

# mysql -uroot -p

După introducerea parolei de superutilizator mysql, vedem promptul mysql, ceea ce înseamnă că serviciul este activ și rulează. Puteți ieși din terminalul mysql introducând comanda „exit”.

Pentru a verifica dacă phpmyadmin funcționează, deschideți http://127.0.0.1/phpmyadmin într-un browser. Dacă se deschide o pagină cu o invitație de a intra în phpmyadmin, atunci serviciul este în funcțiune.

Configurare PHP

După instalarea PHP, am deschis fișierul de setări:

# nano /etc/php5/apache2/php.ini

Și a adus câțiva parametri la următoarea formă:

  • limită_memorie = 1024M
  • default_charset = "UTF-8"
  • upload_max_filesize = 256M
  • sendmail_path = /usr/bin/fake_sendmail.sh
Folosind modulul PHP, puteți furniza stocarea în cache a datelor în memorie. Memorarea în cache este utilă atunci când există o încărcare mare pe server pentru date care necesită o mulțime de resurse pentru a genera, de exemplu, rezultatele interogărilor bazei de date sau procesarea unor bucăți „grele” ale șablonului de site. Am ales modulul memcached ca server cache.

instalare memcache:

# apt-get install memcached php5-memcached

Să ne uităm la setările de configurare a serviciului:

# nano /etc/memcached.conf

In setari am crescut cantitatea de memorie folosita pentru caching: -m 64 -> -m 256. Si am verificat disponibilitatea modului de operare doar in zona locala: -l 127.0.0.1.

Reporniți serviciul de stocare în cache și serverul web:

# service memcached repornire
# service apache2 reporniți

Acum trebuie să ne asigurăm că serviciul funcționează. Pentru a face acest lucru, creați un fișier:

# nano /var/www/info.php

Și adăugați următorul text:


Nu uitați să verificați prezența fișierului .htaccess în directorul /var/www cu conținutul permisiv corespunzător, dacă nu este acolo, creați-l.

Acum puteți deschide http:// 127.0.0.1/info.php în browser, care ar trebui să deschidă pagina de informații PHP și să verifice dacă conține o secțiune memcache. Dacă a apărut tabelul - PHP funcționează.

Puteți verifica serviciul memcached care rulează astfel:

$ ps -aux | grep memcached

Terminalul ar trebui să returneze un șir care să conțină setările memcached.

Crearea unui stub de e-mail pentru PHP

În setările PHP, a fost specificat un script shell ca parametru sendmail_path. Funcția acestui script este de a salva e-mailurile trimise prin functie standard php mail(), pe mașina locală, într-un folder convenabil, în loc să le trimiți undeva.

Să creăm un fișier:

# nano /usr/bin/fake_semdmail.sh

Cu următorul conținut:

#!/bin/sh prefix="/var/mail/sendmail/new" numPath="/var/mail/sendmail" dacă [ ! -f $numCale/num ]; apoi echo "0" > $numPath/num fi num=`cat $numPath/num` num=$(($num + 1)) echo $num > $numPath/num nume="$prefix/litera_$num.txt " while read line do echo $line >> $name done chmod 777 $name /bin/true
Să facem acest fișier executabil:

# chmod +x /usr/bin/fake_semdmail.sh

Să creăm directoarele necesare care ar putea fi necesare în cazul înființării colecției de scrisori program de mail:

# mkdir /var/mail/sendmail /var/mail/sendmail/cur /var/mail/sendmail/new /var/mail/sendmail/tmp

Și atribuim drepturi astfel încât serverul să poată scrie fișiere în acest folder:

# chmod 777 -R /var/mail/sendmail

Acum toate e-mailurile trimise vor merge la /var/mail/sendmail. Acestea pot fi vizualizate cu un editor de text sau pot fi colectate cu un program de e-mail. Software-ul Debian preinstalat include client de mail evoluţie. Când configurați un cont, selectați „Directoare de e-mail în format Maildir” ca tip de server și specificați calea către directorul de e-mail (/var/mail/sendmail) și specificați „Sendmail” ca server.

Tot. În general, am terminat cu serverul - a fost primită o mașină virtuală universală, pe baza căreia vă puteți construi propria dvs. servicii de rețea. Am lăsat atât accesul HTTP, cât și HTTPS. Cu toate acestea, după ce am acumulat experiență în crearea și configurarea unui server, precum și după adăugarea de site-uri (vezi mai jos) la acesta, aș recomanda crearea unui nou mașină virtuală cu un server fara interfata grafica cat mai optim in ceea ce priveste consumul de resurse.

Configurarea accesului SSH

Serverul nu ar fi un server complet fără acces SSH. Așa-numitul „shell” vă permite să vă conectați rapid și în siguranță la un server la distanță folosind, de exemplu, un mic program de chit - pe calculator local obținem acces direct la terminalul serverului de la distanță.

Instalare service:

# apt-get install ssh

Să deschidem portul pentru SSH (de fapt, portul implicit ar trebui să fie numărul 22, dar mai jos am suprascris portul în configurația SSH):

#ufw permite 106

Pentru a organiza accesul utilizatorului nostru, trebuie să deschidem fișierul:

# nano /etc/ssh/sshd_config

Și adăugați următoarea directivă la sfârșitul fișierului:


În plus, din motive de securitate, am făcut următoarele modificări la acest fișier:
  • a schimbat portul de la 22 la altul (lista de porturi): Port 22 -> Port 106
  • protocol moștenit dezactivat: Protocol 2,1 -> Protocol 2
  • oprit acces de la distanță pentru root: PermitRootLogin da (sau PermitRootLogin fără parolă) -> PermitRootLogin nu
Apoi repornim serviciul:

# service sshd restart

Acum pot rula putty pe mașina gazdă și mă pot conecta la serverul meu în modul consolă, introducând adresa de conectare 192.168.233.138, portul 106 și numele de utilizator. Când vă conectați, trebuie să răspundeți da la acceptarea cheilor și să introduceți parola utilizatorului. Dacă trebuie să executați comenzi ca superutilizator, puteți utiliza comanda su deja cunoscută.

Protecția accesului

Nu m-am ocupat de protejarea serverului web de DDoS, inițial crezând că, dacă este găzduit pe un VPS / VDS, atunci găzduirea va oferi o protecție eficientă, iar dacă vă faceți serverul „să iasă” pe Internet, atunci această problemă ar trebui să fi tratat cu seriozitate și acesta este un articol separat de subiect. Protecția lentă HTTP DDoS este relativ ușor de realizat conform numeroaselor instrucțiuni de pe internet, dar nu va proteja împotriva unui atac distribuit de la multe adrese IP diferite.

Cu DDoS, serverul nostru pur și simplu nu va mai funcționa pentru o perioadă. Dar după atac, care nu va dura o veșnicie, serverul va fi restaurat. Dar dacă cineva reușește să obțină acces prin SSH, atunci controlul asupra serverului se va pierde, iar datele de pe acesta vor fi compromise, așa că controlul accesului la server prin SSH este o idee bună.

Cel mai simplu și mai banal lucru care se poate face este schimbarea portului standard, ceea ce am făcut când Configurare SSH. În urmă cu aproximativ cinci ani, am „instalat” un server nou creat pe Internet la o adresă IP reală primită recent și am fost surprins că în săptămâna de existență a serverului, despre care nimeni nu știa încă nimic, s-a acumulat în jurnalele de sistem. un numar mare deînregistrări ale încercărilor eșuate de conectare prin SSH și FTP. Este evident că în internet modern există un număr considerabil de servicii robot care caută computere cu porturi deschiseși încercați să vă conectați la ele sortând parolele din baza de date existentă sau folosind metoda forței brute.

Din fericire pentru noi, există un astfel de lucru ca fail2ban:

# apt-get install fail2ban

Imediat după instalare, utilitarul este deja configurat pentru a proteja majoritatea porturilor, iar dacă în jurnalele de sistem apar mai mult de șase încercări eșuate de conectare în zece minute, atunci intrusul va fi blocat timp de zece minute. Mecanismul fail2ban este destul de simplu - așa-numitele închisori sunt declanșate de anumite declanșatoare, care determină acțiunea menită să protejeze aplicația.

Parametrii de blocare pot fi setabili individual:

# nano /etc/fail2ban/jail.local

În fișierul creat, trebuie să specificați setările care vor înlocui setările implicite existente. Exemplu de conținut al fișierului meu:

# Setari generale
ignoreip = 127.0.0.1
bantime=2592000
findtime=43200
maxretry = 6
banaction=iptables-multiport
# configurarea trimiterii unui mesaj la e-mail
destemail= [email protected]
sendername = Fail2Ban
mta=sendmail
acțiune = %(action_mwl)s

# securitate ssh
activat=adevarat
port=106
filtru=sshd
logpath=/var/log/auth.log

# detectează încercările eșuate de parolă
activat=adevarat
port = http,https
filter=apache-auth

# identificați potențialele scanări pentru exploit-uri și vulnerabilități php
activat=adevarat
port = http,https
filter=apache-noscript
logpath = /var/log/apache*/*error.log

# detectează încercările de depășire Apache
activat=adevarat
port = http,https
filtru=apache-overflows
logpath = /var/log/apache*/*error.log
maxretry = 2

# detectează încercările eșuate de a găsi directorul de acasă pe server
activat=adevarat
port = http,https
filter=apache-nohome
logpath = /var/log/apache*/*error.log
maxretry = 2

Setarea de mai sus vă permite să nu controlați accesul local și, cu șase încercări de conectare incorecte în decurs de 12 ore, interzice adresa IP a atacatorului folosind iptables timp de 30 de zile. Nu numai accesul la portul SSH este controlat, ci și acțiunile suspecte care vizează destabilizarea serverului web.

Referință pentru serverul web

Porniți, opriți și reporniți serverul:

# service apache2 start
# service apache2 stop
# service apache2 reporniți

# service apache2 reîncărcare

Activarea și dezactivarea gazdei de testare:

# a2ensite test
# a2dissite test

Activarea și dezactivarea configurației de testare:

# testul a2enconf
# testul a2disconf

Verificați sintaxa fișierului (ar trebui să returneze: „Sintaxă OK”):

# apache2ctl configtest

Opțiunea de a adăuga un site cu acces HTTP sau HTTPS folosind o gazdă virtuală existentă

Să presupunem că trebuie să adăugăm un nou site pe serverul nostru, găzduit în directorul site.com, situat la /home/user/www. Acest lucru poate fi util, deoarece utilizatorul nu va trebui să părăsească directorul de acasă pentru a accesa site-ul.

# chmod 755 /home/user

Creați un director pentru site:

$ mkdir /home/user/www /home/user/www/site.com

Pentru a adăuga acces HTTP, deschideți fișierul:

# nano /etc/apache2/sites-available/000-default.conf

Sau, pentru a adăuga acces HTTPS, deschideți fișierul:

# nano /etc/apache2/sites-available/default-ssl.conf

Și adaugă la deschide fișierul următorul conținut înainte de eticheta de închidere /VirtualHost:


Repornirea serverului web:

# service apache2 reporniți

Verificăm disponibilitatea site-ului la http:// 127.0.0.1/site.com sau https:// 127.0.0.1/site.com (metoda de verificare – vezi mai jos). De menționat că site-ul se va deschide indiferent de prezența fișierului .htaccess, deoarece directiva este setată pentru directorul cu site-ul: „Require all granted”.

Opțiunea de a adăuga un site cu acces prin HTTP sau HTTPS folosind o nouă gazdă virtuală și configurarea accesului la site prin numele său de domeniu, nu IP

Condițiile sarcinii sunt aceleași ca mai sus: să presupunem că trebuie să adăugăm un nou site pe serverul nostru, aflat în directorul site.com, aflat la /home/user/www. Dar acum vreau să accesez și site-ul introducând doar numele de domeniu în linia browserului.

Setăm drepturile pentru directorul de utilizatori (doar pentru orice eventualitate):

# chmod 755 /home/user

Creați un director pentru site:

$ mkdir /home/user/www/site.com

# ln -s /home/user/www/site.com /var/www/site.com

Pentru a adăuga acces HTTP, creați un fișier:

# nano /etc/apache2/sites-available/site.com.conf

Opțiuni FollowSymLinks AllowOverride All Necesită toate acordate# Redirecționare HTTP->HTTPS #RewriteEngine On #RewriteCond %(HTTPS) off #RewriteRule (.*) https://%(HTTP_HOST)%(REQUEST_URI) ErrorLog $(APACHE_LOG_DIR)/error.log CustomLog $(APACHE_LOG_DIR)/access .log combinat
Sau, pentru a adăuga acces HTTPS, creați un fișier:

# nano /etc/apache2/sites-available/site.com-ssl.conf

Și adăugați următorul conținut:

ServerName site.com ServerAlias ​​​​www.site.com ServerAdmin [email protected] DocumentRoot /var/www/site.com Opțiuni FollowSymLinks AllowOverride All Necesită toate acordate# HSTS (mod_headers este necesar) (15768000 secunde = 6 luni) Antetul setat întotdeauna Strict-Transport-Security "max-age=15768000" ErrorLog $(APACHE_LOG_DIR)/error.log CustomLog $(APACHE_LOG_DIR)/access.log combinat SSLEngine activat SSLCertificateFile /etc/ssl/certs/apache-selfsigned.crt SSLCertificateKeyFile /etc/ssl/private/apache-selfsigned.key SSLOptions+StdEnvVars SSLOptions+StdEnvVars BrowserMatch „MSIE” \ nokeepalive ssl-unclean-shutdown \ downgrade-1.0 force-response-1.0 BrowserMatch „MSIE ” ssl-unclean-shutdown
În /etc/hosts adăugați linia „127.0.0.1 site.com”:

# echo >> /etc/hosts 127.0.0.1 site.com

Activați gazda HTTP:

#a2ensite.com.conf

Sau activați gazda HTTPS:

#a2ensite.com-ssl.conf

Repornirea serverului web:

# service apache2 reporniți

Verificăm disponibilitatea site-ului la http:// site.com sau https:// site.com (metoda de verificare - vezi mai jos). De menționat că site-ul se va deschide indiferent de prezența fișierului .htaccess, deoarece directiva este setată pentru directorul cu site-ul: „Require all granted”.

Toate acțiunile sunt efectuate în interiorul mașinii virtuale invitate. Ar fi interesant să „deschidem” site-ul în browserul sistemului gazdă. Acest lucru nu este dificil. Știm numele de domeniu și adresa IP a mașinii invitate. Dacă gazda sistem Windows, apoi trebuie să deschideți fișierul c:\Windows\System32\drivers\etc\hosts și să adăugați următoarea linie până la sfârșit:


După această modificare, computerul sau sistemul gazdă va trebui să fie repornit. Acum, când deschideți site-ul site.com în browser, apelul către acesta va fi redirecționat către mașina noastră virtuală. De fapt, am realizat cea mai simplă rutare în sistemul nostru internet personal la nivelul sistemului de operare gazdă.

Dacă aveți nevoie de acces la gazda virtuală numai prin HTTPS, dar nu doriți să pierdeți conexiunile prin HTTP, puteți configura o redirecționare:

Creați fișierul /etc/apache2/sites-available/site.com.conf instrucțiunii de mai sus dacă nu este creată
- în fișierul /etc/apache2/sites-available/site.com.conf, decomentați cele trei rânduri RewriteEngine/RewriteCond/RewriteRule
- activați gazda site.com.conf dacă nu este activat
- reporniți serverul: # service apache2 restart

Verificarea funcționalității site-ului adăugat

Cel mai simplu mod de a verifica accesibilitatea unui site este să plasați un fișier index.html cu conținut în directorul său rădăcină.

Creați fișierul index.html:

$ nano /home/user/www/site.com/index.html

Și adăugați următorul conținut:

TEST OK

TEST OK


În funcție de metoda de adăugare a site-ului, deschideți http:// 127.0.0.1/site.com (https:// 127.0.0.1/site.com) sau http:// site.com (https:// site.com) în un browser ) - ar trebui să se deschidă o pagină care conține textul „TEST OK”.

Material de referință MySQL

Creați utilizator user123 cu parola pass123 și baza de date db123 prin consolă.

Conectați-vă la mysql introducând parola de superutilizator mysql când vi se solicită:

# mysql -u root -p

Și creați o bază de date (nu trebuie să tastați prefixul "mysql>", este necesară punctul și virgulă de la sfârșit):

mysql> CREAȚI BAZĂ DE DATE `db123`;

Creați utilizator user123 cu parola pass123:

mysql> CREATE USER "user123"@"localhost" IDENTIFICAT DE "pass123";

Acordați privilegii utilizatorului în baza de date:

mysql> ACORDĂ TOATE PRIVILEGIILE PE `db123`.* CĂTRE „user123”@”localhost”;

Actualizați tabelul de privilegii:

mysql> PRIVILEGII FLUSH;

Ieșiți din mysql:

mysql> ieșire

Pentru a verifica, deschideți adresa http:// 127.0.0.1/phpmyadmin și conectați-vă cu detaliile de acces user123/pass123. Accesul la baza de date db123 ar trebui să se deschidă.

Schimbarea parolei root mysql de la pass123 la pass456:

# mysqladmin -uroot -ppass123 parola pass456

Schimbați parola user123 din pass123 în pass456:

# mysqladmin -uuser123 -ppass123 parola pass456

Ștergeți utilizatorul user123:

mysql> DROP USER "user123"@"localhost";

Se șterge tabelul db123:

mysql> DROP DATABASE `db123`;

Material de referință Fail2ban

Repornire serviciu:

# service fail2ban reporniți

Verificarea regulilor de funcționare:

# fail2ban-starea clientului

Statistici detaliate despre regula sshd:

# fail2ban-client status ssh

Anularea interdicției:

# fail2ban-client set ssh unbanip Banned_IP

Pe web-ul modern, Linux este principala platformă pentru găzduirea unei varietăți de servere web. Continuitatea, ușurința în implementare și întreținere sunt totul.

Când luăm în considerare implementarea unui server web pe un sistem Linux, vom lua ca bază una dintre cele mai populare distribuții - Debian. S-a impus ca unul dintre cei mai mulți distribuții stabile, are cel mai mare depozit de pachete dintre orice distribuție și fiecare versiune vine cu o perioadă lungă de suport. Folosirea Debian vă permite să fiți sigur că atunci când actualizați pachetele pe server, în cele mai multe cazuri, nimic nu se va rupe. Dar nu este exact.

Gazduire rapida, de incredere in Europa!

Căutați o găzduire de site-uri web bună, dar ieftină? Vrei rapid, de încredere în stil european și tot ce este mai bun pentru proiectul tău? FORNEX este bucuros să vă ajute.

Gazduire rapida, de inalta calitate in strainatate. Ca servere pentru găzduirea virtuală, sunt folosite matrice de discuri rapide de discuri SSD, ceea ce asigură o funcționare fiabilă și rapidă a site-urilor dumneavoastră. Inginerii Fornex vă vor ajuta să transferați site-uri web absolut gratuit.

Acum este timpul să trecem la LAMP.

LAMP nu este altceva decât un acronim pentru stivă software pentru a implementa servere web. Aceasta include următoarele componente:

L - Linux - sistem de operare

A - Apache2 - Server Web

M - Mysql (acum pachetul Mysql a fost înlocuit cu MariaDB) - sistem de gestionare a bazelor de date

P - PHP - limbaj de programare

Este de remarcat faptul că LAMP nu a fost creat inițial ca o stivă - fiecare dintre componentele sale este un produs finit separat, cu toate acestea, un astfel de pachet a devenit foarte popular datorită confortului, flexibilității și performanței sistemului final.

În cadrul acestui articol, nu ne vom opri asupra instalării și pregătirii sistemului de operare, primul membru al stivei, pentru instalarea unui server web, acesta este un subiect pentru un articol separat, așa că vom trece imediat la instalarea următoarelor componente .

Instalarea Apache nu este dificilă - trebuie doar să instalați pachetul cu același nume din depozitul Debian.

Mai întâi, să actualizăm lista de pachete, dacă din anumite motive nu ați făcut acest lucru după instalarea sistemului de operare:

Acum puteți urma linkul http://(adresa_IP web server) și verificați dacă a apărut o pagină stub.

Să începem cu asta și să trecem la următorul punct.

mysql(MariaDB)

După cum am menționat mai sus, în Debian 9 pachetul standard Mysql a fost înlocuit cu MariaDB. Acest SGBD este complet compatibil, are sintaxă identică și este complet deschis cod sursa. Prezența MariaDB și a DBMS ca atare pe serverul web este necesară pentru funcționarea unei varietăți de sisteme de gestionare a conținutului (CMS), cum ar fi WordPress, Joomla și altele.

De asemenea, atunci când instalați MariaDB, veți avea nevoie de unul dintre pachetele PHP necesare pentru a lucra cu SGBD:

sudo apt install mariadb-server mariadb-client php7.0-mysql -y

Utilitarul vă cere să introduceți parola utilizatorului root, dar, din moment ce nu am setat-o ​​încă, facem doar clic introduce .

Setăm parola pentru utilizatorul privilegiat răspunzând afirmativ la prima întrebare (introduceți y pe tastatură și apăsați introduce) . Introducem parola pe care am inventat-o ​​și o confirmăm introducând-o din nou.

Nu vă faceți griji dacă nu vedeți caracterele pe care le introduceți pe ecran - așa ar trebui să fie.

Răspundem la toate celelalte întrebări pe care utilitarul vi le pune:

  1. Eliminați utilizatori anonimi?

Răspundem afirmativ - trebuie să ne conectăm la consola de management DBMS numai după introducerea parolei.

  1. interzice conexiune la distanță la utilizatorul root?

Aici răspundem, pe baza nevoilor și a considerațiilor personale. Cu toate acestea, din motive de securitate, este mai bine să răspundeți afirmativ.

  1. Ștergeți baza de date de testare?

Ștergeți fără teamă. Ea nu ne este de nici un folos.

  1. Actualizați privilegiile utilizatorului?

Din nou, răspundem afirmativ.

Să ne asigurăm că totul este configurat corect. Pentru a face acest lucru, conectați-vă la consola de management MariaDB:

sudo mysql -u root -p

sudo mysql -u root -p

Mysql - apelarea utilitarului de gestionare DBMS

u root - conectați-vă ca utilizator rădăcină

p - indică faptul că este necesară o parolă

Introducem comanda stare; pentru a obține informații despre starea serverului și pentru a vă asigura că MariaDB este gata de funcționare:

Pentru a ieși din consola de management DBMS, introduceți comanda Ieșire;

PHP7.0

Am ajuns la componenta finală a stivei LAMP, procesorul de hipertext PHP. Este un limbaj de scripting scop general folosit pentru a dezvolta aplicații web. Să instalăm interpretul și câteva biblioteci pentru a lucra cu Apache:

sudo apt install php7.0-common libapache2-mod-php7.0 php7.0-cli -y

Acum să verificăm dacă PHP este instalat corect. Pentru a face acest lucru, accesați directorul serverului web:

INFORMAȚII: Directorul implicit pentru stocarea aplicațiilor web este /var/www/html. Puteți schimba directorul sau adăuga unul nou prin editarea gazdelor virtuale - fișierele de configurare Apache, despre care se va discuta în paragraful următor.

cd /var/www/html

06 sept

LAMPĂ - este un set produse software utilizat pe scară largă pentru a crea servicii web. Acest set constă dintr-o operație sisteme Linux, unul dintre cele mai comune servere web Apache, Mysql DBMS și limbaj de scripting PHP. Acest articol este dedicat procedurii de instalare și configurare standard a acestui set pentru utilizare ulterioară pentru serviciile web.

Debian 8 a fost ales ca sistem de operare, ca una dintre cele mai populare distribuții GNU/Linux. Procesul de instalare a acestui sistem de operare în sine nu va fi luat în considerare, deoarece nu are legătură cu subiectul articolului.

Toate operațiunile de instalare și configurare vor fi efectuate sub contul de utilizator root.

Instalarea Apache

Înainte de a începe instalarea, trebuie să rulați comanda:

apt-get install apache2

După finalizarea instalării, serverul web va fi gata de funcționare. Puteți verifica cu ușurință dacă funcționează deschizând adresa IP a serverului pe care a fost instalat pachetul Apache într-un browser web. Pentru versiunea 2.4, pagina stub arată astfel:

Fișierul de configurare Apache, situat în /etc/apache2/apache2.conf

Directorul /etc/apache2/sites-enabled/ conține fișierele de configurare pentru serviciile web create, iar directorul /etc/apache2/sites-available/ conține legături simbolice către fișierele de configurare a serviciilor web care sunt activate în prezent.

Puteți utiliza aceste fișiere de configurare pentru a controla modul în care sunt configurate gazdele virtuale. Serverul Apache vă permite să găzduiți mai multe gazde virtuale (servicii) pe un singur server. În mod implicit, tot conținutul serviciului web se află în folderul /var/www. Plasarea conținutului poate fi modificată specificând-o în fișierul de configurare a gazdei virtuale, directiva DocumentRoot este responsabilă pentru aceasta.

Luați în considerare crearea cel mai simplu web pagini cu inscripția „Hello World”. Mai întâi, să creăm un folder în care va fi stocat conținutul. Pentru a face acest lucru, executați comanda:

Mkdir /var/www/helloworld.net

În acest folder vom crea cel mai simplu fișier html index.html cu următorul conținut:

Salut Lume

Aceasta este o pagină de test.

După ce conținutul celei mai simple pagini este prezent, este necesar să creați un fișier de configurare a gazdei virtuale. Pentru a face acest lucru, în folderul /etc/apache2/sites-available/, creați fișierul helloworld.net.conf (nu uitați de extensia conf) cu următorul conținut:

ServerName helloworld.net ServerAdmin [email protected] ServerAlias ​​​​www.helloworld.net DocumentRoot /var/www/helloworld.net CustomLog $(APACHE_LOG_DIR)/helloworld.net.access.log combinat ErrorLog $(APACHE_LOG_DIR)/helloworld.net.error.log

Iată parametrii:

  • ServerName - numele de domeniu al gazdei virtuale (pagina noastră);
  • ServerAdmin - adresa E-mail administrator;
  • ServerAlias ​​​​– alias gazdă virtuală (nume de domeniu gazdă cu www atașat);
  • DocumentRoot - locul în care este stocat conținutul serviciului în sine;
  • CustomLog - numele fișierului jurnal de acces la serviciu;
  • ErrorLog este numele fișierului jurnal de erori.

O descriere detaliată a tuturor parametrilor și a valorilor acestora în fișierul de configurare poate fi găsită în documentația oficială (http://httpd.apache.org/docs/2.4).

Următorul pas este să ne activăm gazda virtuală. Acest lucru se poate face prin simpla creare a unei legături simbolice:

cd /etc/apache2/sites-enabled ln -s ../sites-available/helloworld.net.conf helloworld.net.conf

De asemenea, puteți activa și dezactiva gazdele virtuale folosind comenzile a2ensite și, respectiv, a2dissite.

Pentru a permite:

A2ensite helloworld.net

A opri:

A2dissite helloworld.net

După activarea gazdei, trebuie să reporniți serverul Apache:

/etc/init.d/apache2 reporniți

Acum puteți verifica funcționarea paginii create.

Pentru a verifica pagina, poate fi necesar să adăugați o linie la fișierul hosts de pe computerul de pe care se face verificarea:

xxx.xxx.xxx.xxx helloworld.net

Unde xxx. xxx. xxx. xxx este adresa IP a serverului cu Apache instalat. fișierul hosts, situat:

  • C:\Windows\System32\drivers\etc (în Win7)
  • /etc/hosts (pe Debian).

Instalarea PHP

Următorul pas este să instalați limbajul de scripting PHP. Instalarea se realizează cu comanda:

apt-get install php5

Acum trebuie să verificați Job PHP. Pentru a face acest lucru, adăugați fișierul test.php în folderul de conținut al site-ului (/var/www/helloworld.net). LA fisierul dat trebuie sa scrieti urmatoarele:

Trebuie remarcat faptul că sub serverul Apache există un modul PHP. Acest modul permite Apache și PHP să funcționeze mai eficient. Puteți verifica dacă modulul este instalat:

dpkg -l | grep libapache2-mod-php5

Dacă modulul nu este prezent, atunci acesta trebuie instalat:

apt-get install libapache2-mod-php5.

Puteți verifica dacă modulul este activat pe serverul Apache însuși, după cum urmează:

ls -l /etc/apache2/mods-enabled/ | grep php5

Ar trebui să apară următoarele:

lrwxrwxrwx 1 root root 27 sep 2 10:07 php5.conf -> ../mods-available/php5.conf lrwxrwxrwx 1 root root 27 sep 2 10:07 php5.load -> ../mods-available/php5.loadable

Dacă modulul nu este activat, acesta poate fi activat prin analogie cu gazdele virtuale cu comanda

A2enmod php5

Modulul este dezactivat cu comanda a2dismod.

instalare mysql

Ultimul pas în pregătirea mediului pentru lucrul cu serviciile web este instalarea SGBD-ului mysql. Instalarea se realizează cu comanda:

apt-get install mysql-server php5-mysql

În timpul procesului de instalare, vi se va solicita să introduceți o parolă pentru utilizatorul root.

După finalizarea instalării, verificați job mysql Vă puteți conecta la DBMS în sine.

Mysql -u root -p Introduceți parola: Bun venit la monitorul MySQL. Comenzile se termină cu ; sau\g. ID-ul dvs. de conexiune MySQL este 43 Versiunea serverului: 5.5.49-0+deb8u1 (Debian) … mysql>

Aceasta completează pregătirea de bază a serverului. În plus, puteți instala utilitarul phpmyadmin pentru a gestiona baza de date.

apt-get install phpmyadmin

La instalare, trebuie să specificați serverul cu care veți lucra, acest lucru va permite programului de instalare să configureze automat utilitarul să funcționeze cu acest server.

De asemenea, puteți răspunde pozitiv la sugestia de a crea o bază de date.

Și de mai multe ori introduceți parola pentru administratorul bazei de date (cea care a fost specificată pentru utilizator root la instalarea mysql).

După instalarea phpmyadmin. Funcționarea acestuia poate fi verificată urmând linkul http://localhost/phpmyadmin (dacă browserul este deschis de pe același server) sau prin linkul http://xxx.xxx.xxx.xxx/phpmyadmin de pe alt computer unde xxx. xxx.xxx.xxx este adresa IP a serverului.

Pentru a vă autentifica, trebuie să utilizați datele de conectare și parola specificate în timpul instalării mysql.

În acest tutorial, veți învăța cum să instalați Apache, MariaDB și PHP7 (stiva LAMP) pe o extensie Debian 9. LAMP este cea mai comună stivă de servicii web pentru construirea de site-uri web dinamice și aplicații web.

Are patru componente: Linux, Apache, MySQL/MariaDB, PHP - Linux este sistemul de operare; Apache este un server web; MySQL/MariaDB este o bază de date; PHP este un limbaj de scripting pe partea de server.

În general, instalarea LAMP pe Debian 9, ca orice altă distribuție bazată pe Linux, este foarte ușoară. Mai ales dacă sunteți familiarizat cu construirea comenzilor. Vom explica totul în detaliu, astfel încât chiar și un începător să poată face față.

Instalarea LAMP pe Debian 9

Toate cele patru componente sunt gratuite și open source. Cu toate acestea, deoarece MySQL este acum deținut de Oracle și există posibilitatea ca Oracle să-l transforme într-un produs cu sursă închisă, vom alege MariaDB în locul MySQL. Puteți urma acest ghid pe un VPS (Virtual Private Server) sau pe mașina dvs. locală Debian 9.

Vă rugăm să rețineți că atunci când instalați software pe Debian, trebuie să aveți privilegii de root. Puteți adăuga sudo la începutul comenzii sau puteți utiliza comanda su pentru a comuta la utilizatorul root.

Pasul 1: Actualizați pachetele software

LAMP (server stack) înseamnă Linux, Apache, MySQL și PHP; patru componente software open source populare utilizate de majoritatea gazdelor web, dezvoltatorilor web, blogurilor și alții. Am pregătit un ghid pentru instalarea serverului dvs. web pentru un mediu de testare în ultima versiune Debian. În general, instalarea LAMP în Debian 9 este foarte simplă, principalul lucru este să înțelegeți funcțiile de bază.

MariaDB înlocuiește serverul MySQL ca bază de date implicită în Debian 9.

Instalați Linux:
despre ceea ce este bun, interesant și inovator prezentat în Debian 9. Aceasta este condiția principală pentru a instala orice altceva. De asemenea, vă recomandăm să vă familiarizați cu alte ghiduri de pe site. De exemplu, am vorbit deja despre a fi pe sistemul dumneavoastră cu Ubuntu.

Vom trece acum la instalarea AMP (Apache versiunea 2, PHP versiunea 7, MariaDB versiunea 10.2) pe Debian 9. Deci haideți să instalăm unul câte unul.

Instalați Apache HTTP Server:
Mai întâi, vom instala serverul web Apache. Deschideți un terminal și apoi comutați la utilizatorul root.

Actualizați indexul depozitului de pachete.

Numele pachetului de server web Apache este apache2. Instalați pachetul apache2 folosind comanda apt-get.

apt-get -y instalează apache2

Administrarea serverului Apache HTTP:

Pentru a porni serverul Apache2, rulați.

systemctl porniți apache2.service

Pentru a opri serverul Apache2, rulați.

systemctl opri apache2.service

Pentru a reporni serverul Apache2, rulați.

Pentru a verifica starea serverului Apache2, rulați.

starea systemctl apache2.service

Firewall:

Permiteți serverului Apache HTTP prin firewall.

ufw permit 80/tcp

ufw permit 443/tcp

Testarea serverului Apache HTTP:

Vom verifica acum serverul web Apache pentru a vedea dacă funcționează corect sau nu. Deschideți orice browser web și apoi navigați la următoarea adresă URL.

http://localhost/
SAU

http://your-f-add-ssg/
Veți obține pagina „Apache2 Debian Default”, această pagină implicită confirmă că serverul Apache HTTP funcționează bine.

Instalarea MySQL Server (MariaDB):
MariaDB este un înlocuitor de server MySQL conceput de dezvoltatorii originali MySQL pentru a rămâne și a avea RDBMS open source. MariaDB este acum unul dintre cele mai populare servere de baze de date din lume.

Pentru a instala MariaDB, rulați următoarea comandă

apt-get -y instalează mariadb-server

Această comandă vă permite să îmbunătățiți securitatea instalării dvs. MariaDB în următoarele moduri:

Poti instalare parola pentru contul root.

Puteți limita Conturi root la localhost.

Puteți șterge conturile de utilizator anonime.

Puteți elimina baza de date de testare și privilegiile care permit oricui să acceseze baze de date cu nume care încep cu test_.

Instalați PHP:
Implicit serverul Apache acceptă doar .html și nu PHP, pentru aceasta trebuie să instalați pachetul de extensii PHP și php pentru serverul MariaDB. Aici vom instala PHP 7 pe Debian 9.

apt-get -y install php php mysql

După instalarea pachetului PHP, va trebui să reporniți serverul Apache HTTP.

systemctl reporniți apache2.service

Testare PHP:

Utilizați editorul VI pentru a crea fișierul info.php.

vi /var/www/html/info.php

Această comandă vi va deschide un fișier numit info.php. Copiați/Lipiți mai jos rândurile în fișierul info.php:

Salvați și închideți fișierul folosind Esc +: wq.

Acum deschideți browserul de internet și introduceți următoarea adresă URL în adresa web.

http://localhost/info.php

http://your-ip-add-ress/info.php
Pagina va arăta astfel:

Instalarea LAMP în Debian 9, așa cum am spus mai sus, sa dovedit a fi foarte simplă. Sperăm că v-ați dat seama rapid de valorile de bază în timpul instalării. Dar dacă aveți întrebări, asigurați-vă că le puneți în comentarii.

concluzii

E tot! Felicitări, ați instalat cu succes LAMP pe Debian 9. Dacă articolul v-a fost util, atunci nu uitați să distribuiți linkul.

Dacă găsiți o eroare, evidențiați o bucată de text și faceți clic Ctrl+Enter.

Distribuția Debian este considerată în primul rând cel mai stabil sistem de operare, așa că este adesea folosită pe servere pentru a găzdui site-uri web. De asemenea, este obișnuit ca utilizatorii Linux să fie nevoiți să instaleze software pentru site-ul web pe mașina lor locală pentru a putea testa și ordona totul înainte de a-l trimite pe World Wide Web.

În acest articol, vom arunca o privire la modul în care este instalat LAMP Debian 9. Abrevierea LAMP înseamnă Linux Apache Mysql PHP, care este un set de software care este cel mai frecvent utilizat pentru a găzdui site-uri web. Am mai vorbit despre, procesul nu va fi foarte diferit în Debian, dar există încă nuanțe.

Mai întâi, vom instala toate componentele necesare, apoi le vom configura și vom verifica funcționarea corectă după cum este necesar. Dar mai întâi trebuie să actualizați sistemul la cea mai recentă versiune:

sudo aptitude update && sudo aptitude upgrade

1. Instalarea componentelor

Mai întâi, instalați serverul web și interpretul limbajului de programare PHP:

sudo aptitude instalează apache2 php php-mysql libapache2-mod-php php-mbstring php-zip php-gd

Am instalat nu numai serverul web, ci și principalele biblioteci PHP de care este posibil să aveți nevoie pentru a lucra cu grafică, șiruri și arhive comprimate. Pachetul libapache2-php este responsabil pentru integrarea suportului php pentru serverul web Apache.

Înainte de a continua să configurați toate acestea, trebuie să instalați un sistem de gestionare a bazei de date. Puteți utiliza MySQL sau versiunea comunității MariaDB. Pentru a instala MariaDB, rulați:

sudo aptitude install mariadb-server mariadb-client mariadb-common

Și pentru a instala MySQL:

sudo aptitude install mysql-server mysql-client mysql-common

În acest articol, ne vom concentra pe MariaDB, dar lucrul cu MySQL nu va fi foarte diferit.

2. Configurare Apache și PHP

Au trecut vremurile în care trebuia să revizuiți o grămadă de fișiere de configurare pentru a conecta PHP la Apache, acum instalarea LAMP Debian 9 este destul de simplă. Dacă porniți Apache acum și introduceți adresa localhost, atunci totul va funcționa. Dar mai întâi să adăugăm un domeniu pe site-ul nostru. Pe mașina locală, acest lucru este de asemenea util. Mai întâi, să creăm un folder pentru site:

sudo mkdir /var/www/testsite/

Fișierele de configurare a gazdei virtuale sunt stocate în directorul /etc/apache2/sites-available/, doar copiați configurația implicită 000-default într-un fișier nou:

sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/test-site.conf

Acum, fișierul rezultat trebuie editat. Vom fi interesați de directivele ServerName și DocumentRoot. Setați-le la valorile corecte:

ServerName test-site.com
DocumentRoot /var/www/test-site/

Orice altceva poate fi lăsat implicit. Apoi salvați modificările și activați site-ul cu comanda:

sudo a2ensite test-site.conf

Acum rămâne să reporniți Apache:

Pentru a testa cum funcționează totul, creați un fișier index.php cu următorul conținut în folderul /var/www/test-site/:

Dacă domeniul este înregistrat pe Internet și toate solicitările către acesta sunt trimise la ip-ul dvs., atunci puteți deschide deja site-ul într-un browser. Dacă nu, puteți configura ruta pentru domeniu local folosind fișierul /etc/hosts:

sudo vi /etc/hosts

127.0.0.1 test-site.com

Acum puteți deschide site-ul într-un browser și verificați:

http://testsite.com

Dacă vedeți informațiile despre versiunea php, ca în captură de ecran, atunci totul funcționează și trebuie doar să setăm baza de date.

3. Configurarea bazei de date

După cum am spus, vom folosi mariadb ca bază de date principală. Pentru a începe configurarea, rulați:

mysql_secure_installation



Nu voi descrie în detaliu toți pașii de configurare. Ele sunt deja descrise în articolul Instalarea MySQL pe Ubuntu. După finalizarea procesului de configurare inițială, să creăm o nouă bază de date:

CREAȚI BAZĂ DE DATE site-ul de testare;

Apoi creați un utilizator și acordați-i acces la această bază de date:

CREAȚI UTILIZATOR „testuser”@”localhost” IDENTIFICAT DE „parolă”;
ACORDĂ TOATE PRIVILEGIILE PE testsite.* CĂTRE „testuser”@”localhost”;

Ei bine, pentru testare, să adăugăm un tabel:

USE site de testare;
CREATE TABLE testtable (
id INT NOT NULL AUTO_INCREMENT,
str VARCHAR(100) NOT NULL,
CHEIE PRIMARĂ(id)
);

Acum să adăugăm o înregistrare la tabelul pe care tocmai l-am creat:

INSERT INTO testtable (str) VALUES ("test1"), ("test2"), ("test3");

Acum, pentru a ne asigura că totul funcționează, vom încerca să obținem date din mysql prin PHP. Să creăm un mic script pentru asta. Se va conecta la baza de date și va citi în ordinea înregistrărilor din tabel:

sudo vi /var/www/test-site/testmysql.php

$connection = mysqli_connect("localhost","testuser","parola","testsite") sau die("Eroare " . mysqli_error($conexiune));
$sql = "SELECT ID, str FROM testtable";
$rezultat = mysqli_query($conexiune, $sql) sau die("Eroare " . mysqli_error($conexiune));
$items = array();
while($rând = mysqli_fetch_assoc($rezultat))
{
$articole = $rând;
}
echo json_encode($articole);
?>

http://test-site.com/testmysql.php