Kako podesiti pametne telefone i računare. Informativni portal
  • Dom
  • Savjet
  • Feedback intitle datalife upravljačka ploča motora. Konfiguriranje DataLife Engine-a

Feedback intitle datalife upravljačka ploča motora. Konfiguriranje DataLife Engine-a

Samo u informativne svrhe. Uprava nije odgovorna za njegov sadržaj. Besplatno preuzimanje .


Dragi prijatelji,

Predstavljamo vam novu verziju naše DataLife Engine v.13.1 NULLED skripte. U ovom izdanju očekuje se da dodate podršku za automatsko ažuriranje dodataka na nove verzije i niz drugih poboljšanja u sistemu dodataka, dodate nove funkcije za praktičniji rad sa dodatnim poljima, dodate novu vrstu ocjene "Sviđa mi se i ne sviđa mi se ", poboljšana pretraga publikacija u admin panelu, i još mnogo toga, pročitajte više o ovome i više...

Pripremljene su i sprovedene sledeće promene:


1. Dodata mogućnost automatskog ažuriranja skripte u admin panelu u okviru iste verzije skripte, u slučajevima kada su, na primjer, objavljeni popravci pronađenih ranjivosti ili drugih grešaka. U slučajevima kada se izvrše promjene u distribucijskom paketu unutar iste verzije, na primjer, kada se objave popravci za ranjivosti ili druge identificirane probleme sa skriptom, bit će moguće ažurirati skriptu na admin panelu u okviru ove trenutne verzije script.


2. Dodata mogućnost automatskog ažuriranja dodataka na stranici... Da biste to učinili, u dodatku se postavlja URL za primanje informacija o dostupnosti nove verzije. Na ovom URL-u, stranica programera dodatka bi trebala vratiti niz u JSON formatu, koji bi trebao sadržavati informacije o trenutnoj verziji dodatka, kao i link za preuzimanje trenutne verzije dodatka. Na primjer, dati URL bi trebao vratiti vrijednost ("verzija": "2.0", "url": "https://dle-news.ru/test/test.zip")... Nakon toga, prilikom provjere ažuriranja, administrator stranice će moći jednim klikom saznati o dostupnosti novih verzija dodatka i ažurirati dodatke na admin panelu.


3. Za sistem upravljanja dodacima, dodata mogućnost navedite broj zamjena koje treba izvršiti za svaki kriterij pretraživanja u datoteci. Na primjer, trebate pronaći i zamijeniti neki kod u datoteci koji se pojavljuje nekoliko puta u ovoj datoteci, možete odrediti koliko puta ovaj kod treba zamijeniti. Da biste zamijenili sva pojavljivanja ovog koda, možete ostaviti ovaj parametar prazan, tako da će se zamjena izvršiti gdje god se nađe kod koji ste naveli.


4. Dodata mogućnost za sistem upravljanja dodacima automatsko brisanje dodatnih fajlova učitanih sa dodatkom u arhivu ako se dodatak ukloni sa sajta. Da biste to učinili, u parametre dodatka dodaje se mogućnost odabira da li želite izbrisati dodatne datoteke ili ne. Dakle, možete samostalno odlučiti da li je potrebno očistiti server od dodatnih datoteka ako se ukloni sa stranice ili ih treba ostaviti.

5. Za sistem upravljanja dodacima, dodata mogućnost koristite oznaku (THEME) u nazivima fascikli u ZIP arhivama. Prilikom učitavanja arhive kroz sistem dodataka, ova oznaka će biti zamijenjena imenom korišćenog šablona. Na primjer, postavljanjem datoteke /templates/(THEME)/test.tpl u arhivu, vaš predložak će biti smješten u šablonu koji se koristi na stranici. Stoga, kada koristite složene dodatke koji sadrže uzorke datoteka predložaka, oni se mogu odmah učitati u željenu mapu koja sadrži predložak koji koristi korisnik.

6. Za sistem upravljanja dodacima, dodana mogućnost koristite kontrolne znakove funkcije preg_replace u akciji "Pronađi i zamijeni" u zamjenskom nizu, kao što je \\ 1, itd., čime se uklanjaju ograničenja za pronalaženje i zamjenu nekih kodova u DLE-u.


7. Za dodatna polja tipa "Slika" i "Galerija slika", dodala je mogućnost dodjeljivanja svake slike zasebno, njenog osobnog opisa, koji se također koristi kao HTML alt atribut, prilikom prikazivanja ovih dodatnih polja na stranici.


8. Za dodatna polja tipa "Galerija slika", dodana je mogućnost promjene redoslijeda sortiranja otpremljenih slika jednostavnim pomicanjem mišem. Nakon postavljanja slika, možete ih zamijeniti po želji. Također, otpremljene slike se mogu prenijeti u druga dodatna polja.


9. Dodana je nova vrsta ocjene "Sviđa mi se i ne sviđa mi se" za objave i komentare. koji vodi posebnu evidenciju i o broju lajkova i o broju nesviđanja. U tu svrhu dodane su nove oznake za šablone za prikaz publikacija i komentara: (sviđa mi se)- koji prikazuje broj lajkova, (dislike) - koji prikazuje broj nesviđanja, kao i tag tekst- koji prikazuje tekst u okviru oznake, ako je ova vrsta ocjene omogućena u postavkama.


10. U postavkama korisničkih profila u admin panelu dodata mogućnost postavite listu kategorija u koje je ovom korisniku dozvoljeno da dodaje publikacije. To će omogućiti, na primjer, novinarima da održavaju lične rubrike u kojima drugim novinarima (ili nekima od njih) nije dozvoljeno da objavljuju. Ili, naprotiv, isključiti novinara iz određene kategorije vijesti ako je, na primjer, u njoj nesposoban.

11. U postavkama korisničkih profila u admin panelu, dodata mogućnost uspostaviti listu pouzdanih kategorija u koje je ovom korisniku dozvoljeno da dodaje publikacije bez moderiranja. Takva personalizacija će omogućiti mnogo fleksibilnije razlikovanje prava, bez stvaranja gomile korisničkih grupa, uključujući grupe za svakog konkretnog novinara.


12. Za naprednu pretragu publikacija u administrativnom panelu, u odjeljku za uređivanje publikacija dodana je mogućnost odabira mjesta pretraživanja. Možete pretraživati ​​sav sadržaj, možete zasebno po naslovima, kratkom opisu, punom opisu i dodatnim poljima. Takođe, značajno su poboljšani algoritmi pretraživanja, radi što pravilnijeg pronalaženja publikacija.

13. Za naprednu pretragu publikacija u admin panelu, u odjeljku za uređivanje publikacija, dodana je mogućnost istovremenog pretraživanja u nekoliko kategorija koje možete izabrati.

14. Za oblak oznaka dodana je mogućnost korištenje simbola "&" i "#", što omogućava, na primjer, korištenje imena različitih marki u oblaku, na primjer, "H&M" itd.


15. U postavkama skripte u admin panelu, dodata mogućnost dozvole administraciji stranice da se prijavi na stranicu pomoću društvenih mreža. Kada je ova postavka omogućena, korisnici koji su u grupi administratora također se mogu prijaviti na stranicu koristeći svoje račune društvenih medija.


16. U admin panelu, u sekciji za uređivanje komentara, dodata mogućnost potražite komentare u tekstu. U ovom dijelu možete pretraživati ​​komentare koje trebate urediti, prema bilo kojoj ključnoj riječi. Ovo čini uređivanje komentara praktičnijim.


17. U admin panelu, u odeljku za upravljanje unakrsnim referencama, dodata mogućnost za grupne radnje na linkovima, postavite zamjenu "Samo na statičnim stranicama", kao i "Na statičnim stranicama, vijestima i komentarima".

18. Za pregled banera u odjeljku za upravljanje oglasima na admin panelu, dodano povezivanje stilova vašeg šablona iz datoteke preview.css. Dakle, možete vidjeti ispravniji dizajn vašeg reklamnog koda ako koristi klase iz vašeg predloška.

19. Za predložak za prikaz kratkih vijesti (shortstory.tpl) dodat koristeći oznake tekst koji u njima prikazuju priloženi tekst, ako nema publikacija po ovim kriterijumima. Dakle, možete ponovo dodijeliti standardnu ​​sistemsku poruku o odsustvu publikacija u bilo kojem posebnom dijelu web-mjesta, čineći je jedinstvenom, na primjer, za svaki odjeljak web-mjesta. Također, ove oznake se mogu koristiti u predlošcima koji se koriste za prilagođeni prikaz publikacija koristeći (custom ...) tag.


20. Za obrazac e-mail poruke koja se šalje pri vraćanju zaboravljene lozinke dodano je korištenje novih oznaka: (% losturl%) koji samo izlazi URL linka za resetovanje i generisanje nove lozinke, i (% ipurl%) koji samo izlazi URL linka za resetiranje IP blokiranja. Dakle, možete zasebno postaviti dizajn koji vam je potreban u slovu ovih veza, na primjer, u obliku dugmadi. Također možete, na primjer, odbiti prikazivanje veze za deblokiranje putem IP adrese, ako ne koristite ovu opciju na svojoj web stranici.

21. Poboljšan sistem za brisanje kategorija u admin panelu... Ako obrisana kategorija sadrži potkategorije koje su također podložne brisanju, tada će se sve radnje za publikacije koje sadrže izbrisanu kategoriju automatski proširiti na publikacije koje također sadrže obrisane potkategorije. I iste radnje će se primijeniti na ove publikacije u potkategorijama.


22. Za modul "Filtriraj po: IP, Login ili E-mail" dodata je mogućnost dodavanje blokiranih adresa ili prijava, ili e-mailova odjednom u cijele liste, a ne jednu po jednu. Ovo značajno ubrzava proces dodavanja ako već imate gotovu listu onoga što treba blokirati.


23. Za modul "Filtriraj po: IP, Login ili E-mail" dodata je mogućnost da uređivanje već postojećih pravila. Možete odabrati i urediti bilo koje pravilo bez potrebe za brisanjem i ponovnim dodavanjem.


24. Za modul "Filtriraj po: IP, Login ili E-mail" dodata je mogućnost odabir više ili svih dodanih pravila u isto vrijeme i masovno otključavanje ovih pravila jednim klikom.

25. Za modul "Filtriraj po: IP, Login ili E-mail" dodata podrška koristeći IPv6 adrese koje se mogu specificirati za blokiranje pristupa web lokaciji. Također je dodana mogućnost specificiranja IPv6 podmreža za blokiranje.

26. Dodata mogućnost specificiranja IPv6 adresa u korisničkom profilu iz koje je autorizacija dozvoljena za korisnika. Također, možete odrediti ne samo zasebnu adresu, već i IPv6 podmrežu.

27. Za modul prilagođenog sortiranja publikacija na sajtu prikazano pomoću (sort) oznake dodala je mogućnost postavljanja sortiranja za svaku određenu kategoriju, a ne za sve kategorije u isto vrijeme.

28. Za linkove objavljene u publikacijama, dodata mogućnost koristeći blok elemente kao što su "p", "div", itd. Ovo omogućava DataLife Engine-u da preciznije i ispravnije bude u skladu sa HTML5 standardima.

29. Dodata mogućnost dodavanja novih korisnika u kontrolnoj tabli DataLife Engine kada radite sa pločom pomoću pametnih telefona.

30. Izmjene su napravljene u radu komentara nalik na drvo... Ako je dostignuto maksimalno ugniježđenje za odgovore na komentare, onda u slučaju odgovora na komentar, ti odgovori ostaju u niti diskusije pri maksimalnom ugniježđenju. Ranije, kada je dostignuto maksimalno ugniježđenje, nije bilo moguće odgovoriti na komentar. Sada odgovor ostaje u svakom slučaju.

31. Za dodatna polja tipa "Unakrsne reference"., dodao je mogućnost korištenja dvostrukih navodnika i ampersanda u vrijednostima.

32. Ako je za šablon E-mail poruke koja se šalje prilikom oporavka zaboravljene lozinke uspostavlja se upotreba HTML formata za ovo pismo, tada će se veze koje generira oznaka (% lostlink%) u ovom predlošku formirati već u obliku gotovog HTML koda, a ne samo tekstualne veze.

33. Dodata mogućnost instalacije u postavke skripte sortiranje postova prema zadanim postavkama, prema broju komentara. Isto je dodano za prilagođavanje kriterija sortiranja prilikom pregledavanja kataloga.

35. Izvršene su izmjene u radu dodatnih oblasti, ako polje ima ograničenja za dodavanje po grupama korisnika. Ako je vrijednost dodatnog polja dodao korisnik koji na to ima pravo, a kasnije publikaciju uređuje korisnik koji nema pravo popunjavanja ovog polja, tada vrijednost ovog polja više nije obrisan, ali ostaje isti kao što ga je ranije popunio korisnik koji ima ovo pravo.

36. Ograničenje broja karaktera meta oznake Opis za kategorije je povećano na 300 karaktera... Maksimalna dužina sada odgovara maksimalnoj dužini koju je postavio Google pretraživač da bi se ove informacije pojavile u rezultatima pretraživanja.

37. Poboljšana pretraga sličnih vijesti na stranici. Prikazivanje povezanih vijesti postalo je relevantnije u smislu sortiranja pronađenih postova.

38. Poboljšana podrška za IPv6 adrese posetilaca sajta. U nekim specifičnim slučajevima, puna adresa možda neće stati u bazu podataka. Dužina polja je sada rezervisana prema RFC 4291 specifikaciji.

39. Poboljšano formiranje meta oznake og: description Open Graph protokola kada gledate kompletne vijesti. Formiranje se odvija ispravnije kada se dodatna polja za publikacije koriste kao glavni sadržaj.

40. Poboljšan rad sigurnosnog sistema DataLife Engine, u cilju što pravilnije provjere podataka o poddomenama, na nekom hostingu ima strukturu poddomena, u vidu podfoldera glavnog domena.

41. Dodata podrška za tel protokol: za linkove objavljene na sajtu koristeći BB tagove.

42. Ažurirani vizuelni uređivači TinyMCE i Froala na najnovije verzije... Ispravljen je veliki broj otkrivenih grešaka u ovim uređivačima.

43. Riješen problem koristeći u dodatnim poljima korisničkog profila polja tipa "Lista", u kojima su korištene vrijednosti pomoću simbola "|".

44. Riješen problem u kojem bi se u odjeljku za upravljanje dodacima, ako bi se promijenila radnja na datoteci u izborniku, neki simboli mogli pogrešno promijeniti u vrijednostima navedenim u poljima.

45. Problem riješen, u kojem je bilo nemoguće koristiti oznake za interne stranice stranice, a bilo je dozvoljeno koristiti samo za vanjske stranice.

46. ​​Problem riješen, u kojem je bilo nemoguće započeti ažuriranje stranice na novu verziju, ako je stranica bila u kodiranju različitom od UTF-8, dok je login ili lozinka administratora sadržavala slova napisana ćirilicom.

47. Riješen problem u kojem se iskačući prozor o dolasku novih osobnih poruka nije pojavljivao ako se korisnik samostalno odjavio sa svog naloga na stranici, a zatim ga ponovo ušao nakon nekog vremena.

48. Riješen problem kada uređivanje komentara u kontrolnoj tabli skripte nije radilo, ako je TinyMCE editor bio omogućen u postavkama skripte.

49. Problem riješen, koji nije prikazao broj dana tokom kojih možete dodavati komentare publikaciji, ako su takva ograničenja postavljena u postavkama skripte na admin panelu.

50. Problem riješen, u kojem dodatno polje tipa "Fajl koji se može preuzeti" nije prikazano na stranici kao link za preuzimanje datoteke, već je prikazano kao obična oznaka.

51. Ispravljene su otkrivene i ranije najavljene male greške u skripti.

Hajde da razgovaramo o meniju na dle web stranici. Tačnije, kako dodati vlastite stavke u meni, ili zamijeniti postojeće novima. Vrlo često, početnici koji su upravo instalirali ovaj CMS imaju pitanje: "Kako zamijeniti standardne stavke menija u standardnom predlošku svojim?" Ako se u wordpress-u to može učiniti bez uređivanja koda, onda je u dle-u situacija drugačija, ipak morate ući u kod i malo ga shvatiti. Međutim, nema ništa teško u dodavanju novih stavki, a nadam se da ćete se danas u to uvjeriti.

Dakle, pređimo na posao. Prvo, moramo kreirati stavke koje kasnije treba implementirati u dle meni, bilo da se radi o stranicama ili kategorijama. Da biste to učinili, idite na administrativni panel i kliknite na stavku "lista svih odjeljaka".

A onda sve zavisi od situacije. Ako u meniju treba da dodamo link ka kategoriji sajta, onda idite na stavku "Kategorije", a ako treba da kreiramo stranicu na koju će stavka menija usmeriti korisnika, idite na "Statičke stranice" predmet. Ne postoji suštinska razlika između njih, pa ćemo izabrati jednu od dvije opcije, na primjer, "Kategorije".

Pojavit će se obrazac za kreiranje nove kategorije na stranici. Tamo je sve jednostavno. Čemu služi svako polje obrasca, pogledajte sliku.

Nisu sva polja opisana na slici obavezna, već samo prvo i drugo polje. A tačke koje nisam počeo dirati na slici uopće ne pripadaju kategorijama, već se odnose na globalne postavke motora, kao što su postavke prikaza dle vijesti, a također pružaju mogućnost dodjele jedinstvenog predloška za svaku kategoriju odvojeno.

Nakon što popunite obavezna polja, barem prva dva, kliknite na dugme za dodavanje. Ova akcija će kreirati novu kategoriju na sajtu, vezu do koje ćemo dodati u dle meni. A posebnu pažnju obratite na drugo polje, gdje je bilo potrebno napisati alternativni naziv za kategoriju, koji će činiti adresu na kojoj će se kategorija nalaziti. U mom primjeru, to će izgledati ovako: http://site.ru/primer_category/

Sada, pređimo na direktno dodavanje nove stavke u dle meni.

Da biste to učinili, u admin panelu morate otići na odjeljak "Šabloni web-mjesta".

Zatim morate odabrati jedan od dva fajla ako koristite standardni šablon, koji sadrži menije na sajtu. U standardnom predlošku postoje dvije vrste menija: ovaj, te horizontalni i vertikalni. Fajl topmenu.tpl je odgovoran za horizontalni meni, a fajl sidebar.tpl je odgovoran za vertikalni meni u lijevoj koloni sajta. Obje ove datoteke se mogu naći u lijevoj koloni odjeljka Predlošci web-mjesta. A kada kliknete na jedan od njih, kod ove datoteke će se pojaviti u desnoj koloni.

Nakon otvaranja datoteke, moramo popraviti bilo koju postojeću stavku za našu. Odnosno, promijeniti naziv, u ovom slučaju u naziv kategorije. I zamijenite vezu do same kategorije (alternativni naziv), umjesto #. Odnosno, ako zamijenim stavku "O web lokaciji", kod menija će izgledati ovako:

Po analogiji, možete promijeniti ostale stavke u meniju. Što se tiče drugog, horizontalnog menija, situacija je apsolutno ista. I naravno, sve nepotrebne stvari koje vam nisu potrebne možete izbrisati. I naravno, sačuvajte uređenu datoteku.

Ako niste sigurni u nešto, na primjer, da brišete nešto nepotrebno, onda samo to učinite tako da se u slučaju nepredviđenih situacija može vratiti.

I to je sve za mene.

Zdravo. Ovu temu želim posvetiti stvaranju najjednostavnijeg modula za popularne CMS Datalife Engine... U Rusiji, kao iu zemljama ZND, prilično je popularan, međutim, iz nekog razloga, još uvijek nema članaka o ovom cms-u na čvorištu. Pokušaću da ispravim ovaj nesporazum. U ovom članku ćete naučiti kako napraviti najjednostavniji modul za ovaj CMS, kao i upoznati se sa strukturom motora.

Uvod

Želio bih napomenuti da je sistem tražen među stranicama za zabavu. Razumljivo je, sistem je jednostavan za korištenje, ima dovoljan broj modula i šablona. I gotovo sve što vam treba je van kutije. Međutim, dešava se da nešto nedostaje. Pokušaćemo da rešimo ovaj problem.

Zašto DLE?

Vjerovatno se pitate zašto sam odabrao baš ovaj CMS. Odgovor je jednostavan: prilično logična struktura samog motora, odvajanje šablona od koda, prilično jednostavan šablonski mehanizam, opet, prilično logičan smještaj svega unutra - lako je shvatiti šta je što. Osim toga, sistem ostaje relativno lagan i udoban. Nije funkcionalan kao, na primjer, Drupal, ali mi se ipak sviđa.

Struktura

Prvo, moramo znati nešto o strukturi motora. Ne možete napraviti nered na serveru, tako da ćemo sve zadržati u našim folderima.

Uobičajeno je da se moduli za motor smeste u fasciklu / motor / moduli /.

U folderu / motor / inc / nalaze se fajlovi administrativnog panela.

Počevši od verzije 8.x, bilo je moguće povezati module direktno u šablonu. Šablon se nalazi u folderu /templates/template_name/. U ovoj fascikli postoji datoteka main.tpl Ovo je osnovni fajl šablona, ​​obično sadrži glavnu strukturu šablona. Obično se modul može povezati na sljedeći način:

(include file = "engine / modules / mod_category.php")

Gdje je mod_category.php datoteka koja se nalazi u kategoriji / engine / modules /. Mislim da je sa ovim sve jasno, idemo dalje.

Napravimo modul za prikaz najnovijih komentara sa keširanjem. Da biste to učinili, kreirajte datoteku u mapi / engine / modules / i nazovite je mod_lastcomm.php Zatim dajem listu koda ove datoteke sa detaljnim komentarima.

Kod

DATALIFENGINE". Ova konstanta je definirana u index.php i njena TRUE vrijednost simbolizira da je datoteka uključena korištenjem include / require, a ne samo pokrenuta. * / If (! Definirano (" DATALIFEENGINE ")) (umri (" Pokušaj hakovanja! " );) / * Uključujemo api klasu kako bismo mogli koristiti funkcije za rad sa kešom. * / Include (" engine / api / api.class.php "); / * Pokušavamo pročitati informacije pohranjene u keš od name lastcomm preporučujem da date smislena imena svemu što pohranjujemo u keš memoriju. lastcomm Je datoteka u folderu / motor / cache /, a 60 Je životni vijek keša u sekundama. U ovom slučaju, ako je prošlo više vremena od kreiranja datoteke od 60 sekundi, onda ćemo morati ponovo ući u bazu podataka. * / $ lastcomm = $ dle_api-> load_from_cache ("lastcomm", 60); / * Provjeravamo da li imamo keš memoriju ili ne. Ako ne, onda se penjemo u bazu podataka. * / if (! $ lastcomm) (/ * Stvarni upit u bazi podataka. Izvodi se pomoću funkcije klase $ db. PREFIX konstanta sadrži prefiks naveden tokom cms instalacije. Nazivi kolona su sasvim normalni , mislim da nema potrebe objašnjavati šta rade. Unesite identifikator upita u varijablu $ sql. * / $ Sql ​​= $ db-> upit ("SELECT comments.post_id, comments.text, comments.autor, post.id, post.flag, post.category, post.date kao newsdate , post.title, post.alt_name FROM ". PREFIX." _komentari kao komentari, ". PREFIX." _post kao post GDJE post.id = komentari. post_id ORDER BY comments.date DESC LIMIT 0.20 "); / * S pomoću funkcije get_row () klase $db, uzastopno čitamo svaki red iz rezultata selekcije. Informacije se unose u niz redova $ sa indeksima jednakim imena polja tabele * / while ($ red = $ db-> get_row ($ sql)) (/ * Ako je potrebno iseći naslov vesti * / if (strlen ($ red ["title"])> 50) ($ naslov = substr ($ red ["naslov"], 0, 50). "...";) ostalo ($ naslov = $ red ["naslov"];) / * Obrazac sa link do korisničkog profila. Isto tako * / $ aname = urlencode ($ red ["autor"]); $name = " ". $ red [" autor "].""; / * Formirajte tekst komentara i odrežite ga ako je potrebno * / $ text = htmlspecialchars ($ red [" text "]); if (strlen ($ text)> 1024) $ text = substr ($ text, 0, 1024) . "..."; / * Formirajte vezu do vijesti. $ config niz sadrži sve sistemske postavke. Konkretno, $ config ["http_home_url"] je url domene. * / $ Newslink = $ config ["http_home_url"]. $ red ["post_id"]. "-". $ red ["alt_name"]. ". html"; $ hint = "onMouseover = \" showhint ("$ text", ovaj, događaj, ""); \ "" ; $ title = "(! LANG: ".stripslashes ($ title).""; / * Konačna objava za jedan komentar * / $ lastcomm. =" Od $name u vijestima:
$ title

";) $ db-> free (); / * Keširamo primljene podatke. Da biste bolje razumjeli funkcije keširanja, otvorite datoteku" engine / api / api.class.php "tamo je sve savršeno komentirano * / $ dle_api -> save_to_cache (" lastcomm ", $ lastcomm);) / * Ispis rezultata * / echo $ lastcomm;?>

Zaključak

Ovaj kod je potpuno funkcionalan. I naravno to ima svojih nedostataka. Na primjer, ne provjerava se veze - da li je CNC uključen. Ili, klikom na link do profila korisnika, dolazimo direktno do njegovog profila, a ne do jQuery prozora sa kratkim informacijama. Generalno, ima šta da se poboljša. Ali sve ove stvari ovdje nisu uključene iz jednog razloga - da se početnik ne zbuni. Takođe vam savetujem da analizirate i druge fajlove, na primer topnews.php. Ako imate bilo kakvih pitanja o pisanju modula ili o sistemu općenito, rado ću odgovoriti na njih.

To je sve za mene, ako se ova tema nekome učini zanimljivom, onda ću napraviti seriju članaka o cms Datalide Engine-u (DLE).

Oh da, ovo je moj prvi članak na Habréu, pa mi je žao ako nešto pođe po zlu.

Pozdrav svima koji svoje dragocjeno vrijeme posvete ovim redovima.

U ovom članku želim da govorim o načinima za optimalno konfigurisanje DataLife Engine servera i sistema za upravljanje sadržajem. Za 4 godine rada sa internet stranicama i serverima naučio sam da je sigurnost iznad udobnosti i da na nju treba obratiti pažnju. Rezervacija: Ne polažem pravo na autorstvo ničije intelektualne svojine! Sav materijal prikupljen je na internetu.

U nastavku ćemo opisati radnje koje će pomoći da se distribuira opterećenje servera, zaštiti ga od DOS napada, ograniči pristup FTP protokolu i ispravno konfiguriše DataLife Engine sistem.

Zaštita i konfiguracija vašeg servera.

1. Podešavanje konfiguracije servera pomoću front-end paketa Nginx to Apache.

Prednosti takve sheme mogu se razumjeti na malom primjeru. Zamislite da vaš Apache web server treba istovremeno da opslužuje oko 1000 zahtjeva, od kojih su mnogi povezani sa sporim linkovima. U slučaju korišćenja Apache-a, dobićemo 1000 httpd procesa, za svaki od kojih će biti dodeljen RAM, a ova memorija se neće osloboditi sve dok klijent ne dobije traženi sadržaj.

U slučaju šeme koja koristi front-end server, dobit ćemo značajne uštede resursa zbog činjenice da nakon što zahtjev stigne, nginx prosljeđuje zahtjev Apache-u i brzo prima odgovor. Kao rezultat toga, Apache oslobađa memoriju nakon što odgovori na nginx. Zatim, nginx web server stupa u interakciju s klijentom, koji je samo napisan da servira statički sadržaj velikom broju klijenata uz neznatnu potrošnju sistemskih resursa.

Da bi naš bundle radio ispravno, potreban nam je modul za Apache. Postoji takva potreba iz sledećeg razloga: zahtevi za Apache dolaze sa IP adrese na kojoj je nginx pokrenut, odnosno, samo IP adresa nginx servera će se pojaviti u Apache log fajlovima. Takođe, bez korišćenja ovog modula, počeće problemi sa skriptama koje koriste IP adresu posetioca i mehanizam za ograničavanje pristupa IP adresama koristeći .htaccess će prestati da radi ispravno.

Instalacija NGINX-a na popularan OS.

Red Hat Enterprise Linux 4 / CentOS 4
Da biste instalirali nginx na ovim operativnim sistemima, potrebno je da povežete dodatno spremište paketa.

Red Hat Enterprise Linux 5 / CentOS 5
Da biste instalirali nginx na ovim operativnim sistemima, potrebno je da povežete dodatno spremište EPEL paketa.

ASPLinux server 5 / Fedora
nginx je uključen u standardni distributivni paket.

Ako su spremišta povezana ili jednostavno nisu potrebna, pokrenite: yum instaliraj nginx

Instaliranje Apachea.

Da instalirate Apache web server, samo pokrenite: yum instaliraj httpd

Instaliranje mod_rpaf.

1. Instalirajte httpd-devel paket:

yum -y instalirati httpd-devel


2. Preuzmite i instalirajte mod_rpaf:
Ulazimo u direktorij /usr / local / src

cd / usr / local / src


Učitajte datoteku mod_rpaf-0.6.tar.gz u /usr / local / src

wget http://stderr.net/apache/rpaf/download/mod_rpaf-0.6.tar.gz


Raspakujte mod_rpaf-0.6.tar.gz

tar xzf mod_rpaf-0.6.tar.gz


Idite u direktorij u koji ste raspakirali

Stavljamo modul u sistem

apxs -i -c -n mod_rpaf-2.0.so mod_rpaf-2.0.c


3. Zatim morate kreirati mod_rpaf konfiguracijsku datoteku - /etc/httpd/conf.d/rpaf.conf i dodati joj sljedeće redove:


RPAFenable On
RPAFproxy_ips 127.0.0.1 xx.xx.xx.xx yy.yy.yy.yy


gdje su xx.xx.xx.xx i yy.yy.yy.yy IP adrese vašeg servera. Ako na serveru postoji više od dvije IP adrese, dodajte ih po istoj analogiji.

servis httpd restart


4. U nginxu, sljedeće linije moraju biti specificirane unutar http () bloka:

proxy_set_header Host $ host;


Ako su ove linije specificirane, ne morate ih dodavati.

Ako je nginx.conf izmijenjen, nginx bi trebalo ponovo pokrenuti:

/etc/init.d/nginx stop
/etc/init.d/nginx start


5. Kako provjeriti da li instalirani modul radi?
Na bilo koji od domena koji se nalaze na vašem serveru, postavite test.php fajl sa sljedećim sadržajem:

"echo $ _SERVER [" REMOTE_ADDR "];?>"


Zatim slijedite link, gdje je domain.tcom naziv Vaše domene. Ako se prikazani IP razlikuje od IP vašeg servera, modul radi ispravno.

Konfiguriranje NGINX-a.

Ispod je nginx konfiguraciona datoteka koja služi kao front-end server. Pretpostavlja se da će nginx raditi na svim interfejsima na portu 80, a Apache na interfejsu 127.0.0.1 i portu 8080. Sačuvajte ovu konfiguracionu datoteku u / etc / nginx / direktorijumu sa imenom nginx.conf.

korisnik nginx;
worker_processes 10;
error_log /var/log/nginx/error.log debug;
pid /var/run/nginx.pid;

događaji (
worker_connections 20000;
}

http (
uključuje /etc/nginx/mime.types;
default_type aplikacija / oktet-tok;
log_format main "$ remote_addr - $ remote_user [$ time_local] $ status"
"" $ zahtjev "$ body_bytes_sent" $ http_referer ""
"" $ http_user_agent "" http_x_forwarded_for "";
access_log /var/log/nginx/access.log main;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 30;
send_timeout 900;
server_tokeni isključeni;
server (
slušaj 80;
server_name _;
server_name_in_redirect off;
access_log /var/log/nginx/host.access.log main;
lokacija / (
proxy_pass http://127.0.0.1:8080/;
proxy_redirect off;
proxy_set_header Host $ host;
proxy_set_header X-Real-IP $ remote_addr;
proxy_set_header X-Forwarded-For $ proxy_add_x_forwarded_for;
client_max_body_size 10m;
client_body_buffer_size 128k;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 10m;
}
}


Konfigurisanje Apache-a.

U Apache konfiguracijskoj datoteci /etc/httpd/conf/httpd.conf pronađite red:

i zamijenite je linijom:

Slušajte 127.0.0.1:8080


Konfiguriranje mod_rpaf.

Dodajte mod_rpaf modul u vašu Apache konfiguracijsku datoteku. Da biste to učinili, dodajte sljedeći red u /etc/httpd/conf/httpd.conf datoteku:

LoadModule rpaf_module modules / mod_rpaf-2.0.so


Zatim dodajte redove u isti fajl:

RPAFenable On
RPAFsethostname Isključeno
RPAFproxy_ips 127.0.0.1 192.168.0.1
RPAFheader X-Real-IP


Umjesto 192.168.0.1, morate staviti IP adresu servera.

2. Konfiguracija servera za zaštitu od dos-napada.

Omogućavamo keširanje glavne stranice u nginx-u za one koji nemaju kolačiće.

Dodajte ograničenja u nginx.conf:

limit_req_zone $ binary_remote_addr zona = dva: brzina 20m = 2r/s;
server (
lokacija / (
limit_req zona = dva rafala = 5;
}
}
}


Korištenje repa i awk-a:

tail -f /var/log/nginx/access.log | grep GET / HTTP / 1.1 "503


Povezujemo log:

tail -f /var/log/nginx/access.log | grep GET / HTTP / 1.1 "503 | awk" (štampaj 1 USD) "


Dobijamo IP adresu mašina:

iptables -A INPUT -p tcp -j DROP -s $ IP


Unesite IP u Firewall:

tail -f /var/log/nginx/access.log | grep GET / HTTP / 1.1 "503 | awk" (ispis $ 1) "| xargs -t -l iptables -A INPUT -p tcp -j DROP –s


Sada postavimo connlimit za iptables kako bi ograničili veze s botovima. U pravilima postavljamo dozvolu za 5 konekcija sa jedne IP adrese i 25 iz podmreže klase C.

DDOS napad od 16000 botova - Prosjek opterećenja: 1,4 1,9 2,0

Ograničavanje FTP pristupa

Za ovo nam je potreban .ftpaccess fajl. Pomoći će vam da odbijete ili dozvolite FTP pristup sa određenih IP adresa. Neko bi mogao postaviti pitanje: "Imam dinamičku IP adresu, kako da ispravno koristim .ftpaccess?" Odgovor na koji mislim je samo ovaj: „Ako vam treba ovaj sigurnosni dodatak, nabavite statičku IP adresu od svog provajdera. Neće vam tražiti puno novca."

Za kreiranje .ftpacces datoteke potreban nam je SSH pristup. Možete koristiti program winscp. U .ftpaccess-u može biti mnogo postavki, ali nas zanima samo jedan parametar. Upisivanjem ovih redova u datoteku potpuno ćete zatvoriti pristup svima:

Odbiti od svih


Nakon navedenog, niko neće moći ući na FTP. Da biste dodali dozvolu pristupa određenoj IP adresi, morate navesti sljedeće parametre:

Dozvoli od 127.0.0.1
Odbiti od svih


Naravno, adresa 127.0.0.1 je navedena kao primjer i mora se zamijeniti svojom.

Bitan! Najbolje je zabraniti pristup FTP-u apsolutno svima i povezati se samo preko SSH-a.

Zaštita sistema za upravljanje sadržajem DataLife Engine.

1. Instalirajte i konfigurirajte.

2. Preimenujte fajl admin panela i napravite fake na staroj adresi (www.sait.com/admin.php) prilikom prelaska na koju će korisnik biti blokiran zabranom njegovog ip-a u .htaccess.

Preimenovano? Sada kreiramo ip.txt datoteku u korijenskom direktoriju za pohranjivanje ip-adresa. Dajemo mu i .htaccess prava CHMOD - 777.

Kreirajte datoteku admin.php sa sljedećim sadržajem:


$ ip = getenv ("REMOTE_ADDR");

$ log = fopen ("ip.txt", "a +");
fwrite ($ log, "//". $ ip. "\ n");
fclose ($ log);

$ f = fopen ($ _ SERVER ["DOCUMENT_ROOT"]. "/.htaccess", "a");
fwrite ($ f, "\ ndeny iz". $ ip);
fclose ($ f);

DataLife Engine admin panel

Tekst, na primjer: Vaš IP u logovima, ja ću vas pronaći!

Strah, beznačajni, ha ha!

"
3. Dodajte dodatnu autentifikaciju u centar administracije.

Morate smisliti drugo korisničko ime i lozinku (nemojte koristiti detalje svog administrativnog računa). Drugo korisničko ime i lozinka moraju se potpuno razlikovati od prvog. Jeste li odlučili? Fino! Sada ćemo šifrirati našu lozinku u md5 (to možete učiniti na md5encryption.com).
Zatim otvorite admin.php (zapamtite, ranije smo ga preimenovali i, stoga, ako ste ga nazvali superadmin.php - potrebno je da otvorite ovaj) i nakon reda:

dodati:

$ login = "unesite izmišljenu prijavu";
$ password = "i generisana lozinka u md5";
if (! isset ($ _ SERVER ["PHP_AUTH_USER"]) || $ _SERVER ["PHP_AUTH_USER"]! == $ login ||
md5 ($ _ SERVER ["PHP_AUTH_PW"])! == $ lozinka) (
zaglavlje ("WWW-Autentifikacija: Osnovno područje =" Admin Panel "");
zaglavlje ("HTTP / 1.0 401 Neovlašteno");
izlaz ("Pristup odbijen");)


4. Onemogućite php funkcije koje sistem ne koristi.

Da biste tražili php.ini datoteku, kreirajte datoteku phpinfo.php sa tekstom:

Nakon pretraživanja, obavezno izbrišite phpinfo.php!

disable_functions = allow_url_fopen, eval, exec, sistem, passthru, scandir, popen, shell_exec, proc_open, proc_close, proc_nice, get_current_user, getmyuid, posix_getpwuid, apache_get_modules, virtualni, posix_getpwuid, apache_get_modules, virtualni, posix_getgrdegrde apache_setenv, disk_free_space, diskfreespace, DL, ini_restore , openlog, syslog, highlight_file, show_source, symlink, disk_total_space, ini_get_all, get_current_user, posix_uname, allow_url_fopen


5. Kreiramo filtriranje za GET i POST zahtjeve, sprječavamo injekcije u bazu podataka i primanje podataka iz nje.

Kreirajte .php datoteku sa proizvoljnim imenom i sljedećim sadržajem:

// postavite jedan ako želite omogućiti otklanjanje grešaka zahtjeva
$ debug = 0;

$ bag_req = niz ("select", "eval", "echo", "UPDATE", "LIMIT", "INSERT", "INTO", "union", "CONCAT", "INFORMATION_SCHEMA", "OUTFILE", " DUMPFILE "," LOAD_FILE "," BENCHMARK "," SUBSTRING "," ASCII "," CHAR "," baza podataka "," HEX "," \\. \\ / ","% 00 "," \\. Htaccess "," konfiguracija \\. php "," dokument \\. kolačić ");
$ zahtjev = serijalizirati ($ _ GET);


ako ($ _ GET)
{
foreach ($ bag_req kao $ ključ => $ vrijednost) (
{
Zahtjev je pronađen u nizu $ vrijednost
$ zahtjev ";
}
}
}
ako ($ _ POST)
{
$ request = str_replace ("selected_language", "sl", serialize ($ _ POST));
$ urequest = urldecode ($ zahtjev);
$ brequest = base64_decode ($ zahtjev);
foreach ($ bag_req kao $ ključ => $ vrijednost) (
if (preg_match ("/ $ vrijednost / i", $ zahtjev) || preg_match ("/ $ vrijednost / i", $ urequest) || preg_match ("/ $ vrijednost / i", $ brequest))
{
if ($ debug == "1") $ do_debug = "
Zahtjev je pronađen u nizu $ vrijednost koji blokira ispravan rad
$ zahtjev ";
die ("BAD REQUEST $ do_debug");
}
}
}
?>


Spremamo ga na server u bilo koji direktorij DLE sistema. Otvorite datoteku engine / classes / mysql.php i nakon toga:

ako (! definirano ("DATALIFEENGINE"))
{
die ("Pokušaj hakovanja!");
}


povežite kreirani fajl:

include_once (ENGINE_DIR. "/ path_to_file / name.php");


6. Koristeći besplatne komponente za DLE, obavezno saznajte mišljenje stručnjaka o njihovoj pouzdanosti.

Ako imate bilo kakvih pitanja, kontaktirajte tražilice - sav materijal je besplatno dostupan!
Želite li nešto dodati? Dobrodošli u diskusiju!

Sretno vama i vašim projektima!

DLE ili DataLife Engine je plaćeni CMS za upravljanje sadržajem vaše web stranice. CMS ima moćan sistem za upravljanje vijestima, publikacijama, člancima, korisnicima i dizajniran je za kreiranje informativnih portala i blogova. Zahvaljujući brojnim ugrađenim funkcijama i korišćenju napredne AJAX tehnologije u radu CMS-a, vaš sajt će trošiti manje resursa servera, čak i uz veliki broj posetilaca. Ovaj vodič će vam pokazati kako da instalirate DLE na Hostinger.

Prije nego što započnete ovaj vodič, potrebno vam je sljedeće:

  • Pristup kontrolnoj tabli vašeg hostinga

Kako instalirati DLE na Hostinger

Prije nego počnete instalirati DLE, morate izvršiti ove korake:

Korak 1 - Preuzimanje DLE instalacionih datoteka

Otvorite folder upload u vašem FTP klijentu i otpremite sve fajlove iz fascikle na vaš hosting nalog u direktorijum public_html.

NAPOMENA! Koristimo FileZilla za učitavanje datoteka u ovom vodiču, ali možete koristiti bilo koji FTP klijent koji želite.

Korak 3 - Postavljanje dozvola za fajlove

DLE instalacija se odvija u automatskom režimu, sve što treba da uradite je da postavite odgovarajuća prava za nekoliko zasebnih foldera i fajlova koje ste prethodno postavili na svoj hosting nalog.

  1. Prvo postavite dozvole za pisanje za folder šabloni i sve njegove podmape. Da biste to učinili, kliknite desnim tasterom miša na fasciklu šabloni u FileZilla interfejsu i izaberite opciju Atributi fajla...

  1. Zatim, u prozoru koji se pojavi, unesite Numerička vrijednost 777 da promijenite dozvole za pisanje, označite polje pored Preusmjeravanje na poddirektorije i označite Primijeniti samo na direktorije.

  1. Zatim morate promijeniti dozvole za sve datoteke u folderu šabloni, ali sa pravima 666. Da biste to učinili, ponovo otvorite atribute foldera šabloni i pitaj Numerička vrijednost 666, označite polje pored Preusmjeravanje na poddirektorije -> Primijeni samo na datoteke.

  1. Izvršite identične radnje sa fasciklama backup, uploads kao i za sve fascikle unutar njih. Sljedeće za foldere / engine / data /, / engine / cache /, / engine / cache / system /... Postavite dozvole za pisanje na 777 za sve navedene direktorije.
  2. Sada možete početi instalirati DLE.

Korak 4 - Instaliranje DLE-a na Hostinger

Da započnete instalaciju, unesite ime svoje domene u pretraživač. Ako se prozor za instalaciju ne zatvori automatski, dodajte install.php imenu vašeg domena. Na primjer, your-domain.ru / install.php.

  1. Ako je sve urađeno ispravno, vidjet ćete prozor DataLife Engine Installation Wizard. Kliknite na dugme Započnite instalaciju.

  1. Zatim prihvatite korisnički ugovor tako što ćete označiti polje pored Prihvatam ovaj sporazum... Pritisnite dugme za nastavak instalacije. Nastavi.

  1. U sljedećem prozoru provjerite da li vaš server ispunjava potrebne zahtjeve i kliknite na dugme Nastavi.

  1. Zatim provjerite da li su dozvole za fajl koje ste prethodno postavili ispravne. Ako je sve ispravno, pritisnite ponovo Nastavi.

  1. U novom prozoru morate popuniti podatke o vašoj bazi podataka i vjerodajnice za vaš DLE administratorski račun stranice.

  • Site url- adresu vaše web stranice

Podaci za pristup MySQL serveru.

  • MySQL Server- MySQL server vaše baze podataka na hostingu. Ako ste korisnik Hostingera, informacije koje su vam potrebne možete pronaći u odjeljku Baze podataka -> MySQL baze podataka.
  • Ime baze podataka Je ime vaše MySQL baze podataka.
  • Korisničko ime- ime korisnika koji je dodijeljen vašoj bazi podataka.
  • Lozinka- lozinka za korisnički nalog vaše baze podataka.
  • Prefiks- prefiks MySQL tablica baze podataka. Možete ga ostaviti nepromijenjenog.
  • Motor baze podataka- preporučljivo je ostaviti zadanu vrijednost. InnoDB.
  • 4 bajta UTF- kada je ova opcija omogućena, DLE će pohraniti dodatne informacije u bazu podataka. Ova opcija može uticati na performanse vaše stranice.

Podaci za pristup kontrolnoj tabli.

Unesite svoje vjerodajnice da pristupite kontrolnoj tabli vaše stranice. Unesite svoju pravu email adresu, ona će se koristiti za ponovni pristup vašem administratorskom nalogu.

Dodatne postavke.

Omogućite CNC podršku- uključiti čovjeku čitljiv URL. Kada je ova opcija omogućena, naslov članka će biti prikazan u adresi članka. Ova funkcija je korisna za SEO optimizaciju.

  1. Da biste izbjegli ponovno pokretanje instalacije ili ažuriranja, izbrišite datoteku install.php i folder nadograditi iz direktorija vaše web stranice. Kliknite na dugme Nastavi.

Čestitamo, DLE instalacija za vašu web lokaciju na Hostingeru je bila uspješna.

Zaključak

Nakon što ste završili ovaj vodič, naučili ste kako da instalirate DLE na hosting. Instaliranje DLE-a je prilično jednostavan proces ako ste pažljivo slijedili naš vodič korak po korak. Uprkos obilju CMS-a danas, DLE ima svoje karakteristike i dobre performanse.

Top srodni članci