Stiva de lămpi este o descriere a componentelor sale. Imagini dedicate Cloud VDS pentru implementarea rapidă a serverelor LAMP

Prin stivă de aplicații web, înțelegem un set de produse software open source: un sistem de operare, un server web, un server de baze de date și un mediu de cod executabil. Cel mai faimos și comun stivă este LAMP. Este un acronim pentru o stivă de aplicații web gratuită și open source.

LAMPĂ- un acronim care desemnează un set (complex) de software de server utilizat pe scară largă pe World Wide Web. LAMPĂ este numită după primele litere ale componentelor sale:

· L inux - sistem de operare Linux

;

· A pache- server web;

· M ariaDB / M ySQL - SGBD;

· P HP este un limbaj de programare folosit pentru a crea aplicații web (pe lângă PHP, pot fi incluse și alte limbaje precum Perl și Python).

Acronimul LAMP poate fi folosit pentru a se referi la:

1. Infrastructuri Web Server

2. Paradigma de programare

3. Pachetul software

Deși inițial aceste produse software nu au fost concepute special pentru a funcționa între ele, un astfel de pachet a devenit foarte popular datorită flexibilității, performanței și costului redus (toate componentele sale sunt open source și pot fi descărcate gratuit de pe Internet). Suita LAMP este inclusă cu majoritatea distribuțiilor Linux și este furnizată de multe companii de găzduire.

Linux asigură recepția/transmiterea solicitărilor (controlează hardware-ul) și este nucleul pentru tot ceea ce este mai sus - serverul, DBMS-ul, suportul pentru limbaj.

Instalare pe Ubuntu

Trebuie să instalați următoarele pachete:

După ce rulați apt-get update pentru a vă actualiza lista locală de pachete, veți putea instala acele pachete cu o singură comandă apt-get install:

După ce rulați comanda de mai sus, vi se va solicita să instalați aceste pachete și alte dependențe. Apăsați „y” urmat de ENTER pentru a continua și urmați restul instrucțiunilor pentru a seta o parolă administrativă pentru MySQL.

Acest lucru vă va permite să instalați setul minim de extensii PHP necesare pentru a utiliza PHP cu MySQL.



Caracteristici și beneficii ale sistemului de operare Linux

Liber.

Fiabilitate. Funcționarea corectă a hardware-ului computerului dvs. va permite Linux să funcționeze ani de zile fără repornire și înghețare. Și butonul de resetare nu va fi deloc necesar.

Securitate. Linux este practic lipsit de viruși. Însăși construcția sistemului de operare exclude funcționarea programelor rău intenționate.

Sursa deschisa. Acest lucru face posibilă utilizarea și modificarea codului după cum doriți.

Principalele avantaje ale Apache sunt fiabilitatea și flexibilitatea configurației. Vă permite să conectați module externe pentru a furniza date, utilizați SGBD pentru autentificare utilizatori, modificarea mesajelor de eroare etc.

Flexibilitatea SGBD-ului MySQL este asigurată de suportul unui număr mare de tipuri de tabele: utilizatorii pot alege ambele tipuri de tabele MyISAM, care acceptă căutarea în text complet și tabele InnoDB, care suportă tranzacții la nivel de înregistrare individuală. Mai mult, MySQL vine cu un tip special de tabel EXEMPLU care demonstrează cum se creează noi tipuri de tabele. Datorită arhitecturii sale deschise și licențelor GPL, noi tipuri de tabele sunt adăugate constant în baza de date MySQL.

php- limbaj de scripting scop general, utilizat intens pentru dezvoltarea de aplicații web. Susținut în prezent de marea majoritate furnizorii de hostingși este unul dintre liderii dintre limbile folosite pentru a crea site-uri web dinamice .

3. Aplicație web. Model de design Model-View-Controller.

Un model de design este o construcție arhitecturală care este o soluție la o problemă de proiectare într-un context care apare frecvent. În mod tradițional, OOP arată relațiile și interacțiunile dintre clase sau obiecte, fără a specifica ce clase finale sau obiectele aplicației vor fi utilizate.

Model-View-Controller. Modelul de proiectare MVC separă datele aplicației, interfața cu utilizatorul și logica de control în trei componente separate - Model, View și Controller - astfel încât fiecare componentă să poată fi modificată independent. Acest model a fost folosit pentru prima dată într-un cadru dezvoltat pentru limbajul Smalltalk la sfârșitul anilor 1970. De atunci, a jucat un rol fundamental în majoritatea cadrelor UI. A schimbat fundamental modul în care privim designul aplicației.

Un model este o reflectare a realității, luând în considerare proprietățile necesare pentru rezolvarea problemei. Modelul include logica pentru rezolvarea sarcinii principale (logica de afaceri):

●salvarea, ștergerea, actualizarea datelor aplicației (CRUD sau servicii web externe);

●încapsularea întregii logici a aplicației (este necesar să se evite controlerele „groase”, adică nu puteți pune o parte din logica de business într-un controler sau vizualizare).

CRUD - Creați, citiți, actualizați, ștergeți.

Model Descrie datele și gestionarea acestora și este adesea menționat ca logica de afaceri a unui program de aplicație, de exemplu. chiar miezul ei. Vizualizare Descrie ceea ce vede utilizatorul și cu care interacționează în aplicație. Controller Servește ca intermediar între model și vedere.
Mecanismul principal care implementează partea View a șablonului (dar nu identic!) Este motorul de șabloane (Template Engine).

Interacțiunea elementelor MVC

Fiecare element din modelul MVC comunică cu restul în moduri foarte specifice. Comunicarea este implementată printr-o secvență de evenimente care sunt de obicei declanșate de interacțiunea utilizatorului cu aplicația. Secvența evenimentelor arată astfel:

  1. Utilizatorul interacționează cu un element de interfață (de exemplu, face clic pe un buton dintr-o vizualizare).
  2. Vizualizarea trimite un eveniment de clic către Controler pentru a decide cum să gestioneze clicul.
  3. Controlerul schimbă modelul în funcție de ceea ce decide cu privire la apăsarea butonului.
  4. Modelul informează Vederea că starea Modelului s-a schimbat.
  5. Vizualizarea citește informațiile de stare din Model și se schimbă.

4. Aplicație web. motor de șablon.

Un motor de șabloane (pe web) este un software care vă permite să utilizați șabloane html pentru a genera pagini html finale. Scopul principal al folosirii motoarelor de șablon este de a separa prezentarea datelor de codul executabil. Adesea, acest lucru este necesar pentru a asigura posibilitatea de lucru paralel a programatorului și a designerului de layout. Utilizarea motoarelor de șabloane îmbunătățește adesea lizibilitatea codului și modificările aspectului atunci când întregul proiect este realizat de o singură persoană.

Utilizarea motoarelor de șablon este adesea identificată cu paradigma MVC. Aceste concepte sunt legate, dar nu identice.

Esența șablonului este separarea cadrului paginii de codul programului. Cadrul paginii este plasat într-un fișier text separat (șablon), iar pseudovariabilele speciale sunt plasate în locurile în care este necesară afișarea datelor. Scriptul încarcă șablonul necesar, înlocuiește pseudovariabilele din acesta cu datele corespunzătoare și scoate.

Avantajele utilizării șabloanelor la generarea codului de pagină HTML:

· În primul rând, curățenia codului. Codul programului nu conține cod HTML, deci este ușor de citit. În același timp, șablonul conține doar cod HTML, care arată unde și ce date sunt inserate (pentru aceasta, să dăm nume semnificative pseudo-variabilelor).

· În al doilea rând, separarea programului și a codului HTML permite dezvoltarea independentă a motorului și a designului. Pentru a schimba ceva în aspectul site-ului finit, este suficient să faceți modificări șablonului corespunzător și nu trebuie să aveți abilități de programare.

· Site-ul poate avea mai multe modele. Pentru a schimba complet designul site-ului, schimbați pur și simplu calea către folderul șabloane.

Avantaje:

· Separarea completă a ieșirii de logica aplicației;

· Modul Sandbox;

· Aspectul îngrijit al blocurilor logice sau al instrucțiunilor de ieșire;

Portabilitatea între platforme (limbi) - i.e. parserul de șablon poate fi scris în orice;

Limbajul șablonului este de înțeles pentru designerul de aspect;

Despre virtuți

Având în vedere problema separării logicii aplicației de ieșire, putem spune că separarea logicii de ieșire se aplică în dezvoltare web-aplicații în cea mai mare parte numai atunci când utilizați modelul MVC. Vedeți singuri, toate exemplele de utilizare a separării șablonului și a logicii sunt afișate în context MVC.

Nu putem decât să fii de acord că este într-adevăr convenabil să folosești construcțiile logicii interne izolate a șablonului, indiferent de platformă ( php, ROR, java), care va analiza aceste șabloane și le va completa cu date și le va afișa utilizatorului. În plus, acest lucru asigură că dezvoltatorii nu utilizează logica aplicației sau chiar interogări SQL în șablon.

Modul sandbox este util atunci când trebuie să oferi utilizatorului, editorului de șabloane, opțiuni limitate de sintaxă. De exemplu, acest lucru este valabil pentru un serviciu de blog, în care utilizatorii postează în mod independent materiale folosind markup html și construcțiile specifice ale serviciului utilizat.

5. Aplicație web. Baze de date relaționale.

O bază de date relațională este o colecție de tabele interconectate, fiecare dintre ele conține informații despre obiecte de un anumit tip. Un rând de tabel conține date despre un obiect (de exemplu, un produs, un client), iar coloanele tabelului descriu diferitele caracteristici ale acestor obiecte - atribute (de exemplu, numele, codul produsului, informații despre client). Înregistrările, adică rândurile de tabel, au aceeași structură - sunt compuse din câmpuri care stochează atributele obiectului. Fiecare câmp, adică coloană, descrie o singură caracteristică a obiectului și are un tip de date strict definit. Toate înregistrările au aceleași câmpuri, doar că afișează proprietăți informaționale diferite ale obiectului.

Într-o bază de date relațională, fiecare tabel trebuie să aibă o cheie primară, un câmp sau o combinație de câmpuri care identifică în mod unic fiecare rând din tabel. Dacă cheia constă din mai multe câmpuri, se numește compozită. Cheia trebuie să fie unică și să identifice în mod unic intrarea. O singură intrare poate fi găsită după valoarea cheii. Cheile sunt, de asemenea, folosite pentru a organiza informațiile din baza de date.

Tabelele bazelor de date relaționale trebuie să îndeplinească cerințele normalizării relaționale. Normalizarea relațiilor este un aparat formal de restricții privind formarea tabelelor, care vă permite să eliminați dublarea, asigură consistența celor stocate în baza de date și reduce costurile cu forța de muncă pentru întreținerea bazei de date.

Să fie creat tabelul Student care să conțină următoarele câmpuri: numărul grupului, numele complet, numărul de înregistrare, data nașterii, numele specialității, numele facultății. O astfel de organizare a stocării informațiilor va avea o serie de dezavantaje:

duplicarea informațiilor (numele specialității și al facultății se repetă pentru fiecare student), prin urmare, volumul bazei de date va crește;

· procedura de actualizare a informațiilor din tabel este îngreunată de necesitatea de a edita fiecare înregistrare a tabelului.

Normalizarea tabelului este concepută pentru a rezolva aceste deficiențe. Disponibil trei forme normale de relaţii.

Prima formă normală. Un tabel relațional este redus la prima formă normală dacă și numai dacă niciunul dintre rândurile sale nu conține mai mult de o valoare în niciunul dintre câmpurile sale și niciunul dintre câmpurile sale cheie nu este gol. Deci, dacă doriți să obțineți informații din tabelul Student după numele studentului, atunci câmpul Nume complet ar trebui să fie împărțit în părțile Nume, Prenume, Patronimic.

A doua formă normală. Un tabel relațional este definit în a doua formă normală dacă îndeplinește cerințele primei forme normale și toate câmpurile sale care nu sunt incluse în cheia primară sunt complet dependente funcțional de cheia primară. Pentru a aduce tabelul la a doua formă normală, este necesar să se determine dependența funcțională a câmpurilor. Dependența funcțională a câmpurilor este o dependență în care o singură valoare a atributului descriptiv corespunde unei anumite valori a atributului cheie în instanța obiectului informațional.

A treia formă normală. Un tabel este în a treia formă normală dacă îndeplinește cerințele celei de-a doua forme normale și niciunul dintre câmpurile sale non-cheie nu este dependent funcțional de alte câmpuri non-cheie. De exemplu, în tabelul Student (Nr. grup, Nume complet, Nr. caiet de note, Data nașterii, Director), trei câmpuri - Nr. caiet de note, Nr. grup, Director sunt în dependență tranzitivă. Numărul grupului depinde de numărul cărții de înregistrare, iar șeful depinde de numărul grupului. Pentru a elimina dependența tranzitivă, este necesar să transferați unele dintre câmpurile tabelului Student într-un alt tabel Grup. Tabelele vor avea următoarea formă: Student (nr. grup, nume complet, nr. caietul de note, data nașterii), grup (nr. grup, director).

Următoarele operații sunt posibile cu tabelele relaționale:

· Îmbinarea tabelelor cu aceeași structură. Rezultatul este un tabel comun: mai întâi primul, apoi al doilea (concatenare).

· Intersectia tabelelor cu aceeasi structura. Rezultat - sunt selectate acele înregistrări care se află în ambele tabele.

· Scăderea tabelelor cu aceeași structură. Rezultat - sunt selectate acele înregistrări care nu sunt în subtraend.

· Probă (subset orizontal). Rezultat - sunt selectate înregistrările care îndeplinesc anumite condiții.

· Proiecție (subset vertical). Rezultatul este o relație care conține unele dintre câmpurile din tabelele sursă.

· Produsul cartezian al două tabele Intrările din tabelul rezultat sunt obținute prin concatenarea fiecărei intrări din primul tabel cu fiecare intrare din celălalt tabel.

Tabelele relaționale pot fi legate între ele, astfel încât datele pot fi preluate din mai multe tabele în același timp. Tabelele sunt legate între ele pentru a reduce în cele din urmă dimensiunea bazei de date. Relația fiecărei perechi de tabele este furnizată dacă au aceleași coloane.

Există următoarele tipuri de legături de informații:

· unu la unu;

unu-la-multi

multi-la-multi.

aplicatie web. NoSQL.

Unul dintre semnificațiile termenului „NoSQL” este îndepărtarea de modelul relațional în favoarea unor modele de date mai specifice (sau mai generale). De exemplu, sistemele NoSQL de succes în mod tradițional sunt sisteme de stocare perechi cheie-valoare, cum ar fi Redis sau Memcache. Modelul lor de date este extrem de simplu - este în esență o matrice asociativă, unde cheile sunt de tip șir, iar valorile pot conține orice date. Ca orice matrice asociativă, astfel de sisteme acceptă un set limitat de operațiuni de date - citiți valoarea după cheie, setați valoarea cheii, eliminați cheia și valoarea asociată acesteia. Este posibil ca operațiunea „obține lista de chei” să nu fie acceptată pe astfel de sisteme.

Un alt exemplu de sisteme NoSQL de succes sunt depozitele de documente. Obiectele din astfel de depozite sunt de obicei matrice asociative ale unei structuri libere, adică aceeași „tabelă” poate stoca în esență obiecte diferite. Exemple de sisteme din această clasă sunt MongoDB și Cassandra. În funcție de ce date sunt de fapt stocate într-o anumită bază de date, performanța acesteia poate varia foarte mult. De exemplu, dacă optimizați un astfel de „tabel” stocând în el obiecte de același tip.

Un al treilea exemplu de sisteme NoSQL specializate sunt bazele de date grafice. Ele sunt special adaptate pentru procesarea unei structuri de date specifice și, de obicei, pentru a lucra cu o cantitate mare de date (deoarece implementarea relațională standard poate funcționa bine pe cantități mici).

Un exemplu foarte important de sisteme NoSQL sunt sistemele de fișiere obișnuite precum Ext4 sau NTFS. Sunt concepute pentru a stoca obiecte într-o structură ierarhică cu conținut liber. Bazele de date în sine, relaționale și NoSQL, folosesc de obicei sisteme de fișiere pentru a-și stoca conținutul și, uneori, interacțiunea dintre aceste două subsisteme devine importantă într-un caz sau altul.

7. Aplicație web. Capabilitati JavaScript.

JavaScript este un limbaj de programare interpretat cu capabilități orientate pe obiecte.

Oportunități

Codul sursă în acest limbaj poate fi rulat nu numai în browser, ci și pe partea serverului sau din linia de comandă, dar vom lua în considerare utilizarea JavaScript pentru pagini web. JavaScript modern este un limbaj de programare de uz general „sigur”. Nu oferă mijloace de nivel scăzut de lucru cu memoria, procesorul, deoarece inițial a fost destinat browserelor care nu o necesită.

În ceea ce privește restul caracteristicilor, acestea depind de mediul în care rulează JavaScript. În browser, JavaScript poate face tot ce are legătură cu manipularea paginii, interacțiunea cu vizitatorul și, într-o oarecare măsură, cu serverul:

· Adăugați diverse efecte de animație

Răspundeți la evenimente - gestionați mișcările mouse-ului, apăsările de la tastatură

· Validați introducerea datelor în câmpurile de formular înainte de a trimite către server, ceea ce, la rândul său, elimină încărcarea suplimentară de pe server

Creați și citiți cookie-uri, extrageți date despre computerul vizitatorului

Detectați browserul și, în funcție de browser, încărcați pagina dorită, special concepută pentru acest browser

Schimbați conținutul elementelor HTML, adăugați noi etichete, schimbați stilurile

Restricții

· JavaScript nu poate închide ferestrele și filele care nu au fost deschise cu acesta

Nu se poate proteja codul sursă al paginii și împiedică copierea textului sau a imaginilor de pe pagină

· Nu pot face solicitări între domenii, accesați pagini web situate pe un alt domeniu. Chiar și atunci când pagini din domenii diferite sunt afișate în același timp în diferite file ale browserului, codul JavaScript aparținând unui domeniu nu va avea acces la informații despre o pagină web dintr-un alt domeniu. Acest lucru garantează securitatea informațiilor private care pot fi cunoscute de proprietarul domeniului a cărui pagină este deschisă în fila următoare

· Nu are acces la fișierele aflate pe computerul utilizatorului și acces în afara paginii web în sine, singura excepție o reprezintă cookie-urile, care sunt fișiere text mici pe care JavaScript le poate scrie și citi.

În general, putem spune că este proiectat în așa fel încât să îngreuneze executarea codului rău intenționat.

8. Aplicație web. Mediul de execuție. Instalare și configurare server web.

Serverul Apache - un server web multiplatform, este de departe cel mai comun, deoarece. instalat pe majoritatea găzduirilor și este mai ușor de configurat decât, de exemplu, un server web nginx.

De asemenea, serverul Apache vine în versiuni precum denwer și xampp, deci php apache este o versiune foarte populară. Instalarea apache windows, linux link-uri de mai jos:

· instalare apache linux

· Instalarea apache windows

Cum functioneazã server Apache:

· Acceptă ciclic cereri

· Gestionează cererile

· generează conținut

Oferă conținut utilizatorului

Apache web are un mecanism de gazdă virtuală care vă permite să distribuiți mai multe nume de domenii la o singură adresă IP. Fiecare nume de domeniu poate avea propriile setări, setările apache se fac în fișierul .htaccess, care trebuie plasat în directorul rădăcină al site-ului dumneavoastră.

Portul implicit Apache este 80. Pot exista probleme cu unele programe, în special cu Skype. Pentru a rezolva problema, trebuie să dezactivați utilizarea portului 80 în Skype. Dacă portul apache folosit 80 este ocupat, atunci puteți modifica această valoare în setările serverului web.

Pe apache, un site cu o mulțime de imagini statice (imagini) este mai lent decât un site pe nginx. Uneori, un astfel de pachet este considerat server apache + nginx, nginx este folosit pentru a returna statice.

Pentru programarea php trebuie să instalați următoarele componente:

· apache sau alt server web;

mysql (+ phpmyadmin pentru lucrul cu mysql printr-o interfață web).

Există două opțiuni pentru instalarea acestor componente:

instalarea unui pachet gata făcut (xampp, denwer etc.)

Instalarea tuturor pachetelor individual

În primul caz, totul este foarte simplu, descărcați pachetul și instalați. Dar cu o instalare manuală, nu vor fi probleme cu actualizarea versiunilor, deoarece. veți ști deja cum funcționează și cum este instalat. De asemenea, sunt mai puține șanse să aveți probleme cu pachetele.

Instalare manuala:

descarca si instaleaza apache pe legătură

descărcați și instalați mysql referinţă

ca un add-on poate fi instalat phpmyadmin, pentru a lucra cu mysql prin interfața web

După instalare, precum și după efectuarea oricăror modificări, trebuie să reporniți apache. Accesați „start - management - administrare - servicii” și găsiți Apache acolo, faceți clic dreapta și selectați restart în meniul contextual.

Pentru a funcționa, trebuie să adăugați o gazdă virtuală, puteți citi cum să faceți acest lucru Aici.

Timp de rulare

Programul eTBManager este o aplicație server JBOSS care funcționează cu date gestionate de un server de baze de date MySQL. Utilizatorii lucrează cu programul dintr-un browser Web (IE, FireFox, Crhome etc.).

Programul este instalat pe un server fizic (calculator). Sistem de operare Windows 2008 Server cu toate SP instalate.

Pentru a asigura funcționarea programului, instalați și configurați software-ul pe server în următoarea ordine:

1. Baza de date

1. Server de gestionare a bazelor de date MySQL.

2. baza de date eTBManager.

2. Aplicare

1. Server de aplicații JBOSS Java pentru rularea programului eTBManager.

2. software-ul eTBManager.

3. Server web

1. Apache HTTPD pentru primirea și procesarea cererilor web de la utilizatori.

2. Conector Mod_jk pentru a oferi interacțiune între Apache HTTPD și JBOSS.

Tot ce aveți nevoie pentru a instala programul, inclusiv cea mai recentă versiune a software-ului și o bază de date de antrenament, poate fi obținut de la adresa ftp:.ua acces anonim. Deoarece se utilizează software gratuit, cele mai recente versiuni ale acestuia pot fi obținute de pe site-urile web ale producătorului. Cele mai recente versiuni conțin remedieri de erori și pot fi mai stabile, dar nu au fost testate pentru compatibilitate de către noi.

9. Dezvoltarea de tehnologii web. Web 1.0, Web 2.0.

Web 1.0 a fost prima generație a World Wide Web folosind protocoalele Internet TPC/IP. Dacă în era pre-Internet, s-a realizat doar o conexiune liniară punct la punct, atunci odată cu apariția Web-ului (Web de informații), s-a format o morfologie de rețea care permite utilizatorului să „navigheze” liber prin informații. spații, primind orice informație acumulată în resursele rețelei Web 1.0.

Această perioadă de dezvoltare a Web-ului se caracterizează prin crearea de site-uri statice cu link-uri hipertext HTML, transferul pasiv de informații de la servere la client și natura unidirecțională a fluxurilor de informații:

· fluxul de colectare manuală a informațiilor de la creatorii de resurse către server;

· fluxul de distribuție pasivă a informațiilor de la server către clienți.

Aceasta este perioada de apariție și dezvoltare rapidă a bibliotecilor electronice, a cataloagelor de informații pe Internet.

Web 2.0 este un web de „sintaxă” interactiv, când resursele sistemelor de dialog – utilizator, client – ​​server au devenit larg răspândite.

Este un Web orientat spre servicii, care a dezvoltat un proces de informare interactiv între utilizator și server, motoarele de căutare și comerțul electronic.

Generarea fluxului de informații a fost dat în mâinile utilizatorilor înșiși, iar proprietarii site-ului s-au limitat în principal la crearea și întreținerea infrastructurii.

Sisteme de recuperare a informațiilor - hiper-serverele, roboții și interfețele lor cu utilizatorul au devenit nucleul Web-ului. Algoritmii lor de căutare, sortare, clasare și interfață s-au bazat pe analiza în frecvență a informațiilor. Roboții motoarelor de căutare sunt cercetători activi și moderatori pasivi ai rețelei datorită indexării primare a informațiilor.

10. Dezvoltarea de tehnologii web. Web 3.0, web semantic.

Web 3.0 este Web-ul Semantic - „parte a conceptului global de dezvoltare a Internetului, al cărui scop este realizarea posibilității de prelucrare automată a informațiilor disponibile pe World Wide Web. Accentul principal al conceptului este pe lucrul cu metadate care caracterizează fără ambiguitate proprietățile și conținutul resurselor World Wide Web, în ​​locul analizei documentelor textuale utilizate în prezent.” Adică, este un fel de rețea pe Web care conține metadate despre resursele World Wide Web și există în paralel cu acestea. Bazat pe procese automate de informare între servere.

Acest lucru devine posibil datorită introducerii instrumentelor semantice: de la marcarea semantică a textului resursei până la algoritmi inteligenți care înțeleg sensul frazelor umane.

Computingul de rețea, „cloud” a apărut, preluând controlul asupra resurselor de informații private din interiorul hiper-serverelor Web.

Tehnologiile de realizare a aplicațiilor web au devenit atât de sofisticate încât ștacheta utilizatorilor și creatorilor de resurse informaționale a coborât aproape la zero, fără a le cere să aibă cunoștințe în domeniul tehnologiei informației.

Tehnologiile de rețea în sine se ridică la nivelul aplicațiilor on-line de rețea care funcționează automat: interfețe de creare a resurselor, traducători semantici, schimbători de știri, analizatori de căutare și constructori automati de baze de informații țintă.

Pe lângă interfețele interne inter-server, apar și interfețele non-umane cu lumea fizică: colectarea automată a informațiilor multimedia, analiza robot-program a informațiilor din lumea exterioară, absorbția acestor informații de către hiper-servere ale Web-ului. Roboții trec în stadiul de moderare activă a conținutului, cenzori care determină ce poate fi publicat în Web 3.0 și ce nu..

11. Dezvoltarea de tehnologii web. Servicii web.

Serviciu web, serviciu web (serviciu web în engleză) - un sistem software identificat printr-o adresă web cu interfețe standardizate. Serviciile web pot comunica între ele și cu aplicații terțe prin mesaje bazate pe anumite protocoale (SOAP, XML-RPC, REST etc.). Un serviciu web este unitatea de modularitate atunci când se utilizează o arhitectură de aplicație orientată spre servicii.

În viața de zi cu zi, serviciile web se numesc servicii furnizate pe Internet. În această utilizare, termenul trebuie clarificat dacă se referă la căutare, poștă web, stocare documente, fișiere, marcaje etc. Aceste servicii web pot fi utilizate indiferent de computer, browser sau punct de acces la Internet.

REST (Transferul de stat reprezentativ) este un stil de arhitectură software pentru sisteme distribuite, cum ar fi World Wide Web, care este de obicei folosit pentru a construi servicii web. Termenul REST a fost inventat în 2000 de Roy Fielding, unul dintre autorii protocolului HTTP. Sistemele care acceptă REST sunt numite sisteme RESTful.

În general, REST este o interfață de gestionare a informațiilor foarte simplă, fără utilizarea unor straturi interne suplimentare. Fiecare informație este identificată în mod unic printr-un identificator global, cum ar fi o adresă URL. Fiecare URL la rândul său are un format strict definit.

Utilizarea REST pentru a construi servicii web.

După cum știți, un serviciu web este o aplicație care rulează pe World Wide Web și la care accesul este asigurat prin protocolul HTTP, iar informațiile sunt schimbate folosind formatul XML. Prin urmare, formatul datelor transmise în corpul cererii va fi întotdeauna XML.

Pentru fiecare unitate de informație (info) sunt definite 5 acțiuni. Și anume:

Obtine informatii/ (Index)- Obține o listă cu toate obiectele.

GET /info/(id) (Vedere)- primește informații complete despre obiect.

PUT /info/ sau POST /info/ (Crea)- creează un obiect nou.

ȘTERGE /info/(id) (Șterge)– șterge datele cu un identificator (id).
După cum puteți vedea, arhitectura REST este foarte ușor de utilizat. După tipul cererii primite, puteți determina imediat ce face fără a înțelege formatele (spre deosebire de SOAP, XML-RPC). Datele sunt transferate fără utilizarea unor straturi suplimentare, astfel încât REST este considerat mai puțin consumator de resurse, deoarece nu este necesar să analizați cererea pentru a înțelege ce ar trebui să facă și nu este nevoie să traduceți datele dintr-un format în altul.

12. Protocolul HTTP. Structura unui document hipertext. Standarde de bază.

HTTP este un protocol de transfer de date utilizat pe scară largă, destinat inițial transferului de documente hipertext (adică documente care pot conține legături care vă permit să navigați către alte documente).

Protocolul HTTP presupune utilizarea unei structuri de transfer de date client-server. Aplicația client formează o cerere și o trimite către server, după care software-ul serverului procesează această solicitare, generează un răspuns și îl trimite înapoi clientului. După aceea, aplicația client poate continua să trimită alte solicitări, care vor fi procesate în același mod.

Structura unui document hipertext.

Sub document hipertextînțelegerea textului care conține elemente speciale, la accesare, se face o trecere la un alt document. Aceste elemente sunt numite hyperlinkuriși poate fi realizat sub forma unui fragment de text, un buton, o imagine și altele asemenea. Linkurile pot fi, de asemenea, folosite pentru a naviga la diferite secțiuni ale aceluiași document (în acest caz, linkul este numit ancoră sau ancoră).

Să începem cu structura documentului HTML. Într-o formă simplă, se poate scrie după cum urmează:







Salvăm documentul sub numele index.html și îl deschidem în browser. Ce vedem? Nimic - pagină goală. Să analizăm acest exemplu și să începem să-l completăm.

Elementele HTML sunt etichete. Etichetele sunt cuvinte cheie cuprinse între paranteze unghiulare. Etichetele pot fi simple (de exemplu, o bară orizontală


) sau în perechi. În al doilea caz, elementul constă dintr-o etichetă de deschidere (de exemplu, ) și eticheta de închidere (). Efectul elementului se extinde în zona dintre eticheta de deschidere și de închidere.

Întregul document hipertext este conținut într-un element html (adică între și). Acest element conține încă două elemente - titlul documentului (elementul head), care conține informații de serviciu despre document și corpul documentului (elementul ), care conține informațiile afișate în fereastra browserului.

Structura de mai sus este suficientă pentru a crea documente HTML simple pentru uz personal, dar nu respectă standardul. Principala greșeală este că nu este specificat în ce standard este prezentat documentul. Standardul este scris în prima linie înainte de etichetă . Să vedem care sunt principalele standarde.

Pentru HTML 4.01

Pentru XHTML 1.0

Pentru XHTML 1.1

Strict, Tranzițional, Set de cadre - înseamnă strict (aspectul nu trebuie să conțină abateri de la standard), specificație de tranziție (erorile sunt ignorate, pentru manechine) și pentru site-uri care folosesc cadre (mai există așa ceva?). Specificarea tipului de document ține seama de majuscule și minuscule, așa că cel mai bine este să îl copiați din exemplele date aici pentru a evita erorile.

Există și alte standarde, pentru a crea un șablon, ne vom concentra pe primul din listă (putem modifica cu ușurință șablonul pentru tipul nostru de document).

Să trecem la secțiunea de titlu. Specifică titlul paginii (elementul titlului), datele META și alte informații de serviciu. Aici ne vom concentra doar pe titlu, vom lua în considerare restul elementelor din subiectele relevante (vom nota doar două elemente responsabile de codificare și CSS).

Adăugați o linie în interiorul elementului cap Structura documentuluiși deschideți pagina într-un browser. În linia de sus a browserului, vedem ceea ce am specificat în interiorul elementului titlu. În plus, aceste informații sunt folosite de browser pentru a identifica legăturile atunci când marcați o pagină.

Pentru afișarea corectă a paginii, trebuie să precizăm în ce codificare este scris documentul nostru. Pentru a face acest lucru, adăugați linia

Aici specificăm codarea standard Windows Windows-1251. Desigur, nu este suficient să indicați acest lucru; este necesar ca documentul în sine să fie introdus în această codificare. De asemenea, standard este codarea utf-8 (unicode, acceptă setul de caractere extins).

Vom specifica, de asemenea, formatul pentru foile de stil în cascadă folosind linia

Corpul documentului (elementul corp) conține informații vizuale, de ex. cel care va fi afișat direct în fereastra browserului. Să adăugăm linia „Codul documentului conține structura corectă”.

Deci, versiunea strictă finală (pe care o putem folosi ca șablon pentru alte documente) este următoarea:

Structura documentului Codul documentului conține structura corectă

Ca rezultat, am primit un șablon de document pentru standardul ales.

HTML5: pentru toate documentele.

HTML 4.01: Sintaxă HTML strictă. Sintaxă HTML tranzițională. Cadrele sunt folosite într-un document HTML.

XHTML 1.0: Sintaxă XHTML strictă. Sintaxă XHTML de tranziție. Documentul este scris în XHTML și conține cadre. Profil mobil XHTML, adaugă elemente specifice pentru telefoanele mobile.

XHTML 1.1: Această definiție nu are împărțire în tipuri, sintaxa este aceeași și supusă unor reguli clare.

Element are scopul de a indica tipul documentului curent - DTD (definiție tip document, descriere tip document). Acest lucru este necesar pentru ca browserul să înțeleagă cum să interpreteze pagina web curentă, deoarece HTML există în mai multe versiuni și există XHTML (EXtensible HyperText Markup Language, Extended HyperText Markup Language), care este similar cu HTML, dar diferă ca sintaxă. Pentru ca browserul „să nu se încurce” și să înțeleagă în funcție de ce standard să afișeze o pagină web, este necesar să se stabilească în prima linie de cod .

Prin stivă de aplicații web, înțelegem un set de produse software open source: un sistem de operare, un server web, un server de baze de date și un mediu de cod executabil. Cel mai faimos și comun stivă este LAMP. Este un acronim pentru o stivă de aplicații web gratuită și open source.

LAMPĂ- un acronim care desemnează un set (complex) de software de server utilizat pe scară largă pe World Wide Web. LAMPĂ este numită după primele litere ale componentelor sale:

    L sistem de operare inux Linux;

    A pache-server web;

    M ariaDB/ M ySQL-DBMS;

    P Limbajul de programare HP folosit pentru a crea aplicații web (în plus față de PHP, pot fi incluse și alte limbaje precum Perl și Python).

Acronimul LAMP poate fi folosit pentru a se referi la:

    Infrastructuri Web Server

    Paradigma de programare

    Pachete software

Deși aceste produse software nu au fost concepute inițial special pentru a funcționa unele cu altele, un astfel de pachet a devenit foarte popular datorită flexibilității, performanței și costului redus (toate componentele sale sunt open source și pot fi descărcate gratuit de pe Internet). Suita LAMP este inclusă cu majoritatea distribuțiilor Linux și este furnizată de multe companii de găzduire.

Linux asigură recepția/transmiterea solicitărilor (controlează hardware-ul) și este nucleul pentru tot ceea ce este mai sus - serverul, DBMS-ul, suportul pentru limbaj.

Instalare pe Ubuntu

Trebuie să instalați următoarele pachete:

După ce rulați apt-get update pentru a vă actualiza lista locală de pachete, veți putea instala acele pachete cu o singură comandă apt-get install:

După ce rulați comanda de mai sus, vi se va solicita să instalați aceste pachete și alte dependențe. Apăsați „y” urmat de ENTER pentru a continua și urmați restul instrucțiunilor pentru a seta o parolă administrativă pentru MySQL.

Acest lucru vă va permite să instalați setul minim de extensii PHP necesare pentru a utiliza PHP cu MySQL.

Caracteristici și beneficii ale sistemului de operare Linux

Liber.

Fiabilitate. Funcționarea corectă a hardware-ului computerului dvs. va permite Linux să funcționeze ani de zile fără repornire și înghețare. Și butonul de resetare nu va fi deloc necesar.

Securitate. Linux este practic lipsit de viruși. Însăși construcția sistemului de operare exclude funcționarea programelor rău intenționate.

sursa deschisa. Acest lucru face posibilă utilizarea și modificarea codului după cum doriți.

Principalele avantaje ale Apache sunt fiabilitatea și flexibilitatea configurației. Vă permite să conectați module externe pentru a furniza date, utilizați SGBD pentru autentificare utilizatori, modificarea mesajelor de eroare etc.

Flexibilitatea SGBD-ului MySQL este asigurată de suportul unui număr mare de tipuri de tabele: utilizatorii pot alege ambele tipuri de tabele MyISAM, care acceptă căutarea în text complet și tabele InnoDB, care suportă tranzacții la nivel de înregistrare individuală. Mai mult, MySQL vine cu un tip special de tabel EXEMPLU care demonstrează cum se creează noi tipuri de tabele. Datorită arhitecturii sale deschise și licențelor GPL, noi tipuri de tabele sunt adăugate constant în baza de date MySQL.

PHP - limbaj de scripting scop general, utilizat intens pentru dezvoltarea de aplicații web. Susținut în prezent de marea majoritate furnizorii de hostingși este unul dintre liderii dintre limbile folosite pentru a crea site-uri web dinamice .

În acest articol, vom lua în considerare un set de software distribuit gratuit și practic gratuit numit LAMP. Cum este descifrată corect această abreviere? Este format din 4 tehnologii populare care se află în acest pachet:linux- sistem de operare;- server web;MySQL- SGBD; - un limbaj de programare folosit pentru a crea resurse web.

Acest set de software este instalat pe un server pentru a afișa site-uri web dinamice și aplicații web. Această platformă vă permite să instalați (desfășurați) majoritatea tipurilor de site-uri web și software de rețea pe serverul dvs.

Combinația LAMPĂ este:

  1. OS server Linux pentru a efectua sarcinile necesare;
  2. serverul web Apache, pentru care au fost create multe module suplimentare care rezolvă problema lucrului în comun a serverului web și a scripturilor scrise în diferite limbaje de programare;
  3. limbaj de scriptare dinamic pe partea de server PHP (sau Perl);
  4. SGBD MySQL, care demonstrează performanțe excelente de interogare SQL și este ideal pentru proiectele mici și mijlocii. MySQL rulează și este deosebit de ușor de utilizat.

De ce ai putea avea nevoie de LAMPĂ?

  • dacă aveți nevoie de un mediu pentru dezvoltarea web și testarea aplicațiilor care sunt scrise pentru LAMP. Aceasta este atât pentru propriile aplicații, cât și pentru orice CMS de care aveți nevoie. Puteți lucra pe Windows și pe Ubuntu;
  • dacă aveți nevoie să faceți un server web productiv pentru găzduirea proiectelor dvs. pe sau pe un server dedicat;
  • dacă aveți nevoie de un server pentru sistemele de control al versiunilor;
  • pentru auto-învățare administrare;
  • în scopuri economice, pentru a vă crea propriul server.

Cât de greu avantajul acestui ansamblu : Este excelent pentru implementarea rapidă a unei aplicații, datorită configurației sale simple, dar încă oferă puține caracteristici în ceea ce privește scalabilitatea și izolarea componentelor.

Printre dezavantajele unui astfel de ansamblu trebuie evidențiate următoarele:

Aplicația și baza de date folosesc aceleași resurse de server (CPU, memorie, I/O etc.), ceea ce dă performanțe slabe și îngreunează determinarea sursei (aplicația sau baza de date) a acestei probleme. Există, de asemenea, obstacole în implementarea scalarii orizontale.

Instalarea LAMP (Linux + Apache + MySQL + PHP/Perl/Python) este o opțiune destul de utilizată pentru configurarea serverelor cu Ubuntu. Există un număr mare de aplicații care sunt open source și sunt scrise folosind stiva de aplicații LAMP. Aplicațiile LAMP populare sunt enciclopediile wiki, sistemele de management al conținutului (CMS) și aplicațiile de management, cum ar fi phpMyAdmin.

Un avantaj important al LAMP este flexibilitatea în alegerea bazelor de date, serverelor web și limbajelor de scripting. Înlocuitorii actuali pentru MySQL sunt PostgreSQL și SQLite. Python, Perl și Ruby pot fi înlocuite cu PHP. Și Nginx, Cherokee și Lighttpd sunt alternative la Apache.

Taskel este folosit pentru a instala rapid LAMP. Tasksel este un instrument Debian/Ubuntu care instalează mai multe pachete dependente pe sistemul dumneavoastră ca o singură sarcină.

Dacă aveți nevoieconfigurați LAMP pe serverele noastre VPS contactați suportul nostru tehnic 24/7! Companie Hyper Host™ va ureaza o munca placuta!

Tehnologii susținute de găzduirea HyperHost mai detaliat.

9946 ori Vizualizat de 2 ori azi

Când vorbim despre Apache, MySQL și PHP, majoritatea administratorilor se referă la stiva LAMP, ceea ce înseamnă instalarea acestei suită de software pe una dintre numeroasele distribuții Linux. Cu toate acestea, FreeBSD poate fi mai potrivit în acest caz.

În acest articol, vă voi prezenta toți pașii pe care trebuie să-i faceți pentru a pune în funcțiune FreeBSD cu stiva (L)AMP și câteva instrumente de administrare pe un server bare-metal și pentru ca totul să funcționeze împreună fără blocări. sau situații neașteptate.

Pasul 1 Instalați FreeBSD

În primul rând, avem nevoie de sistemul de operare în sine. Accesați pagina oficială FreeBSD(www.freebsd.org), faceți clic pe linkul „Obțineți FreeBSD acum”, apoi selectați versiunea sistemului de operare (la momentul scrierii acestui articol, erau disponibile două versiuni: 8.2-RELEASE și 7.4-RELEASE), arhitectură (amd64 sau i386). ), faceți clic pe link și vedeți o listă de imagini disponibile. Există cinci dintre ele: bootonly - imagine bootabilă pentru instalare în rețea, disk1 - imagine ISO pentru inscripționare pe CD, dvd1 - imagine pentru inscripționare pe DVD, livefs - LiveCD fără interfață grafică, memstick pentru inscripționarea pe un stick USB. În cazul nostru, vor fi potrivite doar primul și al doilea, iar dacă nu există un server DHCP în rețea, atunci doar al doilea (nu are rost să descărcați imaginea DVD, deoarece CD-ul conține tot ce avem nevoie).

Deci, descărcați imaginea ISO, tăiați-o într-un gol, introduceți-o în unitatea serverului și resetați-o / porniți-o. Așteptăm să se încarce sistemul de operare. După ce descărcarea este finalizată, pe ecran ar trebui să apară fereastra de selecție a țării și meniul de instalare sysinstall, format din douăsprezece elemente. Ne interesează doar unul dintre ele: „Express”, vă permite să instalați sistemul de operare cât mai repede posibil, sărind peste multe mesaje de avertizare, întrebări și setări. Selectați-l, faceți clic .

Va apărea fereastra programului de partiţionare. Aici puteți fie să faceți clic pentru a folosi întregul disc sau pentru a crea o nouă secțiune în zona liberă. Totuși, rețineți că FreeBSD folosește o schemă de partiționare a discului pe două niveluri în care o singură partiție standard DOS (numită slice în terminologia FreeBSD) poate conține mai multe partiții BSD, așa că trebuie să creați o singură partiție în acest pas. Când ați terminat, apăsați pentru a ieși din program.

Următoarea fereastră: întrebare despre instalarea bootloader-ului, doar faceți clic pentru a instala bootloader-ul în MBR. Imediat după aceasta, va apărea o fereastră de marcare a partiției create anterior în partiții BSD. Puteți experimenta aici, dar aș recomanda doar să faceți clic astfel încât programul însuși să partiționeze discul. Faceți clic pe următorul pentru a confirma modificările.

Următoarea fereastră: selectați sursa de instalare. În mod implicit, CD/DVD este folosit ca sursă, așa că doar faceți clic . Confirmați alegerea apăsând în fereastra următoare. Acum va începe procesul de copiere a fișierelor, după care va fi afișat un mesaj care vă va cere să reveniți la meniul principal de instalare. Clic , Mai departe , "Da si . Sistemul de operare ar trebui să repornească. Nu uitați să scoateți discul de instalare din unitate, astfel încât sistemul de operare să pornească de pe hard disk.

După ce descărcarea este completă, introduceți numele de utilizator root și obțineți acces la interpretul de comenzi.

Pasul 2 Configurare

Tocmai am instalat FreeBSD, dar nu este încă gata să fie un server complet: rețeaua este oprită, root nu are parolă, există un singur utilizator pe sistem. Să reparăm asta. În primul rând, să setăm o parolă pentru utilizatorul root:

Pe ecran vor apărea întrebări, dintre care majoritatea pot rămâne fără răspuns (apăsați ), doar numele de utilizator, shell-ul implicit (mai bine să alegeți tcsh) și parola sunt importante. La sfârșit, comanda va afișa lista rezultată de setări ale utilizatorului, ca răspuns la care ar trebui să introduceți cuvântul „da”, iar ca răspuns la următoarea întrebare, introduceți „nu”.

Pentru ca utilizatorul să poată obține privilegii de root, să-l adăugăm la grupul de roți:

# pw groupmod wheel -m nume de utilizator

Să reparăm fișierul /etc/fstab, astfel încât nimeni să nu poată rula fișiere situate pe partițiile /tmp și /var. Pentru a face acest lucru, adăugați steaguri „noexec” în câmpul Opțiuni din fiecare dintre aceste secțiuni.

Setați restricții mai stricte privind accesul la fișierele de sistem:

# chmod 0600 /etc/syslog.conf

chmod 0600 /etc/rc.conf

chmod 0600 /etc/newsyslog.conf

chmod 0600 /etc/hosts.allow

chmod 0600 /etc/login.conf

Acum trebuie să stabilim o conexiune la rețea. În FreeBSD, toate setările globale sunt stocate în fișierul /etc/rc.conf, așa că deschideți-l cu un editor și adăugați următoarele linii:

#ee /etc/rc.conf
hostname="gazdă.com"
ifconfig_em0="inet 1.2.3.4 netmask 0xffffffff"
defaultrouter="5.6.7.8"

Aici, em0 pe a doua linie este numele interfeței de rețea care se configurează. O listă a tuturor interfețelor de rețea disponibile poate fi obținută folosind comanda ifconfig. Puteți specifica DHCP ca valoare a opțiunii, apoi dhclient va fi folosit pentru a configura interfața. De asemenea, vom adăuga imediat câteva opțiuni care sunt importante pentru noi:

#ee /etc/rc.conf

Dezactivați redirecționarea pachetelor

înregistrați toate încercările de redirecționare

icmp_drop_redirect="DA"
icmp_log_redirect="DA"

Dezactivați răspunsurile la solicitările ping de difuzare

icmp_bmcastecho="NU"

Ștergerea directorului /tmp la fiecare pornire

clear_tmp_enable="DA"

Preveniți actualizarea fișierului /etc/motd la fiecare pornire

update_motd="NU"

Nu acceptăm pachete cu instalat simultan

Steaguri SYN și FIN

tcp_drop_synfin="DA"

Dezactivează sendmail

sendmail_enable="NU"
sendmail_submit_enable="NU"

Activați SSH

sshd_enable="DA"

Pentru a ieși din editor, apăsați si de doua ori . Adăugați adresa serverului DNS la /etc/resolv.conf:

#ee /etc/resolv.conf
server de nume 8.8.8.8

Pentru ca setările de rețea să aibă efect, rulați următoarea comandă:

# /etc/rc.d/netif reporniți

Verificarea disponibilității rețelei:

# ping execbit.ru

Să adăugăm câteva linii utile în fișierul /etc/sysctl.conf:

#ee /etc/sysctl.conf

Nu răspundeți la încercările de conectare pe porturile închise

(vă va salva de anumite tipuri de atacuri DoS și vă va îngreuna

scanare porturi)

net.inet.tcp.blackhole=2
net.inet.udp.blackhole=1

Permitem numai root să vizualizeze lista tuturor proceselor

kern.ps_showallprocs=0

Protejarea serverului SSH de atacurile de forță brută:

# echo „MaxStartups 5:50:10” >> /etc/ssh/sshd_config

/etc/rc.d/sshd reporniți

Serverul SSH va pierde acum 50% din noile conexiuni dacă se fac cinci autentificări proaste. Când sunt zece, serverul nu va mai răspunde deloc.

Când folosiți instalarea rapidă, sistemul de porturi (un cadru pentru instalarea de software terță parte în sistemul de operare) nu este instalat automat pe FreeBSD, așa că trebuie să o facem manual (acest lucru este bine, pentru că astfel vom obține cea mai recentă tăiere de porturi). , care nu conține software învechit cu scurgeri):

# portsnap extras de preluare

De asemenea, puteți actualiza sistemul de bază, dar acest lucru nu este necesar:

# preluare freebsd-update

instalare freebsd-update

oprire -r acum

După ce porturile sunt actualizate, instalați instrumentul rkhunter pe sistem, care este necesar pentru a prinde rootkit-urile care pot fi instalate pe sistem în viitor:

# cd /usr/ports/security/rkhunter

face instalarea curata

Să edităm fișierul de configurare /usr/local/etc/rkhunter.conf astfel încât opțiunea MAIL-ON-WARNING să conțină un e-mail către care să fie trimise mesaje despre anomaliile detectate.

Să facem ca instrumentul să se verifice pentru actualizări:

# rkhunter --update

După aceea, vom crea un instantaneu al fișierelor de sistem, care va fi folosit ca referință în timpul căutării rootkit-urilor:

# echo "daily_rkhunter_update_enable="YES"" > /etc/periodic.conf

echo "daily_rkhunter_check_enable="YES""> /etc/periodic.conf

Asta e tot, acum toate mesajele despre activitatea suspectă a sistemului vor fi plasate în jurnalul /var/log/rkhunter.log și trimise la adresa de e-mail specificată în fișierul de configurare.

# crontab -e 0 2 * * * root /usr/local/sbin/ntpdate pool.ntp.org

În cele din urmă, instalați Webmin, o interfață bazată pe web pentru managementul serverului de la distanță (cei care preferă să folosească SSH pentru administrare pot sări peste acest pas):

# cd /usr/ports/sysutils/webmin

face instalarea curata

echo "webmin_enable="YES"" >> /etc/rc.conf

# /usr/local/lib/webmin/setup.sh

La întrebări se poate răspunde făcând clic , totuși, când vine vorba de introducerea unei parole (linia „Parola de autentificare:”) ar trebui să introduceți parola pentru accesarea Webmin (este mai bine dacă este diferită de restul parolelor). Apoi, puteți porni Webmin:

# /usr/local/etc/rc.d/webmin start

Și testați-i funcționarea introducând adresa „https://host.com:10000/” în bara de adrese a celui mai apropiat browser.

AMP

Acum este timpul să instalați stiva AMP, adică serverul web Apache, baza de date MySQL și interpretul PHP. Să ne ocupăm mai întâi de Apache. Accesați porturi și instalați cea mai recentă versiune:

# cd /usr/ports/www/apache22

face instalarea config curată

Pe ecran ar trebui să apară o fereastră de configurator, cu ajutorul căreia puteți selecta instalarea componentelor de server opționale. Nu are rost să schimbi ceva aici, așa că poți culege în siguranță . După finalizarea construirii și instalării, nu uitați să adăugați serverul la pornire automată (dacă nu este necesar suportul SSL, puteți sări peste a doua linie):

# echo "apache22_enable="YES"" >> /etc/rc.conf

echo "apache22ssl_enable="YES"" >> /etc/rc.conf

De asemenea, ar trebui adăugată o instrucțiune la fișierul de configurare pentru a încărca modulul accf_http, care va tampona conexiunile HTTP, care va descărca serverul și va ajuta în lupta împotriva inundațiilor SYN:

# echo "accf_http_ready="YES"" >> /etc/rc.conf

kldload accf_http

# cd /usr/ports/lang/php5

face instalarea config curată

Asigurați-vă că opțiunea „Build Apache module” este selectată. Plus câteva extensii la acesta:

# cd /usr/ports/lang/php5-extensions

face instalarea config curată

Este important ca la pasul de configurare PHP să vă amintiți să bifați caseta de selectare „Suport baze de date MySQL”, care obligă sistemul de porturi să instaleze modulul PHP pentru a funcționa cu MySQL. Nimic nu va funcționa fără el.

Acum deschidem fișierul de configurare Apache într-un editor de text (în FreeBSD este ascuns departe: /usr/local/etc/apache22/httpd.conf) și modificăm următoarele în el:

1. După liniile LoadModule, adăugați următoarele două linii:

Aplicația AddType/x-httpd-php.php
Aplicația AddType/x-httpd-php-source.phps

2. Găsim opțiunea ServerAdmin și setăm adresa noastră de corespondență ca valoare:

ServerAdmin [email protected]

3. În opțiunea DocumentRoot, specificați directorul în care vor fi stocate toate fișierele site-ului nostru:

DocumentRoot „/home/www/data”

Nu uitați să creați acest director:

# mkdir /home/www

mkdir /home/www/data

mkdir /home/www/cgi-bin

Prefer să folosesc /home/www ca director rădăcină pentru că, în primul rând, directorul /home este de obicei situat pe cea mai mare partiție (autoconfiguratorul de partiție pe care l-am folosit în timpul instalării alocă cel mai mult spațiu pentru /home) și, în al doilea rând, în al doilea rând, este mai ușor să lucrezi decât cu unele /usr/local/www/apache22/data ascunse în multe subdirectoare.

4. Găsiți următoarea linie:

Și schimbați-l astfel încât DocumentRoot să fie specificat ca director:

5. Modificați următoarele linii:


DirectoryIndex index.html


DirectoryIndex index.php index.html

6. În interiorul unei directive înlocuiți linia:

ScriptAlias ​​​​/cgi-bin/ „/usr/local/www/apache22/cgi-bin/”

Iată-l pe acesta:

ScriptAlias ​​​​/cgi-bin/ „/home/www/cgi-bin/”

7. Rândul următor:

Îl înlocuim pe acesta:

Salvați fișierul și creați un fișier de setări PHP:

# cp /usr/local/etc/php.ini-recommended /usr/local/etc/php.ini

Acest lucru va fi suficient pentru ca Apache să funcționeze corect cu PHP. Acum puteți începe să instalați MySQL. Mergem în porturi și facem următoarele:

# cd /usr/ports/databases/mysql50-server

make WITH_OPENSSL=da instalați curat

Să creăm un fișier de configurare rudimentar care va fi suficient pentru prima dată:

#ee /etc/my.cnf
port=29912
port=29912
bind-address=127.0.0.1

Să adăugăm MySQL la pornire și să pornim serverul:

# echo "mysql_enable="YES""<< /etc/rc.conf

/usr/local/etc/rc.d/mysql-server start

Setați o parolă pentru accesarea bazei de date:

# mysqladmin -u parola pentru parola root

mysql -u root -p

Acum MySQL ar trebui să funcționeze normal, dar gestionarea manuală a bazelor de date nu este foarte convenabilă, în plus, pentru unii aceasta va fi prima experiență de instalare a MySQL și nu este atât de ușor să o faceți dintr-o privire. Deci, să instalăm interfața de administrare web MySQL numită PHPMyAdmin:

# cd /usr/ports/databases/phpmyadmin

face instalarea curata

Să reparăm fișierul de configurare PHPMyAdmin specificând parola pentru accesarea interfeței web:

# cd /usr/local/www/phpMyAdmin

cp config.sample.inc.php config.inc.php

ee config.inc.php

$cfg["blowfi sh_secret"] = "parola";

Acum redeschideți fișierul de configurare Apache și faceți următoarele:

1. Spre sectiune adăugați următorul rând:

Alias ​​/phpmyadmin /usr/local/www/phpMyAdmin

2. Până la sfârșitul secțiunii adăugați următoarele rânduri:


comanda permite, refuza
Permite de la toți

Aici, în loc de „Permite de la toți”, poți adăuga ceva de genul „Permite de la 123.456.789.0/12” pentru a permite accesul la PHPMyAdmin numai dintr-o anumită subrețea. Reporniți Apache:

Asta e, acum (L)AMP ar trebui să funcționeze.

HTTPS

PHPMyAdmin necesită suport HTTPS pentru a funcționa corect și este posibil ca în viitor să aveți nevoie de acest protocol pentru a stabili o conexiune criptată securizată între client și site. Prin urmare, ne vom asigura că Apache îl înțelege.

Mai întâi, să reparăm fișierul de configurare OpenSSL (/etc/ssl/openssl.cnf) adăugând următoarele linii la acesta:

# Director pentru stocarea certificatelor
dir=/root/sslCA

Perioada de valabilitate a certificatului (~10 ani)

default_days = 3650

Acum să pregătim directorul și să creăm certificate pentru propria noastră autoritate de certificare:

mkdir sslCA

chmod 700 sslCA

chmod 700 sslCA

mkdir privat

cd sslCA

openssl req -new -x509 -days 3650 -extensions v3_ca

Keyout private/cakey.pem -out cacert.pem
-config /etc/ssl/openssl.cnf

Verificați dacă certificatele au fost create cu succes:

# ls -l cacert.pem private/cakey.pem

Să generăm certificate pentru Apache și să le punem în directorul /etc/ssl:

# cd /root/sslCA

openssl req -new -nodes -out hostname-req.pem

Keyout private/hostname-key.pem -config /etc/ssl/openssl.cnf

openssl ca -config g /etc/ssl/openssl.cnf -out

Nume host-cert.pem -infiles nume gazdă-req.pem

cp /root/sslCA/hostname-cert.pem /etc/ssl/crt

cp /root/sslCA/private/hostname-key.pem /etc/ssl/key

Deschideți din nou fișierul de configurare Apache, găsiți următoarea linie și decomentați-o:

# ee /usr/local/etc/apache22/httpd.conf

Includeți etc/apache22/extra/httpd-ssl.conf

Facem următoarele modificări în fișierul /usr/local/etc/apache22/extra/http-ssl.conf:

# ee /usr/local/etc/apache22/extra/http-ssl.conf

Numele serverului HTTPS

ServerName ssl.host.com

Calea către fișierul care conține certificatul și cheia

SSLCertificateFile /etc/ssl/crt/yourhostname-cert.pem
SSLCertificateKeyFile /etc/ssl/key/yourhostname-key.pem

La fel ca în configurația principală

DocumentRoot „/home/www/data”

Unde să scrieți jurnalele

ErrorLog „/var/log/httpd-error.log”
TransferLog „/var/log/httpd-access.log”

Reporniți Apache:

# /usr/local/etc/rc.d/apache22 reporniți

Ce urmeaza?

În acest articol, v-am arătat cum să configurați o stivă (L)AMP complet funcțională bazată pe FreeBSD (deci este mai mult ca FAMP) și tot ce trebuie să faceți acum este să descărcați motorul dvs. de site preferat și să îl implementați în /home/ www /data (nu uitați să puneți scripturile în /home/www/cgi-bin). De orice altceva se va ocupa (L)AMP.

Stack-ul LAMP este baza pentru site-urile web găzduite Linux este stiva de software Linux, Apache, MySQL și PHP (LAMP).

Stand LAMP pentru: -

  1. L (LinexOS)
  2. A(Apache[ Server client local])
  3. M (bază de date MySQL)
  4. P (PHP)

O stivă LAMP este un set de software open-source care poate fi folosit pentru a crea site-uri web și aplicații web. LAMP este un acronim, iar aceste stive constau de obicei din sistemul de operare Linux, Apache HTTP Server, sistemul de gestionare a bazelor de date relaționale MySQL și limbajul de programare PHP.

    linux: Sistemul de operare (OS) formează primul nostru strat. Linux pune bazele modelului de stivă. Toate celelalte straturi rulează deasupra acestui strat. Linux este stratul de cel mai jos nivel și oferă sistemul de operare. Linux rulează de fapt fiecare dintre celelalte componente. Cu toate acestea, nu sunteți limitat în mod specific la Linux; puteți rula cu ușurință fiecare dintre celelalte componente pe Microsoft®; Windows®;, Mac OS X sau UNIX® dacă este necesar.

    apache: Al doilea strat este format din software-ul serverului web, de obicei Apache Web Server. Acest strat se află deasupra stratului Linux. Serverele web sunt responsabile pentru traducerea din browsere web pe site-ul lor web corect. Apache oferă mecanismele pentru a obține o pagină Web unui utilizator. Apache este un server stabil, cu capacitate de misiune critică și rulează peste 65% din toate site-urile Web de pe Internet. Componenta PHP se află de fapt în interiorul Apache și folosiți Apache și PHP împreună pentru a vă crea paginile dinamice.

    MySQL: Al treilea strat este locul unde trăiesc bazele de date. MySQL stochează detalii care pot fi interogate prin scripting pentru a construi un site web. MySQL se află de obicei deasupra stratului Linux alături de Apache/layer 2. În configurațiile high-end, MySQL poate fi descărcat pe un server gazdă separat. MySQL oferă partea de stocare a datelor a sistemului LAMP. Cu MySQL, aveți acces la o bază de date foarte capabilă, potrivită pentru rularea site-urilor mari și complexe. În cadrul aplicației dvs. web, toate datele, produsele, conturile și alte tipuri de informații vor locui în această bază de date într-un format pe care îl puteți interoga cu ușurință cu limbajul SQL.

    PHP: Să stăm deasupra tuturor este al patrulea și ultimul nostru strat. Stratul de scripting este format din PHP și/sau alte limbaje de programare web similare. Site-urile web și aplicațiile web rulează în acest nivel. PHP este un limbaj de programare simplu și eficient care oferă lipici pentru toate celelalte părți ale sistemului LAMP. Folosiți PHP pentru a scrie conținut dinamic capabil să acceseze datele din baza de date MySQL și unele dintre caracteristicile oferite de Linux.