Opis sklopa svjetiljki njegovih komponenti. Posebne slike Cloud VDS za brzu implementaciju LAMP poslužitelja

Pod hrpom web aplikacija mislimo na razne softverske proizvode otvorenog koda: operativni sustav, web poslužitelj, poslužitelj baze podataka i okruženje izvršnog koda. Najpoznatiji i najčešći stack je LAMP. Ovo je akronim za skup web aplikacija temeljen na besplatnim rješenjima otvorenog koda.

SVJETILJKA- akronim koji označava skup (kompleks) poslužiteljskog softvera koji se široko koristi na World Wide Webu. LAMP je dobio ime po prvim slovima svojih sastavnih komponenti:

· L inux - operativni sustav Linux

;

· A pache- web poslužitelj;

· M ariaDB/ M ySQL - DBMS;

· P HP je programski jezik koji se koristi za izradu web aplikacija (uz PHP, mogu biti uključeni i drugi jezici, kao što su Perl i Python).

Akronim LAMP može se koristiti za označavanje:

1. Infrastruktura web poslužitelja

2. Paradigme programiranja

3. Programski paket

Iako ovi softverski proizvodi nisu izvorno dizajnirani posebno za međusobni rad, ova je kombinacija postala vrlo popularna zbog svoje fleksibilnosti, performansi i niske cijene (sve komponente su otvorenog koda i mogu se besplatno preuzeti s interneta). LAMP je uključen u većinu distribucija Linuxa i dostupan je od mnogih hosting tvrtki.

Linux osigurava prijem/prijenos zahtjeva (kontrolira hardver) i jezgra je za sve više - poslužitelj, DBMS, jezičnu podršku.

Instalacija na Ubuntu

Sljedeći paketi moraju biti instalirani:

Nakon pokretanja apt-get update za ažuriranje lokalnog popisa paketa, možete instalirati te pakete jednom apt-get install naredbom:

Nakon pokretanja gornje naredbe, od vas će se tražiti da instalirate ove pakete i neke druge ovisnosti. Pritisnite "y", a zatim ENTER za nastavak i slijedite ostale upute za postavljanje administratorske lozinke za MySQL.

To će vam omogućiti instaliranje minimalnog skupa PHP proširenja potrebnih za korištenje PHP-a s MySQL-om.



Značajke i prednosti Linux OS-a

Besplatno.

Pouzdanost. Ispravan rad hardvera vašeg računala omogućit će Linuxu da radi godinama bez ponovnog pokretanja ili zamrzavanja. A tipka Reset nikad neće biti potrebna.

Sigurnost. U Linuxu praktički nema virusa. Sam dizajn operativnog sustava isključuje rad zlonamjernih programa.

Otvoreni izvor. To omogućuje korištenje i modificiranje koda po želji.

Glavne prednosti Apachea su pouzdanost i fleksibilnost konfiguracije. Omogućuje vam povezivanje vanjskih modula za pružanje podataka, korištenje DBMS Za ovjera korisnicima, mijenjati poruke o pogreškama itd.

Fleksibilnost MySQL DBMS-a osigurana je podrškom za veliki broj tipova tablica: korisnici mogu odabrati obje vrste tablica MojISAM, podržava pretraživanje cijelog teksta i tablice InnoDB, podržavajući transakcije na razini pojedinačnog zapisa. Štoviše, MySQL DBMS dolazi s posebnim tipom tablice EXAMPLE koji demonstrira principe stvaranja novih tipova tablica. Zahvaljujući otvorenoj arhitekturi i GPL licenciranju, u MySQL DBMS-u stalno se pojavljuju nove vrste tablica.

PHP- skriptni jezik opće namjene, intenzivno se koristi za razvoj web aplikacija. Trenutno ogromna većina podržana hosting provideri i jedan je od vodećih među jezicima koji se koriste za stvaranje dinamičke web stranice .

3. Web aplikacija. Uzorak dizajna Model-View-Controller.

Uzorak dizajna je arhitektonski konstrukt koji predstavlja rješenje problema dizajna unutar nekog konteksta koji se često pojavljuje. Tradicionalno, OOP prikazuje odnose i interakcije između klasa ili objekata, bez specificiranja koje će se konačne klase ili objekti aplikacije koristiti.

Model-View-Controller. Uzorak MVC dizajna uključuje odvajanje podataka aplikacije, korisničkog sučelja i upravljačke logike u tri odvojene komponente: model, pogled i kontroler - tako da se modifikacija svake komponente može izvršiti neovisno. Ovaj je obrazac prvi put korišten u okviru razvijenom za jezik Smalltalk kasnih 1970-ih. Od sada igra temeljnu ulogu u većini UI okvira. To je iz temelja promijenilo način na koji gledamo na dizajn aplikacija.

Model je odraz stvarnosti, uzimajući u obzir svojstva potrebna za rješavanje problema. Model uključuje logiku za rješavanje glavnog problema (poslovnu logiku):

●spremanje, brisanje, ažuriranje podataka aplikacije (CRUD ili vanjske web usluge);

●enkapsulacija cjelokupne logike aplikacije (potrebno je izbjegavati “debele” kontrolere, tj. ne možete premjestiti dio poslovne logike u kontroler ili pogled).

CRUD - Stvaranje, čitanje, ažuriranje, brisanje.

Model Opisuje podatke i njihovo upravljanje, a često se naziva i poslovnom logikom aplikacijskog programa, tj. njegovu samu srž. Prezentacija Opisuje što korisnik vidi i s čime može komunicirati u aplikacijskom programu. Kontroler Služi kao posrednik između modela i pogleda.
Glavni mehanizam koji implementira View dio predloška (ali ne identičan!) je Template Engine.

Interakcija MVC elemenata

Svaki element u MVC uzorku komunicira s ostalima na vrlo specifične načine. Komunikacija se provodi kroz niz događaja koji se obično pokreću interakcijom korisnika s aplikacijom. Redoslijed događaja izgleda ovako:

  1. Korisnik stupa u interakciju s elementom korisničkog sučelja (na primjer, klikom na gumb u prikazu).
  2. Pogled šalje događaj klika kontroleru da odluči kako postupiti s klikom.
  3. Kontroler mijenja model na temelju onoga što je odlučio o pritisku gumba.
  4. Model obavještava Pogled da se stanje modela promijenilo.
  5. Pogled čita informacije o stanju u modelu i sam sebe mutira.

4. Web aplikacija. Motor za predloške.

Predložak (na webu) je softver koji vam omogućuje korištenje HTML predložaka za generiranje konačnih HTML stranica. Glavna svrha korištenja predložaka je odvojiti prezentaciju podataka od izvršnog koda. To je često potrebno kako bi se osigurao paralelni rad programera i dizajnera izgleda. Korištenje mehanizama za predloške često poboljšava čitljivost koda i mijenja izgled kada projektom u potpunosti upravlja jedna osoba.

Korištenje predložaka često se poistovjećuje s MVC paradigmom. Ovi pojmovi su povezani, ali ne i identični.

Bit šablona je odvojiti okvir stranice od programskog koda. Okvir stranice smješta se u zasebnu tekstualnu datoteku (predložak), a na mjesta gdje treba prikazati podatke postavljaju se posebne pseudovarijable. Skripta učitava željeni predložak, zamjenjuje njegove pseudovarijable s odgovarajućim podacima i ispisuje ih.

Prednosti korištenja predložaka prilikom generiranja koda HTML stranice:

· Prvo, čistoća koda. Programski kod ne sadrži HTML kod pa je lako čitljiv. Istodobno, predložak sadrži samo HTML kod, koji pokazuje gdje i koji su podaci umetnuti (da biste to učinili, dajte smislena imena pseudovarijablama).

· Drugo, odvajanje softvera i HTML koda omogućuje neovisan razvoj motora i dizajna. Da biste nešto promijenili u izgledu gotove web stranice, samo trebate unijeti izmjene u odgovarajući predložak, a ne morate imati programerske vještine.

· Stranica može imati nekoliko dizajna. Da biste potpuno promijenili dizajn web mjesta, jednostavno promijenite put do mape predložaka.

Prednosti:

· Potpuno odvajanje izlaza od logike aplikacije;

· Sandbox mod;

· Uredan izgled logičkih blokova ili izlaznih naredbi;

· Prenosivost između platformi (jezika) - tj. parser predložaka može se napisati u bilo čemu;

· Jezik predloška je razumljiv "dizajneru izgleda";

O prednostima

S obzirom na pitanje odvajanja logike aplikacije od izlaza, možemo reći da se odvajanje logike od izlaza koristi u razvoju mreža- uglavnom aplikacije samo kada se koristi MVC obrazac. Uvjerite se sami, istina je, svi primjeri korištenja odvajanja predložaka i logike prikazani su u kontekstu MVC.

Ne može se ne složiti da je stvarno zgodno koristiti konstrukte unutarnje izolirane logike predloška, ​​bez obzira na platformu ( php, ROR, Java), koji će analizirati te predloške i ispuniti ih podacima te ih prikazati korisniku. Osim toga, ovo osigurava da programeri neće koristiti logiku aplikacije ili čak SQL upite u predlošku.

Način sandboxa vrlo je zgodan kada korisniku, uređivaču predložaka, trebate dati ograničene mogućnosti sintakse. Na primjer, ovo je relevantno za uslugu bloga, gdje korisnici samostalno objavljuju materijale koristeći html oznake i specifične dizajne usluge koja se koristi.

5. Web aplikacija. Relacijske baze podataka.

Relacijska baza podataka skup je međusobno povezanih tablica od kojih svaka sadrži informacije o objektima određene vrste. Redak tablice sadrži podatke o jednom objektu (npr. proizvod, kupac), a stupci tablice opisuju različite karakteristike tih objekata - atribute (npr. naziv, šifra proizvoda, podaci o kupcu). Zapisi, odnosno redovi tablice, imaju istu strukturu - sastoje se od polja koja pohranjuju atribute objekta. Svako polje, odnosno stupac opisuje samo jednu karakteristiku objekta i ima strogo definiran tip podataka. Svi zapisi imaju ista polja, samo prikazuju različita informacijska svojstva objekta.

U relacijskoj bazi podataka svaka tablica mora imati primarni ključ – polje ili kombinaciju polja koja jedinstveno identificira svaki red u tablici. Ako se ključ sastoji od nekoliko polja, naziva se složenim. Ključ mora biti jedinstven i jedinstveno identificirati unos. Pomoću vrijednosti ključa možete pronaći jedan zapis. Ključevi također služe za organiziranje informacija u bazi podataka.

Tablice relacijske baze podataka moraju ispunjavati zahtjeve za normalizaciju odnosa. Normalizacija relacija je formalni aparat ograničenja formiranja tablica, koji eliminira dupliciranje, osigurava konzistentnost podataka pohranjenih u bazi podataka i smanjuje troškove rada za održavanje baze podataka.

Neka se napravi tablica Student koja sadrži sljedeća polja: broj grupe, puno ime, matični broj studenta, datum rođenja, naziv specijalnosti, naziv fakulteta. Takva organizacija pohrane informacija imat će brojne nedostatke:

· dupliciranje informacija (naziv specijalnosti i fakulteta se ponavlja za svakog studenta), stoga će se volumen baze podataka povećati;

· postupak ažuriranja podataka u tablici kompliciran je potrebom za uređivanjem svakog unosa u tablici.

Normalizacija tablice osmišljena je za rješavanje ovih nedostataka. Dostupno tri normalna oblika odnosa.

Prvi normalni oblik. Relacijska tablica reducira se na prvi normalni oblik ako i samo ako niti jedan od njezinih redaka ne sadrži više od jedne vrijednosti u bilo kojem od svojih polja i nijedno od njezinih ključnih polja nije prazno. Dakle, ako trebate dobiti podatke iz tablice Student po imenu studenta, tada polje Puno ime treba podijeliti na dijelove Prezime, Ime i Otac.

Drugi normalni oblik. Relacijska tablica je definirana u drugom normalnom obliku ako zadovoljava zahtjeve prvog normalnog oblika i sva njena polja koja nisu uključena u primarni ključ imaju punu funkcionalnu ovisnost o primarnom ključu. Da bi se tablica svela na drugu normalnu formu, potrebno je odrediti funkcionalnu ovisnost polja. Funkcionalna ovisnost polja je ovisnost u kojoj u instanci informacijskog objekta određena vrijednost ključnog atributa odgovara samo jednoj vrijednosti opisnog atributa.

Treći normalni oblik. Tablica je u trećem normalnom obliku ako zadovoljava zahtjeve drugog normalnog oblika da niti jedno od njenih neključnih polja nije funkcionalno ovisno o bilo kojem drugom neključnom polju. Na primjer, u tablici Student (br. grupe, puno ime, br. razredne knjige, datum rođenja, ravnatelj) tri polja - br. razredne knjige, br. grupe, ravnatelj nalaze se u tranzitivnoj ovisnosti. Broj skupine ovisi o broju razredne knjige, a voditelj o broju skupine. Kako bi se uklonila tranzitivna ovisnost, potrebno je prenijeti neka od polja tablice Student u drugu tablicu Grupe. Tablice će biti sljedećeg oblika: Student (broj grupe, puno ime, broj razredne knjige, datum rođenja), Grupa (broj grupe, voditelj).

Na relacijskim tablicama moguće su sljedeće operacije:

· Spajanje tablica s istom strukturom. Rezultat je zajednička tablica: prvo prva, zatim druga (ulančavanje).

· Sjecište tablica s istom strukturom. Rezultat - odabrani su zapisi koji se nalaze u objema tablicama.

· Oduzimanje tablica iste strukture. Rezultat - odabrani su zapisi koji nisu u oduzetom.

· Uzorkovanje (horizontalni podskup). Rezultat - odabiru se zapisi koji zadovoljavaju određene uvjete.

· Projekcija (vertikalni podskup). Rezultat je relacija koja sadrži neka od polja iz izvornih tablica.

· Kartezijev umnožak dviju tablica Zapisi rezultirajuće tablice dobivaju se kombiniranjem svakog zapisa prve tablice sa svakim zapisom druge tablice.

Relacijske tablice mogu biti povezane jedna s drugom, stoga se podaci mogu dohvatiti iz više tablica istovremeno. Tablice su međusobno povezane kako bi se u konačnici smanjila veličina baze podataka. Svaki par tablica je povezan ako ima identične stupce.

Postoje sljedeće vrste poveznica s informacijama:

· jedan na jedan;

· jedan prema više;

· mnogo prema mnogima.

Web aplikacija. NoSQL.

Jedno od značenja pojma "NoSQL" je odmak od relacijskog modela u korist specifičnijih (ili općenitijih) modela podataka. Na primjer, tradicionalno uspješni NoSQL sustavi su sustavi za pohranu ključeva kao što su Redis ili Memcache. Njihov podatkovni model je krajnje jednostavan - to je u biti asocijativno polje, gdje su ključevi tipa niza, a vrijednosti mogu sadržavati bilo koje podatke. Kao i svaki asocijativni niz, takvi sustavi podržavaju ograničen skup operacija s podacima - čitanje vrijednosti po ključu, postavljanje vrijednosti ključa, brisanje ključa i njegove pridružene vrijednosti. Operacija "dobi popis ključeva" možda neće biti podržana na takvim sustavima.

Drugi primjer uspješnih NoSQL sustava je pohrana dokumenata. Objekti u takvim spremištima obično su asocijativni nizovi slobodne strukture, odnosno u istoj “tablici” mogu biti pohranjeni bitno različiti objekti. Primjeri sustava ove klase su MongoDB i Cassandra. Ovisno o tome koji su podaci zapravo pohranjeni u određenoj bazi podataka, njezina izvedba može uvelike varirati. Na primjer, ako optimizirate takvu "tablicu" pohranjivanjem objekata iste vrste u nju.

Treći primjer specijaliziranih NoSQL sustava su baze podataka s grafovima. Oni su posebno dizajnirani za obradu specifične podatkovne strukture, obično za rad s velikim količinama podataka (jer standardna relacijska implementacija može dobro podnijeti male količine podataka).

Vrlo važan primjer NoSQL sustava su obični datotečni sustavi kao što su Ext4 ili NTFS. Dizajnirani su za pohranjivanje objekata u hijerarhijskoj strukturi sa sadržajem slobodnog formata. Same baze podataka, relacijske i NoSQL, obično koriste datotečne sustave za pohranu svog sadržaja, a ponekad interakcija između ova dva podsustava postaje važna u jednom ili drugom slučaju.

7. Web aplikacija. mogućnosti JavaScripta.

JavaScript je interpretirani programski jezik s objektno orijentiranim mogućnostima.

Mogućnosti

Izvorni kod na ovom jeziku može se pokrenuti ne samo u pregledniku, već i na strani poslužitelja ili iz naredbenog retka, ali mi ćemo razmotriti korištenje JavaScripta za web stranice. Moderni JavaScript je "siguran" programski jezik opće namjene. Ne pruža alate niske razine za rad s memorijom i procesorom, budući da je izvorno bio namijenjen preglednicima koji to ne zahtijevaju.

Što se tiče ostalih značajki, one ovise o okruženju u kojem se izvodi JavaScript. U pregledniku, JavaScript može raditi sve što se odnosi na manipulaciju stranicom, interakciju s posjetiteljem i, donekle, s poslužiteljem:

· Dodajte razne animacijske efekte

· Reagirati na događaje - obraditi pokrete miša, pritiske na tipkovnici

· Provjerite unos podataka u polja obrasca prije slanja na poslužitelj, što zauzvrat uklanja dodatno opterećenje s poslužitelja

· Stvaranje i čitanje kolačića, dohvaćanje podataka o računalu posjetitelja

· Otkrijte preglednik i, ovisno o pregledniku, učitajte željenu stranicu posebno dizajniranu za ovaj preglednik

· Promijenite sadržaj HTML elemenata, dodajte nove oznake, promijenite stilove

Ograničenja

· JavaScript ne može zatvoriti prozore i kartice koji nisu otvoreni pomoću njega

· Nije moguće zaštititi izvorni kod stranice i spriječiti kopiranje teksta ili slika sa stranice

· Ne može slati zahtjeve između domena ili pristupati web stranicama koje se nalaze na drugoj domeni. Čak i kada se stranice s različitih domena prikazuju u isto vrijeme u različitim karticama preglednika, JavaScript kod koji pripada jednoj domeni neće imati pristup informacijama o web stranici s druge domene. Time se jamči sigurnost privatnih informacija koje mogu biti poznate vlasniku domene čija je stranica otvorena u sljedećoj kartici

· Nema pristup datotekama koje se nalaze na korisnikovom računalu ili pristup izvan same web stranice, jedina iznimka su kolačići, koji su male tekstualne datoteke koje JavaScript može pisati i čitati.

Sve u svemu, možemo reći da je dizajniran na takav način da otežava izvršenje zlonamjernog koda.

8. Web aplikacija. Runtime okruženje. Instalacija i konfiguracija web poslužitelja.

Apache poslužitelj je višeplatformski web poslužitelj, danas je najčešći, jer... instaliran na većini hosting stranica i lakše ga je konfigurirati nego, na primjer, web poslužitelj nginx.

Apache poslužitelj također dolazi u verzijama kao što su denwer i xampp, zbog čega je php apache vrlo popularna verzija. Instaliranje apache windowsa, linux linkovi ispod:

· Instalacija apache linuxa

· Instaliranje apache windowsa

Kako radi Apache poslužitelj:

· Zahtjeve prima ciklički

· Obrađuje zahtjeve

· Stvara sadržaj

· Daje sadržaj korisniku

Apache web ima mehanizam virtualnog hosta koji vam omogućuje distribuciju više naziva domena na jednu IP adresu. Možete primijeniti vlastite postavke na svaki naziv domene; apache postavke su napravljene u datoteci .htaccess, koja se mora nalaziti u korijenskom direktoriju vaše stranice.

Zadani Apache port je 80. Mogu se pojaviti problemi s nekim programima, posebice sa skypeom. Da biste riješili problem, morate onemogućiti korištenje priključka 80 u Skypeu. Ako je korišteni apache port 80 zauzet, tada možete promijeniti ovu vrijednost u postavkama web poslužitelja.

Na Apacheu je stranica s puno statičnog sadržaja (slika) sporija od stranice na kojoj se nalazi nginx. Ponekad se uzima u obzir kombinacija kao što je apache server + nginx; nginx se koristi za isporuku statičkih podataka.

Za programiranje u PHP-u morate instalirati sljedeće komponente:

· apache ili drugog web poslužitelja;

· mysql (+ phpmyadmin za rad s mysql-om preko web sučelja).

Postoje dvije opcije za instaliranje ovih komponenti:

· instalacija gotovog paketa (xampp, denwer itd.)

· instalirajte sve pakete zasebno

U prvom slučaju, sve je vrlo jednostavno, preuzmite paket i instalirajte. Ali s ručnom instalacijom neće biti problema s ažuriranjem verzija, jer... već ćete znati kako radi i kako ga instalirati. Također je manja vjerojatnost da ćete imati problema s paketima.

Ručna instalacija:

· preuzmite i instalirajte apache Po veza

· preuzmite i instalirajte mysql by veza

· može se instalirati kao dodatak phpmyadmin, za rad s mysqlom putem web sučelja

Nakon instalacije, kao i nakon bilo kakvih promjena, morate se ponovno pokrenuti apache. Idite na “start - upravljačka ploča - administracija - usluge” i tamo pronađite Apache, kliknite desnom tipkom miša i odaberite ponovno pokretanje u kontekstnom izborniku.

Da biste radili, morate dodati virtualni host, možete pročitati kako to učiniti ovdje.

Runtime okruženje

Program eTBManager je JBOSS poslužiteljska aplikacija koja radi s podacima kojima upravlja MySQL poslužitelj baze podataka. Korisnici rade s programom iz web preglednika (IE, FireFox, Crhome, itd.).

Program je instaliran na jednom fizičkom poslužitelju (računalu). Operativni sustav Windows 2008 server sa svim instaliranim SP-om.

Kako bi se osigurao rad programa, softver mora biti instaliran i konfiguriran na poslužitelju sljedećim redoslijedom:

1. Baza podataka

1. MySQL poslužitelj za upravljanje bazom podataka.

2. eTBManager baza podataka.

2. Primjena

1. JBOSS Java Application server za izvođenje programa eTBManager.

2. eTBManager softver.

3. Web poslužitelj

1. Apache HTTPD za primanje i obradu web zahtjeva od korisnika.

2. Mod_jk konektor za interoperabilnost između Apache HTTPD i JBOSS.

Sve što vam je potrebno za instalaciju programa, uključujući najnoviju verziju softvera i bazu podataka za obuku, možete dobiti na adresi ftp:.ua s anonimnim pristupom. Budući da se koristi besplatni softver, najnovije verzije mogu se nabaviti na web stranicama proizvođača. Najnovije verzije sadrže ispravke grešaka i mogu raditi stabilnije, ali nismo ih testirali na kompatibilnost.

9. Razvoj web tehnologija. Web 1.0, Web 2.0.

Web 1.0 je prva generacija World Wide Weba koja je koristila TPC/IP internetske protokole. Ako se u eri prije interneta odvijala samo linearna komunikacija od točke do točke, onda se pojavom weba (informacijskog weba) formira mrežna morfologija koja korisniku omogućuje nesmetano „surfanje“ informacijskim prostorima, primanje bilo kakvih informacija prikupljenih u resursima mreže Web 1.0.

Ovo razdoblje razvoja Weba obilježeno je stvaranjem statičnih stranica s HTML-hipertekstualnim poveznicama, pasivnim prijenosom informacija od poslužitelja do klijenta i jednosmjernom prirodom protoka informacija:

· tijek ručnog prikupljanja informacija od kreatora izvora do poslužitelja;

· tijek pasivne distribucije informacija od poslužitelja do klijenata.

To je razdoblje nastanka i brzog razvoja elektroničkih knjižnica i internetskih informacijskih kataloga.

Web 2.0 je interaktivni "sintaktički" web, kada su dijaloški sustavi resurs - korisnik, klijent - poslužitelj postali široko rasprostranjeni.

Ovo je web orijentiran na usluge, u kojem se razvio interaktivni informacijski proces između korisnika i poslužitelja, tražilica i e-trgovine.

Generiranje protoka informacija bilo je u rukama samih korisnika, a vlasnici stranica uglavnom su bili ograničeni na stvaranje i održavanje infrastrukture.

Sustavi za pronalaženje informacija - njihovi hiperposlužitelji, roboti i korisnička sučelja - postali su srž weba. Njihovo pretraživanje, sortiranje, rangiranje i algoritmi sučelja temeljili su se na frekvencijsko-frekvencijskoj analizi informacija. Roboti tražilica su aktivni izviđači i pasivni moderatori mreže zbog primarnog indeksiranja informacija.

10. Razvoj web tehnologija. Web 3.0, semantički web.

Web 3.0 je semantički web – “dio globalnog koncepta razvoja Interneta, čija je svrha ostvariti mogućnost strojne obrade informacija dostupnih na World Wide Webu. Glavni naglasak koncepta je na radu s metapodacima koji jedinstveno karakteriziraju svojstva i sadržaj izvora World Wide Weba, umjesto tekstualne analize dokumenata koji se trenutno koriste.” To jest, to je neka vrsta mreže iznad mreže koja sadrži metapodatke o resursima World Wide Weba i postojanju paralelno s njima. Na temelju automatiziranih informacijskih procesa između poslužitelja.

To postaje moguće zahvaljujući uvođenju semantičkih alata: od semantičkog označavanja teksta izvora do inteligentnih algoritama koji razumiju značenje ljudskih fraza.

Pojavilo se mrežno, “cloud” računalstvo, preuzimajući kontrolu nad privatnim informacijskim resursima unutar hiper-poslužitelja Weba.

Tehnologije za izradu web aplikacija postale su toliko sofisticirane da je letvica za korisnike i kreatore informacijskih resursa pala gotovo na nulu, a da od njih nije potrebno nikakvo znanje iz područja informacijske tehnologije.

Same mrežne tehnologije dižu se na razinu automatski funkcionirajućih mrežnih on-line aplikacija: sučelja za kreiranje resursa, semantičkih prevoditelja, izmjenjivača vijesti, analizatora pretraživanja i automatskih graditelja ciljanih baza podataka.

Osim internih međuposlužiteljskih sučelja, pojavljuju se neljudska sučelja s fizičkim svijetom: automatsko prikupljanje multimedijskih informacija, robotska softverska analiza informacija iz vanjskog svijeta, apsorpcija tih informacija od strane Web hiper-poslužitelja. Roboti ulaze u fazu aktivnog moderiranja sadržaja, cenzora koji određuju što se smije objaviti na Webu 3.0, a što ne..

11. Razvoj web tehnologija. Web usluge.

Web servis, web servis (eng. web service) je softverski sustav identificiran web adresom sa standardiziranim sučeljima. Web servisi mogu komunicirati međusobno i s aplikacijama trećih strana putem poruka temeljenih na određenim protokolima (SOAP, XML-RPC, REST itd.). Web usluga je jedinica modularnosti kada se koristi uslužno orijentirana arhitektura aplikacije.

Uobičajeno rečeno, web usluge su usluge koje se pružaju na internetu. U ovoj upotrebi termin zahtijeva pojašnjenje radi li se o pretraživanju, web pošti, pohranjivanju dokumenata, datoteka, knjižnih oznaka itd. Takve web usluge mogu se koristiti neovisno o računalu, pregledniku ili mjestu pristupa Internetu.

REST (Representational state transfer) je stil softverske arhitekture za distribuirane sustave kao što je World Wide Web, koji se obično koristi za izgradnju web usluga. Pojam REST skovao je 2000. godine Roy Fielding, jedan od autora HTTP protokola. Sustavi koji podržavaju REST nazivaju se RESTful sustavi.

Općenito, REST je vrlo jednostavno sučelje za upravljanje informacijama bez upotrebe dodatnih unutarnjih slojeva. Svaka informacija je jedinstveno identificirana globalnim identifikatorom, kao što je URL. Svaki URL pak ima strogo definiran format.

Korištenje REST-a za izgradnju web usluga.

Kao što znate, web servis je aplikacija koja radi na World Wide Webu i kojoj se pristupa preko HTTP protokola, a informacije se razmjenjuju u XML formatu. Stoga će format podataka koji se prenosi u tijelu zahtjeva uvijek biti XML.

Za svaku jedinicu informacije (info) definirano je 5 akcija. Naime:

Dobiti informacije/ (Indeks)– dobiva popis svih objekata.

GET /info/(id) (Pogled)– dobiva potpunu informaciju o objektu.

PUT /info/ ili POST /info/ (Stvoriti)– stvara novi objekt.

IZBRIŠI /info/(id) (Izbrisati)– briše podatke s identifikatorom (id).
Kao što vidite, REST arhitektura je vrlo jednostavna za korištenje. Po vrsti zahtjeva koji stigne možete odmah odrediti što radi bez razumijevanja formata (za razliku od SOAP-a, XML-RPC). Podaci se prenose bez upotrebe dodatnih slojeva, pa se REST smatra manje resursno intenzivnim, budući da ne morate analizirati zahtjev da biste razumjeli što bi trebao učiniti i ne morate prevoditi podatke iz jednog formata u drugi.

12. HTTP protokol. Struktura hipertekstualnog dokumenta. Osnovni standardi.

HTTP je široko korišten protokol za prijenos podataka, izvorno namijenjen za prijenos hipertekstualnih dokumenata (to jest, dokumenata koji mogu sadržavati poveznice koje omogućuju navigaciju do drugih dokumenata).

HTTP protokol uključuje korištenje strukture prijenosa podataka klijent-poslužitelj. Klijentska aplikacija generira zahtjev i šalje ga poslužitelju, nakon čega poslužiteljski softver obrađuje zahtjev, generira odgovor i šalje ga natrag klijentu. Klijentska aplikacija tada može nastaviti slati druge zahtjeve koji će biti obrađeni na isti način.

Struktura hipertekstualnog dokumenta.

Pod, ispod hipertekstualni dokument razumjeti tekst koji sadrži posebne elemente koji, kada im se pristupi, vode do prijelaza na drugi dokument. Ovi elementi se nazivaju hiperveze a može se izvesti u obliku teksta, gumba, slike itd. Veze se također mogu koristiti za skok na različite dijelove istog dokumenta (u ovom slučaju, poveznica se zove sidro ili sidro).

Počnimo sa strukturom HTML dokumenta. U jednostavnom obliku, možete ga napisati na sljedeći način:







Spremite dokument pod imenom index.html i otvorite ga u pregledniku. Što vidimo? Ništa - prazna stranica. Pogledajmo ovaj primjer i počnimo ga ispunjavati.

HTML elementi su oznake. Oznake su ključne riječi u uglastim zagradama. Oznake mogu biti pojedinačne (na primjer, vodoravna traka


) ili u paru. U drugom slučaju, element se sastoji od uvodne oznake (na primjer, ) i završnu oznaku (). Učinak elementa proteže se na područje između početnih i završnih oznaka.

Cijeli hipertekstualni dokument sadržan je unutar html elementa (tj. između I). Ovaj element sadrži još dva elementa - naslov dokumenta (element glave), koji sadrži servisne informacije o dokumentu i tijelo dokumenta (element ), koji sadrži informacije prikazane u prozoru preglednika.

Gornja struktura dovoljna je za izradu jednostavnih HTML dokumenata za osobnu upotrebu, ali ne zadovoljava standard. Glavna pogreška je što se ne navodi u kojem je standardu dokument prikazan. Standard se ispisuje u prvom retku prije oznake . Pogledajmo koji osnovni standardi postoje.

Za HTML 4.01

Za XHTML 1.0

Za XHTML 1.1

Strict, Transitional, Frameset - znači striktna (izgled ne smije sadržavati odstupanja od standarda) specifikacija, prijelazna (pogreške se zanemaruju, za lutke) i za stranice koje koriste okvire (postoje li još takve stvari?). Vrsta dokumenta razlikuje velika i mala slova, pa je bolje kopirati ga iz ovdje danih primjera kako biste izbjegli pogreške.

Postoje i drugi standardi; kreirajte predložak, mi ćemo se usredotočiti na prvi s popisa (možemo jednostavno izmijeniti predložak kako bi odgovarao vašoj vrsti dokumenta).

Prijeđimo na odjeljak zaglavlja. Određuje naslov stranice (element naslova), META podatke i druge servisne informacije. Ovdje ćemo se usredotočiti samo na zaglavlje; razmotrit ćemo preostale elemente u odgovarajućim temama (navest ćemo samo dva elementa odgovorna za kodiranje i CSS).

Dodajte liniju unutar elementa glave Struktura dokumenta i otvorite stranicu u pregledniku. U gornjoj gornjoj liniji preglednika vidimo ono što smo naveli unutar naslovnog elementa. Ove informacije također koristi preglednik za označavanje veza kada stranicu označite knjižnom oznakom.

Da bismo ispravno prikazali stranicu, moramo odrediti u kojem je kodiranju naš dokument napisan. Da biste to učinili, dodajte liniju

Ovdje označavamo standardno Windows kodiranje windows-1251. Naravno, nije dovoljno to naznačiti; potrebno je da sam dokument bude upisan u ovom kodiranju. Standardno je i utf-8 kodiranje (Unicode, podržava prošireni skup znakova).

Također ćemo naznačiti format za kaskadne stilske listove pomoću linije

Tijelo dokumenta (element tijela) sadrži vizualne informacije, tj. onaj koji će biti izravno prikazan u prozoru preglednika. Dodajte redak "Kôd dokumenta sadrži ispravnu strukturu."

Dakle, konačna stroga verzija (koju možemo koristiti kao predložak za druge dokumente) je sljedeća:

Struktura dokumenta Šifra dokumenta sadrži ispravnu strukturu

Kao rezultat, dobili smo predložak dokumenta za standard koji smo odabrali.

HTML5: Za sve dokumente.

HTML 4.01: Stroga HTML sintaksa. Prijelazna HTML sintaksa. HTML dokument koristi okvire.

XHTML 1.0: Striktna XHTML sintaksa. XHTML prijelazna sintaksa. Dokument je napisan u XHTML-u i sadrži okvire. XHTML mobilni profil, dodaje specifične elemente za mobilne telefone.

XHTML 1.1: Ova definicija nema podjelu na vrste, sintaksa je ista i poštuje jasna pravila.

Element namijenjen je označavanju vrste tekućeg dokumenta - DTD (definicija vrste dokumenta, opis vrste dokumenta). Ovo je potrebno kako bi preglednik razumio kako interpretirati trenutnu web stranicu, jer HTML postoji u nekoliko verzija, a postoji i XHTML (EXtensible HyperText Markup Language), koji je sličan HTML-u, ali se razlikuje u sintaksi. Kako se preglednik „ne bi zbunio“ i shvatio po kojem standardu treba prikazati web stranicu, potrebno je u prvoj liniji koda postaviti .

Pod hrpom web aplikacija mislimo na razne softverske proizvode otvorenog koda: operativni sustav, web poslužitelj, poslužitelj baze podataka i okruženje izvršnog koda. Najpoznatiji i najčešći stack je LAMP. Ovo je akronim za skup web aplikacija temeljen na besplatnim rješenjima otvorenog koda.

SVJETILJKA-akronim koji označava skup poslužiteljskog softvera široko korištenog na World Wide Webu. LAMP je dobio ime po prvim slovima svojih sastavnih komponenti:

    L inux operativni sustav Linux;

    A pache- web poslužitelj;

    M ariaDB/ M ySQL-DBMS;

    P HP-ov programski jezik koji se koristi za izradu web aplikacija (uz PHP, mogu biti uključeni i drugi jezici, kao što su Perl i Python).

Akronim LAMP može se koristiti za označavanje:

    Infrastruktura web poslužitelja

    Paradigme programiranja

    Programski paket

Iako u početku ovi softverski proizvodi nisu dizajnirani posebno za međusobni rad, ova je kombinacija postala vrlo popularna zbog svoje fleksibilnosti, performansi i niske cijene (sve komponente su otvorenog koda i mogu se besplatno preuzeti s interneta). LAMP je uključen u većinu distribucija Linuxa i dostupan je od mnogih hosting tvrtki.

Linux osigurava prijem/prijenos zahtjeva (kontrolira hardver) i jezgra je za sve više - poslužitelj, DBMS, jezičnu podršku.

Instalacija na Ubuntu

Sljedeći paketi moraju biti instalirani:

Nakon pokretanja apt-get update za ažuriranje lokalnog popisa paketa, možete instalirati te pakete jednom apt-get install naredbom:

Nakon pokretanja gornje naredbe, od vas će se tražiti da instalirate ove pakete i neke druge ovisnosti. Pritisnite "y", a zatim ENTER za nastavak i slijedite ostale upute za postavljanje administratorske lozinke za MySQL.

To će vam omogućiti instaliranje minimalnog skupa PHP proširenja potrebnih za korištenje PHP-a s MySQL-om.

Značajke i prednosti Linux OS-a

Besplatno.

Pouzdanost. Ispravan rad hardvera vašeg računala omogućit će Linuxu da radi godinama bez ponovnog pokretanja ili zamrzavanja. A tipka Reset nikad neće biti potrebna.

Sigurnost. U Linuxu praktički nema virusa. Sam dizajn operativnog sustava isključuje rad zlonamjernih programa.

Otvoreni izvor. To omogućuje korištenje i modificiranje koda po želji.

Glavne prednosti Apachea su pouzdanost i fleksibilnost konfiguracije. Omogućuje vam povezivanje vanjskih modula za pružanje podataka, korištenje DBMS Za ovjera korisnicima, mijenjati poruke o pogreškama itd.

Fleksibilnost MySQL DBMS-a osigurana je podrškom za veliki broj tipova tablica: korisnici mogu odabrati obje vrste tablica MojISAM, podržava pretraživanje cijelog teksta i tablice InnoDB, podržavajući transakcije na razini pojedinačnog zapisa. Štoviše, MySQL DBMS dolazi s posebnim tipom tablice EXAMPLE koji demonstrira principe stvaranja novih tipova tablica. Zahvaljujući otvorenoj arhitekturi i GPL licenciranju, u MySQL DBMS-u stalno se pojavljuju nove vrste tablica.

PHP - skriptni jezik opće namjene, intenzivno se koristi za razvoj web aplikacija. Trenutno ogromna većina podržana hosting provideri i jedan je od vodećih među jezicima koji se koriste za stvaranje dinamičke web stranice .

U ovom ćemo članku pogledati slobodno distribuiran i praktički besplatan skup softvera pod nazivom LAMP. Koja je točna kratica za ovu kraticu? Sastoji se od 4 popularne tehnologije koje su kombinirane u ovoj kombinaciji:Linux- operacijski sustav;- web poslužitelj;MySQL- DBMS; - programski jezik koji se koristi za stvaranje web izvora.

Ovaj skup softvera instaliran je na poslužitelju za prikaz dinamičkih web stranica i web aplikacija. Ova vam platforma omogućuje instalaciju (postavljanje) većine vrsta web stranica i mrežnog softvera na vašem poslužitelju.

LAMP kombinacija je:

  1. Linux poslužitelj OS za obavljanje potrebnih zadataka;
  2. web poslužitelj Apache za koji su kreirani brojni dodatni moduli koji rješavaju pitanje zajedničkog rada web poslužitelja i skripti napisanih u različitim programskim jezicima;
  3. poslužiteljski dinamički skriptni jezik PHP (ili Perl);
  4. MySQL DBMS, koji pokazuje izvrsnu brzinu izvršavanja SQL upita i idealan je za male i srednje projekte. MySQL radi na i, i posebno je jednostavan za korištenje.

Zašto bi LAMP mogao biti potreban?

  • ako trebate okruženje za web razvoj i testiranje aplikacija napisanih za LAMP. Ovo se odnosi i na vaše vlastite aplikacije i na bilo koji CMS koji vam je potreban. Možete raditi na Windowsima i Ubuntuu;
  • ako trebate stvoriti produktivan web poslužitelj za hosting vaših projekata na namjenskom poslužitelju;
  • ako trebate poslužitelj za sustave kontrole verzija;
  • za administraciju samostalnog učenja;
  • u ekonomske svrhe, za stvaranje vlastitog poslužitelja.

Kako težak prednost ovog sklopa : Izvrstan je za brzo postavljanje aplikacije zbog svoje jednostavne konfiguracije, ali još uvijek nudi malo u pogledu skalabilnosti i izolacije komponenti.

Među nedostaci takvog sklopa treba istaknuti sljedeće:

Aplikacija i baza podataka dijele iste resurse poslužitelja (CPU, memorija, I/O, itd.), što rezultira lošim performansama i otežava određivanje izvora (aplikacija ili baza podataka) ovog problema. Postoje i prepreke za horizontalno skaliranje.

Instaliranje LAMP-a (Linux + Apache + MySQL + PHP/Perl/Python) je prilično široko korištena opcija za postavljanje Ubuntu poslužitelja. Postoji velik broj aplikacija koje su otvorenog koda i napisane pomoću LAMP aplikacijskog skupa. Popularne LAMP aplikacije uključuju wiki enciklopedije, sustave za upravljanje sadržajem (CMS) i aplikacije za upravljanje kao što je phpMyAdmin.

Važna prednost LAMP-a je fleksibilnost u odabiru baza podataka, web poslužitelja i skriptnih jezika. Trenutne zamjene za MySQL su PostgreSQL i SQLite. Python, Perl i Ruby mogu se zamijeniti PHP-om. A Nginx, Cherokee i Lighttpd su alternative Apacheu.

Za brzu instalaciju LAMP-a koristite tasksel. Tasksel je Debian/Ubuntu alat koji instalira više zavisnih paketa na vaš sustav kao jedan zadatak.

Ako trebašpostaviti LAMP na naše VPS poslužitelje , kontaktirajte našu 24/7 tehničku podršku! Društvo Hyper Host™želi vam ugodan rad!

Detaljnije o tehnologijama koje podržava HyperHost hosting.

9946 puta 2 puta pogledano danas

Kada govore o Apacheu, MySQL-u i PHP-u, većina administratora misli na LAMP stack, koji uključuje instaliranje ovog skupa softvera u jednu od mnogih distribucija Linuxa. Međutim, odabir FreeBSD-a u ovom slučaju može biti prikladniji.

U ovom ću vas članku provesti kroz sve korake koje trebate poduzeti da pokrenete FreeBSD s (L)AMP stogom i nekoliko administratorskih alata na golom poslužitelju i da sve zajedno radi bez ikakvih zastoja ili neočekivane situacije.

Korak 1. Instalirajte FreeBSD

Prvo trebamo sam operativni sustav. Idemo na službenu stranicu FreeBSD(www.freebsd.org), kliknite na poveznicu “Get FreeBSD Now”, zatim odaberite verziju OS-a (u trenutku pisanja teksta bile su dostupne dvije verzije: 8.2-RELEASE i 7.4-RELEASE), arhitekturu (amd64 ili i386) , kliknite na poveznicu i pogledajte popis dostupnih slika. Ukupno ih je pet: bootonly - boot slika za instalaciju preko mreže, disk1 - ISO slika za snimanje na CD, dvd1 - slika za snimanje na DVD, livefs - LiveCD bez grafičkog sučelja, memstick za pisanje na USB privjesak . U našem slučaju će odgovarati samo prvi i drugi, a ako na mreži nema DHCP poslužitelja, onda samo drugi (nema smisla preuzimati DVD sliku, jer CD sadrži sve što nam je potrebno).

Dakle, preuzmite ISO sliku, izrežite je u prazan komad, umetnite u pogon poslužitelja i resetirajte/uključite. Čekamo da se OS učita. Nakon dovršetka preuzimanja, na zaslonu bi se trebao pojaviti prozor za odabir zemlje i izbornik sysinstall instalacijskog programa koji se sastoji od dvanaest stavki. Zanima nas samo jedan od njih: "Express", koji vam omogućuje da instalirate operativni sustav što je brže moguće, preskačući mnoge poruke upozorenja, pitanja i postavke. Odaberite ga i kliknite .

Pojavit će se prozor programa za particioniranje diska. Ovdje možete jednostavno kliknuti koristiti cijeli disk, ili za stvaranje nove particije u slobodnom području. Međutim, imajte na umu da FreeBSD koristi dvorazinsku shemu particioniranja diska u kojoj jedna standardna DOS particija (zvana odsječak u FreeBSD terminologiji) može sadržavati nekoliko BSD particija, tako da ćete u ovom koraku morati stvoriti samo jednu particiju. Kada završite, kliknite za izlazak iz programa.

Sljedeći prozor: pitanje o instaliranju bootloadera, samo kliknite da instalirate bootloader u MBR. Odmah nakon toga pojavit će se prozor koji označava prethodno kreiranu particiju u BSD particije. Ovdje možete eksperimentirati, ali ja bih preporučio samo klik tako da će program sam particionirati disk. Sljedeći klik za potvrdu promjena.

Sljedeći prozor: odabir izvora instalacije. Prema zadanim postavkama, CD/DVD se koristi kao izvor, pa samo kliknite . Potvrdite svoj izbor pritiskom na u sljedećem prozoru. Sada će započeti proces kopiranja datoteka, nakon čega će se na zaslonu prikazati poruka s pitanjem treba li se vratiti na glavni izbornik instalacijskog programa. Klik , Nadalje , "Da i . Operativni sustav mora se ponovno pokrenuti. Ne zaboravite ukloniti instalacijski disk iz pogona kako bi se OS mogao pokrenuti s tvrdog diska.

Kada je preuzimanje završeno, unesite korisničko ime root i pristupite tumaču naredbi.

Korak 2: Postavljanje

Upravo smo instalirali FreeBSD, ali on još nije spreman djelovati kao punopravni poslužitelj: mreža ne radi, root nema lozinku, samo je jedan korisnik na sustavu. Popravimo ovo. Prije svega, postavimo root korisničku lozinku:

Na ekranu će se pojaviti pitanja na koja većina možda neće dobiti odgovor (kliknite ), važni su samo korisničko ime, zadani tumač naredbi (bolje je odabrati tcsh) i lozinka. Na kraju će naredba prikazati rezultirajući popis korisničkih postavki, kao odgovor na koji trebate unijeti riječ "da", a kao odgovor na sljedeće pitanje unesite "ne".

Kako bi korisnik dobio root prava, dodajte ga u grupu kotača:

# pw groupmod wheel -m korisničko ime

Popravimo datoteku /etc/fstab tako da nitko ne može pokrenuti datoteke koje se nalaze na /tmp i /var particijama. Da biste to učinili, dodajte zastavice "noexec" u polje Opcije svakog od ovih odjeljaka.

Postavimo stroža ograničenja pristupa sistemskim datotekama:

# 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

Sada moramo konfigurirati mrežnu vezu. Na FreeBSD-u su sve globalne postavke pohranjene u datoteci /etc/rc.conf, pa je otvorite pomoću editora i dodajte sljedeće retke:

# ee /etc/rc.conf
hostname="host.com"
ifconfig_em0="inet 1.2.3.4 mrežna maska ​​0xffffffff"
defaultrouter="5.6.7.8"

Ovdje em0 u drugom redu je naziv mrežnog sučelja koje se konfigurira. Popis svih dostupnih mrežnih sučelja može se dobiti pomoću naredbe ifconfig. Možete navesti DHCP kao vrijednost opcije, tada će se dhclient koristiti za konfiguraciju sučelja. Također ćemo odmah dodati nekoliko opcija koje su važne za nas:

# ee /etc/rc.conf

Onemogućite prosljeđivanje paketa i

zabilježi sve pokušaje preusmjeravanja

icmp_drop_redirect="DA"
icmp_log_redirect="DA"

Onemogući odgovore na zahtjeve za emitirani ping

icmp_bmcastecho="NE"

Očistite direktorij /tmp svaki put kada se pokrenete

clear_tmp_enable="DA"

Spriječite ažuriranje /etc/motd datoteke pri svakom pokretanju sustava

update_motd="NE"

Ne prihvaćamo pakete s istovremeno instaliranim

zastavice SYN i FIN

tcp_drop_synfin="DA"

Onemogući sendmail

sendmail_enable="NE"
sendmail_submit_enable="NE"

Omogući SSH

sshd_enable="DA"

Za izlaz iz uređivača kliknite i dvaput . Dodajmo adresu DNS poslužitelja u /etc/resolv.conf:

# ee /etc/resolv.conf
poslužitelj imena 8.8.8.8

Da bi mrežne postavke stupile na snagu, pokrenite sljedeću naredbu:

# /etc/rc.d/netif ponovno pokretanje

Provjera dostupnosti mreže:

# ping execbit.ru

Dodajmo nekoliko korisnih redaka u datoteku /etc/sysctl.conf:

# ee /etc/sysctl.conf

Ne odgovarajte na pokušaje povezivanja na zatvorenim portovima

(spasit će vas od nekih vrsta DoS napada i otežati

skeniranje portova)

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

Dopusti samo rootu pregled popisa svih procesa

kern.ps_showallprocs=0

Zaštitimo SSH poslužitelj od brutalnih napada:

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

/etc/rc.d/sshd ponovno pokrenite

SSH poslužitelj će sada prekinuti 50% novih veza ako postoji pet netočnih prijava. Kada ih bude deset, poslužitelj će potpuno prestati odgovarati.

Kada koristite ekspresnu instalaciju, sustav portova (okvir za instaliranje softvera treće strane u OS) nije automatski instaliran u FreeBSD, pa to moramo učiniti ručno (ovo je dobro, jer ćemo tako dobiti najnoviji isječak priključaka, bez zastarjelog softvera koji curi):

# portsnap dohvati ekstrakt

Također možete ažurirati osnovni sustav, ali to nije potrebno:

# dohvaćanje ažuriranja freebsd-a

freebsd-update instalacija

isključivanje -r sada

Nakon što se portovi ažuriraju, na sustav ćemo instalirati alat rkhunter koji je potreban za hvatanje rootkita koji bi u budućnosti mogli biti instalirani na sustav:

# cd /usr/ports/security/rkhunter

učiniti instalaciju čistom

Uredimo konfiguracijsku datoteku /usr/local/etc/rkhunter.conf tako da opcija MAIL-ON-WARNING sadrži email na koji treba slati poruke o otkrivenim anomalijama.

Prisilimo alat da sam provjeri ima li ažuriranja:

# rkhunter --ažuriranje

Nakon toga izradit ćemo snimku sistemskih datoteka, koja će se koristiti kao referenca prilikom traženja rootkita:

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

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

To je to, sada će sve poruke o sumnjivim aktivnostima sustava biti smještene u dnevnik /var/log/rkhunter.log i poslane na e-mail naveden u konfiguracijskoj datoteci.

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

Na kraju ćemo instalirati Webmin, web sučelje za udaljeno upravljanje poslužiteljem (oni koji radije koriste SSH za administraciju mogu preskočiti ovaj korak):

# cd /usr/ports/sysutils/webmin

učiniti instalaciju čistom

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

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

Na pitanja se može odgovoriti klikom , međutim, kada je riječ o unosu lozinke (redak “Login password:”), trebali biste unijeti lozinku za pristup Webminu (bolje je da se razlikuje od ostalih lozinki). Zatim možete pokrenuti Webmin:

# /usr/local/etc/rc.d/webmin početak

I testirajte njegov rad unosom adrese “https://host.com:10000/” u adresnu traku najbližeg preglednika.

AMP

Sada je vrijeme da instalirate AMP stack, odnosno Apache web server, MySQL bazu podataka i PHP interpreter. Pozabavimo se prvo Apacheom. Idite na portove i instalirajte najnoviju verziju:

# cd /usr/ports/www/apache22

make config g install clean

Na ekranu bi se trebao pojaviti prozor konfiguratora s kojim možete odabrati instalaciju opcijskih komponenti poslužitelja. Ovdje nema smisla ništa mijenjati, pa možete sigurno pritisnuti . Nakon dovršetka montaže i instalacije, ne zaboravite dodati poslužitelj u automatsko pokretanje (ako SSL podrška nije potrebna, možete preskočiti drugi red):

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

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

Također biste trebali dodati upute u konfiguracijsku datoteku za učitavanje accf_http modula, koji će bufferirati HTTP veze, što će rasteretiti poslužitelj i pomoći u borbi protiv SYN poplave:

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

kldload accf_http

# cd /usr/ports/lang/php5

napravi config instalaciju čistom

Provjerite je li odabrana opcija "Build Apache module". Plus nekoliko proširenja za to:

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

napravi config instalaciju čistom

Važno je da u koraku konfiguracije PHP-a ne zaboravite označiti stavku “Podrška za MySQL bazu podataka”, koja prisiljava port sustav da instalira PHP modul za rad s MySQL-om. Bez toga ništa neće funkcionirati.

Sada otvorite Apache konfiguracijsku datoteku u uređivaču teksta (u FreeBSD-u je skrivena daleko: /usr/local/etc/apache22/ httpd.conf) i promijenite sljedeće u njoj:

1. Nakon redaka LoadModule dodajte sljedeća dva retka:

AddType aplikacija/x-httpd-php.php
AddType aplikacija/x-httpd-php-source.phps

2. Pronađite opciju ServerAdmin i unesite svoju e-mail adresu kao njezinu vrijednost:

Administrator poslužitelja [e-mail zaštićen]

3. U opciji DocumentRoot određujemo direktorij u kojem će biti pohranjene sve datoteke naše web stranice:

DocumentRoot "/home/www/data"

Ne zaboravite stvoriti ovaj direktorij:

# mkdir /home/www

mkdir /home/www/data

mkdir /home/www/cgi-bin

Radije koristim /home/www kao korijenski direktorij jer, prvo, /home direktorij se obično nalazi na najvećoj particiji (automatski konfigurator particije koji smo koristili tijekom instalacije dodjeljuje većinu prostora /home), i drugo, drugo , s njim je lakše raditi nego s nekim /usr/local/www/apache22/data skrivenim u mnogim poddirektorijima.

4. Nalazimo sljedeći redak:

I mijenjamo ga tako da je DocumentRoot naveden kao direktorij:

5. Mijenjamo sljedeće retke:


DirectoryIndex index.html


DirectoryIndex index.php index.html

6. Unutar direktive zamijeni red:

ScriptAlias ​​/cgi-bin/ "/usr/local/www/apache22/cgi-bin/"

Ovaj:

ScriptAlias ​​/cgi-bin/ "/home/www/cgi-bin/"

7. Sljedeći redak:

Zamijenite ovim:

Spremite datoteku i izradite datoteku PHP postavki:

# cp /usr/local/etc/php.ini-preporučeno /usr/local/etc/php.ini

Ovo će biti dovoljno da Apache ispravno radi zajedno s PHP-om. Sada možete početi instalirati MySQL. Idemo do luka i radimo sljedeće:

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

make WITH_OPENSSL=da instaliraj čisto

Kreirajmo rudimentarnu konfiguracijsku datoteku, koja će biti dovoljna za prvi put:

# ee /etc/my.cnf
port=29912
port=29912
veza-adresa=127.0.0.1

Dodajte MySQL u pokretanje i pokrenite poslužitelj:

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

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

Postavimo lozinku za pristup bazi podataka:

# mysqladmin -u root lozinka lozinka

mysql -u root -p

Sada bi MySQL trebao funkcionirati normalno, ali ručno upravljanje bazama podataka nije baš zgodno, osim toga, za neke će ovo biti prvo iskustvo instaliranja MySQL-a, a nije tako lako to brzo shvatiti. Stoga, instalirajmo MySQL web sučelje za upravljanje pod nazivom PHPMyAdmin:

# cd /usr/ports/databases/phpmyadmin

učiniti instalaciju čistom

Uredimo konfiguracijsku datoteku PHPMyAdmin navođenjem lozinke za pristup web sučelju:

# cd /usr/local/www/phpMyAdmin

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

ee config.inc.php

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

Sada ponovno otvorite Apache konfiguracijsku datoteku i učinite sljedeće:

1. Na odjeljak dodajte sljedeći redak:

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

2. Do kraja odjeljka dodajte sljedeće retke:


Narudžba dopusti, odbij
Dopusti od svih

Ovdje, umjesto "Dopusti od svih", možete dodati nešto poput "Dopusti od 123.456.789.0/12" da omogućite pristup PHPMyAdmin-u samo iz određene podmreže. Ponovno pokrenite Apache:

To je to, (L)AMP bi sada trebao raditi.

HTTPS

PHPMyAdmin zahtijeva HTTPS podršku za ispravan rad i vrlo je moguće da će vam u budućnosti trebati ovaj protokol za uspostavljanje sigurne šifrirane veze između klijenta i stranice. Stoga ćemo se pobrinuti da ga Apache razumije.

Prvo, popravimo OpenSSL konfiguracijsku datoteku (/etc/ssl/openssl.cnf) dodavanjem sljedećih redaka u nju:

# Direktorij za pohranu certifikata
dir = /root/sslCA

Razdoblje valjanosti certifikata (~10 godina)

zadani_dani = 3650

Sada pripremimo imenik i izradimo certifikate za vlastito tijelo za izdavanje certifikata:

mkdir sslCA

chmod 700 sslCA

chmod 700 sslCA

mkdir privatno

cd sslCA

openssl req -novo -x509 -dani 3650 -ekstenzije v3_ca

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

Provjerimo jesu li certifikati uspješno kreirani:

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

Generirajmo certifikate za Apache i smjestimo ih u /etc/ssl direktorij:

# cd /root/sslCA

openssl req -novi -čvorovi -out hostname-req.pem

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

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

Ime host-cert.pem -infiles ime host-req.pem

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

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

Ponovno otvorite Apache konfiguracijsku datoteku, pronađite sljedeći redak i uklonite komentare iz njega:

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

Uključi etc/apache22/extra/httpd-ssl.conf

U datoteci /usr/local/etc/apache22/extra/http-ssl.conf vršimo sljedeće promjene:

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

Naziv HTTPS poslužitelja

Naziv poslužitelja ssl.host.com

Put do datoteke koja sadrži certifikat i ključ

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

Isto kao u glavnoj konfiguraciji

DocumentRoot "/home/www/data"

Gdje pisati dnevnike

ErrorLog "/var/log/httpd-error.log"
Dnevnik prijenosa "/var/log/httpd-access.log"

Ponovno pokrenite Apache:

# /usr/local/etc/rc.d/apache22 ponovno pokretanje

Što je sljedeće?

U ovom sam članku pokazao kako dobiti potpuno funkcionalan (L)AMP stog koji radi na FreeBSD-u (tako da je više FAMP), a sve što sada morate učiniti je preuzeti svoj omiljeni motor web stranice i implementirati ga na svoj /home/www imenik /data (ne zaboravite staviti skripte u /home/www/cgi-bin). Za sve ostalo će se pobrinuti (L)AMP.

LAMP stack temelj je za web-mjesta s hostom Linuxa i softverski snop Linux, Apache, MySQL i PHP (LAMP).

LAMPA Stalak za:-

  1. L (Linex OS)
  2. A(Apache[ Poslužitelj lokalnog klijenta])
  3. M (MySQL baza podataka)
  4. P (PHP)

LAMP Stack je skup softvera otvorenog koda koji se može koristiti za izradu web stranica i web aplikacija. LAMP je akronim, a ti se skupovi obično sastoje od operativnog sustava Linux, Apache HTTP poslužitelja, sustava za upravljanje relacijskom bazom podataka MySQL i programskog jezika PHP.

    Linux: Operativni sustav (OS) čini naš prvi sloj. Linux postavlja temelje za model hrpe. Svi ostali slojevi rade iznad ovog sloja. Linux je sloj najniže razine i pruža operativni sustav. Linux zapravo pokreće svaku od ostalih komponenti. Međutim, niste posebno ograničeni na Linux; možete jednostavno pokrenuti svaku od ostalih komponenti na Microsoft®; Windows®;, Mac OS X ili UNIX® ako je potrebno.

    Apache: Drugi sloj sastoji se od softvera web poslužitelja, obično Apache web poslužitelja. Ovaj sloj se nalazi na vrhu Linux sloja. Web poslužitelji odgovorni su za prevođenje s web preglednika na njihovu ispravnu web stranicu. Apache pruža mehaniku za dostavljanje web stranice korisniku. Apache je stabilan poslužitelj sposoban za kritične zadatke i pokreće više od 65 posto svih web stranica na Internetu. PHP komponenta zapravo se nalazi unutar Apachea, a vi koristite Apache i PHP zajedno za stvaranje svojih dinamičkih stranica.

    MySQL: Naš treći sloj je mjesto gdje žive baze podataka. MySQL pohranjuje detalje koji se mogu pretraživati ​​skriptiranjem za izradu web stranice. MySQL se obično nalazi na vrhu Linux sloja uz Apache/sloj 2. U vrhunskim konfiguracijama, MySQL se može prenijeti na zasebni host poslužitelj. MySQL pruža stranu LAMP sustava za pohranu podataka. Uz MySQL, imate pristup vrlo sposobnoj bazi podataka prikladnoj za pokretanje velikih i složenih stranica. Unutar vaše web aplikacije, svi vaši podaci, proizvodi, računi i druge vrste informacija nalazit će se u ovoj bazi podataka u formatu koji možete jednostavno postavljati upitima pomoću SQL jezika.

    PHP: Sjediti na njima svima je naš četvrti i posljednji sloj. Sloj skriptiranja sastoji se od PHP-a i/ili drugih sličnih web programskih jezika. Web stranice i web aplikacije pokreću se unutar ovog sloja. PHP je jednostavan i učinkovit programski jezik koji predstavlja ljepilo za sve ostale dijelove LAMP sustava. PHP koristite za pisanje dinamičkog sadržaja koji može pristupiti podacima u MySQL bazi podataka i nekim značajkama koje nudi Linux.