Mendez, Michael (2022), Servere web, IT & C, 1:2, 63-73. Traducere și adaptare independente: Nicolae Sfetcu, https://www.internetmobile.ro/servere-web/
Rezumat
În activitatea de creare de pagini web și site-uri web, nimic nu este posibil fără componentele hardware și software care sprijină paginile pe care le creăm. Examinarea a ceea ce sunt aceste componente și modul în care acestea interacționează ne ajută să înțelegem de ce este capabil serverul nostru.
Având în vedere popularitatea acestei combinații specifice de patru aplicații (Linux, Apache, MySQL și PHP – LAMP), este ușor să înțelegem de ce acest tip de server web a devenit pur și simplu sistemul. Cu toate acestea, nevoile și preferințele pot schimba motivul pentru care este selectată o anumită abordare.
Cuvinte cheie: server web, Linux, Apache, MySQL, PHP, LAMP
Abstract
In the business of creating web pages and websites, nothing is possible without the hardware and software components that support the pages we create. Examining what these components are and how they interact helps us understand what our server is capable of. Given the popularity of this particular combination of four applications (Linux, Apache, MySQL and PHP – LAMP), it’s easy to see why this type of web server simply became the system. However, needs and preferences may change why a particular approach is selected.
Keywords: web server, Linux, Apache, MySQL, PHP, LAMP
IT & C, Volumul 1, Numărul 2, Decembrie 2022, pp. 63-73
ISSN 2821 – 8469, ISSN – L 2821 – 8469
URL: https://www.internetmobile.ro/servere-web/
© 2022 Nicolae Sfetcu. Responsabilitatea conținutului, interpretărilor și opiniilor exprimate revine exclusiv autorilor. Responsabilitatea traducerii revine translatorului. Licența CC BY-NC-SA 3.0.
Acesta este un articol cu Acces Deschis distribuit în conformitate cu termenii licenței de atribuire Creative Commons CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/), care permite utilizarea, distribuirea și reproducerea fără restricții pe orice mediu, cu condiția ca lucrarea originală să fie citată corect.
This is an Open Access article distributed under the terms of the Creative Commons Attribution License CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/), which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.
Servere web
Michael Mendez
Introducere
În activitatea de creare de pagini web și site-uri web, nimic nu este posibil fără componentele hardware și software care sprijină paginile pe care le creăm. Examinarea a ceea ce sunt aceste componente și modul în care acestea interacționează ne ajută să înțelegem de ce este capabil serverul nostru.
Diagrama de mai jos reprezintă elementele de bază ale unui server web. Hardware, un sistem de operare și un server http cuprind necesitățile. Adăugarea unei baze de date și a unui limbaj de script extind capacitățile unui server și sunt utilizate și în majoritatea serverelor.
(Structura serverului web)
Hardware
Menționarea unor fraze precum centru de date, furnizor de găzduire sau chiar companii mari precum Microsoft și Google pot invoca imagini mentale ale unor camere mari, sterile, pline de rafturi înalte de hardware, cu lumini intermitente și un labirint de fire. Cei mai familiarizați cu astfel de camere vor cunoaște, de asemenea, răceala rezultată din atmosfera puternic alimentată cu aer condiționat și zvâcnirile ventilatoarelor care le însoțesc de obicei. Totuși, aceasta nu este o cerință și nici o portretizare exactă a multor servere conectate la Internet. Odată cu adăugarea software-ului potrivit (presupunând că consumați acest text digital), dispozitivul pe care îl utilizați pentru a citi acest lucru ar putea deveni un server conectat la internet. Deși nu ar susține cerințele făcute de domenii precum Amazon.com sau MSN.com, veți putea efectua acțiunile de bază ale unui server cu majoritatea dispozitivelor actuale.
Chiar dacă am ajuns la acest punct, este dificil să uităm imaginea mentală evocată de ideea centrului de date. În modelul actual „tradițional”, serverele subțiri, compacte din punct de vedere fizic, sunt stivuite vertical. Acestea sunt denumite hardware montate pe rack. Multe sisteme montate pe rack conțin astăzi hardware similar cu ceea ce avem pe calculatoarele noastre, în ciuda diferenței de aspect.
O serie de companii, inclusiv Google, Yahoo și Facebook, caută să reinventeze acest concept. Google, de exemplu, a folosit deja servere personalizate în anumite părți ale rețelei sale pentru a îmbunătăți eficiența și a reduce costurile. O implementare pe care au încercat-o s-a dovedit atât de eficientă încât au reușit să elimine unitățile de rezervă de mare putere plasând o baterie de 9 volți în fiecare server – oferindu-i suficientă energie de urgență pentru a continua să funcționeze până când sursa de alimentare de rezervă a clădirii ar putea intra în funcțiune cu metode alternative de răcire, cum ar fi utilizarea apei din iazurile de retenție sau plasarea de centre de date unde pot profita de resursele naturale, cum ar fi apa de mare pentru răcire sau eoliană și solară pentru energie.
NOTE ADIȚIONALE
Luați aminte! Deși toate programele la care ne referim ca stiva noastră LAMP au versiuni gratuite, open source, nu toate utilizările pot fi acoperite de aceste licențe (utilizarea acestora în scopuri de studiu și cercetare este acoperită).
Chiar și dispozitivele mici, cu putere redusă, găsesc cerere ca servere, în parte, pentru a permite Internetul Obiectelor. Dispozitive precum Raspberry Pi12 și o explozie de produse similare, cum ar fi „stick-uri Android”, pot fi achiziționate cu doar 25 USD. Aceste dispozitive mici, de „putere suficientă”, sunt utilizate pentru a conecta date din mediul înconjurător sau alte dispozitive la Internet, lăsând centrul de date în urmă și găsindu-se în schimb în sursa însăși de date.
Software
Un server web tipic conține astăzi patru elemente în plus față de hardware-ul fizic. Acestea sunt sistemul de operare, serverul web, o bază de date și un limbaj de script. Una dintre cele mai populare combinații ale acestor sisteme a fost abreviată în LAMP, reprezentând Linux, Apache, MySQL și PHP, denumite în aceeași ordine. Există multe combinații de soluții care îndeplinesc aceste caracteristici, rezultând o serie de variante ale acronimului, cum ar fi WAMP pentru Windows, Apache, MySQL, PHP sau MAMP, identice cu excepția Mac (sau, pe bună dreptate, un sistem de operare dezvoltat de Macintosh ). Printre multitudinea de combinații, utilizarea LAMP predomină ca referință de captare la un server cu aceste tipuri de servicii.
Tot ceea ce este necesar în cele din urmă pentru a transmite pagini statice unui utilizator final este sistemul de operare și serverul HTTP, prima jumătate a acronimului WAMP. Soldul adaugă capacitatea de interactivitate și de a schimba informațiile pe baza rezultatului interacțiunilor utilizatorilor.
Sistem de operare – Linux
Sistemul de operare este cel care vă permite să interacționați cu aplicațiile și hardware-ul care alcătuiesc computerul. Facilitează alocarea resurselor către aplicațiile dvs. și comunicarea între hardware și software. De obicei, sistemele de operare pentru servere se încadrează în trei categorii: Linux, Windows și Mac. În fiecare dintre aceste categorii există mai multe opțiuni, cum ar fi diverse versiuni de sisteme de operare Mac și Windows și o mare varietate de sisteme de operare Linux. Linux este alegerea predominantă.
Dezvoltat de Linus Torvalds la începutul anilor 1990 în timp ce era student, Linux a fost creat astfel încât Linus să poată accesa sistemele UNIX la universitatea sa fără să se bazeze pe un sistem de operare. Pe măsură ce proiectul său a devenit mai robust, a decis să-l împărtășească și altora, căutând contribuții, dar crezând că va rămâne un efort mai personal. Ceea ce el nu ar fi putut prezice a fost comunitatea care avea să se reunească și să participe cu contribuții la dezvoltarea ei în ceea ce este astăzi. Ca bază a unui număr mare de sisteme de operare bazate pe Linux (sau „arome” de Linux), nucleul Linux poate fi găsit în întreaga lume, chiar și în camerele de servere ale concurenților săi, cum ar fi Microsoft.
Servere HTTP – Apache
Apache este un server web în sursă deschisă dezvoltat inițial pentru sistemele UNIX. Acceptat acum pe majoritatea platformelor, inclusiv UNIX, Linux, Windows și Mac, Apache este una dintre cele mai utilizate aplicații server. Dezvoltat pentru prima dată în 1995, Apache urmărește o abordare similară a sursei deschise ca Linux, permițând utilizatorilor să se extindă pe software și să contribuie la comunitatea de utilizatori. Grupul de utilizatori din jurul Apache a dezvoltat Apache Foundation, care menține o bibliotecă de soluții pentru servicii web.
Pe un server web, Apache servește ca componentă HTTP, care compilează rezultatele din limbaje de script, baze de date și fișiere HTML pentru a genera conținut care este trimis utilizatorului. Apache (sau orice serviciu web) va urmări ce fișiere de pe server aparțin și nu aparțin site-ului web și, de asemenea, controlează ce opțiuni sunt disponibile pentru scriptul bazei de date a utilizatorului final prin fișierele sale de configurare.
Apache și alte servere HTTP ne permit să partajăm paginile noastre web, scripturile și fișierele cu utilizatorii noștri finali. Orice ieșire din baza noastră de date și limbajele de script este transformată în ieșire HTML afișată de browserul clientului ca pagină web. Deși putem vizualiza fișiere HTML și JavaScript pe un computer care nu este un server web, avem nevoie de un server http pentru a le vizualiza ca destinație într-o rețea.
Fișiere de configurare
Când creăm un sistem nou, este posibil ca setările să nu fie exact așa cum le dorim, sau poate să vină momentul în care dorim să adăugăm, să eliminăm sau să schimbăm ceva la serverul nostru. Pentru a face acest lucru, va trebui să edităm fișierele de configurare care controlează diferitele piese ale sistemului nostru. Fișierul nostru actual de configurare a serverului web se numește httpd.conf. Pentru setările PHP, trebuie să ne referim la php.ini, iar pentru MySQL ne referim la my.cnf. Aceste fișiere pot fi amplasate în diferite locuri, în funcție de sistemul de operare și de versiunea utilizată, deci este mai bine să utilizați instrumentele de căutare a fișierelor din sistemul dvs. pentru a afla unde se află pe dispozitivul dvs. Fișierele de configurare (sau setare) sunt de obicei fișiere în format text simplu, cu o setare pe fiecare linie, cu comentarii lângă fiecare valoare care descrie utilizarea setării. Aceste fișiere vor utiliza, de asemenea, același delimitator de comentarii pentru notele lor pentru a activa sau a dezactiva setările individuale. De obicei, delimitatorul utilizat este un punct și virgulă; sau semnul de număr #.
Dacă doriți să modificați setările serverului dvs. însuși, cum ar fi portul folosit, în ce dosar să se caute fișierele, numele său sau alte caracteristici conexe, căutați în fișierul httpd.conf. Din fișierul php.in puteți controla elemente precum modulele care sunt instalate și activate pentru sistemul dvs., cât de multe date sunt permise să consume și multe altele. În mod similar, fișierul dvs. de configurare MySQL determină ce port folosește, ce utilizator rulează pe serverul dvs., care sunt acreditările contului dvs. de administrator și multe altele.
Modificările aduse acestor fișiere necesită în mod normal să reporniți serverul dvs. web (în cazul nostru, pentru modificările Apache sau PHP), sau cel puțin serviciul pe care îl modificați (în cazul nostru, modificările MySQL). Acest lucru se poate face folosind panoul de control dacă utilizați un program combinat precum Wamp 2 sau utilizând instrumentele de service ale sistemului de operare sau utilizând comenzile de sistem la un prompt de comandă. Repornirea Wamp 2 într-un sistem de operare GUI, cum ar fi Windows, se poate face făcând clic dreapta pe pictograma Wamp. Pe un server Cent OS, același efect poate fi obținut prin tastarea „service httpd restart”. Dacă toate celelalte nu reușesc, puteți oricând să reporniți fizic mașina („bouncing”), dar acest lucru este ceva ce veți dori să evitați într-un sistem activ, deoarece va provoca o perioadă mult mai lungă de oprire.
Dacă utilizați pachete de instalare sau un program de instalare combo precum Wamp 2, probabil că veți folosi valorile inițiale fără a face modificări la aceste fișiere. Cu toate acestea, instalatorii binari nu vor ști unde sau cum să facă modificări la fișierele de configurare și va trebui să urmați instrucțiunile de editare manuală a acestor fișiere pentru a integra toate elementele dvs.
De ce aș folosi o altă combinație decât Linux, Apache, MySQL și PHP?
Având în vedere popularitatea acestei combinații specifice de patru aplicații (Linux, Apache, MySQL și PHP – LAMP), este ușor să înțelegem de ce a devenit pur și simplu sistemul. Cu toate acestea, nevoile și preferințele pot schimba motivul pentru care este selectată o anumită abordare. Poate că vă aflați într-un mediu Windows complet și vă simțiți mai confortabil cu un sistem de operare Windows. Poate că datele dvs. sunt deja disponibile într-un fișier plat sau în format XML și doriți o bază de date care să poată utiliza fișiere XML, cum ar fi MongoDB.
Sau, ați putea prefera abordarea și pachetele disponibile în Python decât cele găsite în PHP. Fiecare sistem are punctele sale forte și punctele slabe și ar trebui să fie ales pe baza nevoilor proiectului.
Sursa deschisă
În acest moment, ați întâlnit numeroase referințe la termeni cum ar fi gratuit, liber de editat și sursă deschisă în text. De fapt, toate elementele din exemplul nostru LAMP sunt soluții gratuite, în sursă deschisă. Sursă deschisă (open source) înseamnă că furnizorul software-ului permite utilizatorului final accesul la codul propriu-zis al software-ului său, permițând să se facă modificări oriunde în program.
Acest lucru diferă de software-ul tradițional în care dețineți o copie sau o licență pentru a utiliza programul, dar nu puteți extinde sau modifica elemente ale programului dincolo de ceea ce permite dezvoltatorul. Un executabil în Windows, de exemplu, este sursa închisă. Nu puteți deschide executabilul pentru a citi codul sau pentru a face modificări. Dacă doriți să schimbați programul, dezvoltatorul ar trebui să vă furnizeze fișierele folosite pentru a-l crea (numit cod sursă), astfel încât să puteți face modificări și să compilați propriul program executabil modificat.
Open source crește în popularitate, dar conceptul există de ceva timp. Recent, guvernele mai mari au început să adopte soluții gratuite, open source, ca mijloc de a reduce costurile și de a realiza modificări care personalizează programele pentru a se potrivi nevoilor lor. Istoric open source a fost privit ca un risc de securitate, deoarece oricine ar putea trimite modificări la proiect și s-a temut că vor fi inserate vulnerabilități sau coduri rău intenționate. De fapt, cu atât de mulți utilizatori capabili să vizualizeze și să modifice fișierele, acesta i-a făcut pe cei rău intenționați să fie mai puțin capabili să-și ascundă modificările (uneori numită abordarea „multor ochi” a fiabilității). Timpul de dezvoltare a fost, de asemenea, redus, deoarece comunitatea de dezvoltatori dintr-un proiect popular open source poate depăși cu mult cea a unei soluții în sursă închisă cu personal de dezvoltare limitat.
Un acronim popular care se referă la aceste proiecte este FOSS (Free, Open Source Software). Deoarece nu toate programele open source sunt gratuite în ceea ce privește achiziționarea sau acordarea de licențe, FOSS indică soluții care nu conțin costuri, dar și care pot fi schimbate. Aceste soluții pot fi dezvoltate în întregime de o comunitate de voluntari sau pot proveni de la o companie comercială cu dezvoltatori dedicați proiectului. Deși este ciudat să ne gândim la o companie care își oferă gratuit creația, aceste companii generează venituri prin încorporarea publicității în software-ul lor sau prin oferirea de servicii premium precum asistență pentru produse sau contractarea cu clienții pentru a personaliza produsul. Multe companii vor oferi, de asemenea, doar câteva instrumente ca sursă deschisă alături de alte produse pe care le vând sau vor oferi un model „freemium” în care platforma open source conține majoritatea caracteristicilor software-ului lor. Aici, caracteristicile sau suplimentele dincolo de pachetul open source implică licențe și costuri suplimentare.
FTP
Deși nu este inclus în acronimele LAMP, un alt element important de remarcat este existența unui server de protocol de transfer de fișiere (FTP). Deoarece, de obicei, veți dori să efectuați activități de dezvoltare pe serverul privat înainte de a edita serverul live, veți avea nevoie de un mecanism care vă permite să mutați fișiere între cele două. FTP este conceput pentru a muta fișiere între sisteme, permițându-vă să sincronizați articole când sunteți gata. În plus pe lângă un server FTP, veți dori, de asemenea, o aplicație client FTP pentru mașina care conține fișierele pe care doriți să le mutați. Clientul vă permite să vedeți fișiere în ambele locații și să interacționați cu acestea pentru a determina ce fișier este mutat pe ce mașină. Există o serie de programe gratuite de transfer de fișiere disponibile, dintre care unele pot fi chiar integrate în browsere precum Chrome utilizând extensii de browser.
Sursa: Michael Mendez, The Missing Link – An Introduction to Web Development and Programming (CC BY-NC-SA 3.0 License), Published by Open SUNY Textbooks, Milne Library (IITG PI), State University of New York at Geneseo. Traducere și adaptare independente: Nicolae Sfetcu
Lasă un răspuns