Cum se configurează smartphone-uri și PC-uri. Portal informativ
  • Acasă
  • Sfat
  • Feedback în panoul de control al motorului datalife. Configurarea motorului DataLife

Feedback în panoul de control al motorului datalife. Configurarea motorului DataLife

Doar în scop informativ. Administrația nu este responsabilă pentru conținutul acestuia. Descărcare gratuită .


Dragi prieteni,

Vă prezentăm o nouă versiune a scriptului nostru DataLife Engine v.13.1 NULLED.În această ediție, se așteaptă să adăugați suport pentru actualizarea automată a pluginurilor la versiuni noi și o serie de alte îmbunătățiri ale sistemului de pluginuri, să adăugați noi funcții pentru o lucru mai convenabil cu câmpuri suplimentare, să adăugați un nou tip de evaluare „Like and Dislike” „, căutare îmbunătățită pentru publicații în panoul de administrare și multe altele, citiți mai multe despre asta și multe altele...

Au fost pregătite și implementate următoarele modificări:


1. S-a adăugat posibilitatea de a actualiza automat scriptulîn panoul de administrare din aceeași versiune a scriptului, în cazurile în care, de exemplu, sunt lansate remedieri ale vulnerabilităților găsite sau alte erori. În cazurile în care se fac modificări ale distribuției în cadrul aceleiași versiuni, de exemplu, când sunt lansate remedieri pentru vulnerabilități sau alte probleme identificate cu scriptul, va fi posibilă actualizarea scriptului în panoul de administrare în această versiune curentă a scriptului .


2. S-a adăugat posibilitatea de a actualiza automat pluginurile pe site... Pentru a face acest lucru, o adresă URL este setată în plugin pentru a primi informații despre disponibilitatea unei noi versiuni. La această adresă URL, site-ul dezvoltatorului de plug-in ar trebui să returneze o matrice în format JSON, care ar trebui să conțină informații despre versiunea curentă a plug-in-ului, precum și un link pentru a descărca versiunea curentă a plug-in-ului. De exemplu, adresa URL dată ar trebui să returneze valoarea ("versiunea": "2.0", "url": "https://dle-news.ru/test/test.zip")... După aceea, la verificarea actualizărilor, administratorul site-ului va putea afla despre disponibilitatea noilor versiuni ale pluginului și va putea actualiza pluginurile în panoul de administrare cu un singur clic.


3. Pentru sistemul de gestionare a pluginurilor, a adăugat capacitatea indicați numărul de înlocuiri care trebuie efectuate pentru fiecare criteriu de căutare din dosar. De exemplu, trebuie să găsiți și să înlocuiți un cod dintr-un fișier care apare de mai multe ori în acest fișier, puteți specifica de câte ori trebuie înlocuit acest cod. Pentru a înlocui toate aparițiile acestui cod, puteți lăsa acest parametru gol, astfel înlocuirea se va face oriunde se găsește codul specificat.


4. Pentru sistemul de gestionare a pluginurilor, a adăugat capacitateaștergerea automată a fișierelor suplimentare încărcate cu pluginul în arhivă dacă pluginul este eliminat de pe site. Pentru a face acest lucru, la parametrii plug-in este adăugată posibilitatea de a alege dacă să ștergeți sau nu fișiere suplimentare. Astfel, puteți decide independent dacă este necesar să curățați serverul de fișiere suplimentare dacă acesta este eliminat de pe site sau dacă acestea ar trebui lăsate.

5. Pentru sistemul de gestionare a pluginurilor, a fost adăugată capacitatea utilizați eticheta (THEME) în numele folderelor din arhivele ZIP. Când încărcați o arhivă prin sistemul de plugin, această etichetă va fi înlocuită cu numele șablonului utilizat. De exemplu, prin plasarea fișierului /templates/(THEME)/test.tpl în arhivă, fișierul șablon va fi plasat în șablonul folosit pe site. Astfel, atunci când se utilizează pluginuri complexe care conțin fișiere șablon eșantion, acestea pot fi încărcate imediat în folderul dorit care conține șablonul folosit de utilizator.

6. Pentru sistemul de gestionare a pluginurilor, a adăugat capacitatea utilizați caracterele de control ale funcției preg_replace în acțiunea „Găsiți și înlocuiți” din șirul de înlocuire, cum ar fi \\ 1 etc., care elimină restricțiile privind găsirea și înlocuirea unor coduri în DLE.


7. Pentru câmpuri suplimentare de tip „Imagine” și „Galerie de imagini”, a adăugat posibilitatea de a atribui fiecărei imagini separat, propria sa descriere personală, care este folosită și ca atribut HTML alt, la afișarea acestor câmpuri suplimentare pe site.


8. Pentru câmpuri suplimentare de tip „Galerie de imagini”, a adăugat posibilitatea de a schimba ordinea de sortare a imaginilor încărcate prin simpla mutare a acestora cu mouse-ul. După încărcarea imaginilor, puteți schimba imaginile după cum doriți. De asemenea, imaginile încărcate pot fi transferate în alte câmpuri suplimentare.


9. A fost adăugat un nou tip de evaluare „Like and Dislike” pentru postări și comentarii. care păstrează o evidență separată atât a numărului de aprecieri, cât și a numărului de dislikes. Pentru aceasta, au fost adăugate noi etichete pentru șabloanele de afișare a publicațiilor și comentariilor: (îi place)- care afișează numărul de aprecieri, (dislikes) - care afișează numărul de aprecieri, precum și eticheta text- care afișează textul inclus în etichetă, dacă acest tip de evaluare este activat în setări.


10. În setările profilurilor de utilizator din panoul de administrare, a adăugat capacitatea setați o listă de categorii în care acest utilizator are permisiunea de a adăuga publicații. Acest lucru va permite, de exemplu, jurnaliştilor, să menţină secţiuni personale în care alţi jurnalişti (sau unii dintre ei) nu au voie să publice. Sau, dimpotrivă, excludeți un jurnalist dintr-o anumită categorie de știri dacă, de exemplu, este incompetent în ea.

11. În setările profilurilor de utilizator din panoul de administrare, a adăugat capacitatea stabiliți o listă de categorii de încredere în care acest utilizator poate adăuga publicații fără moderare. O astfel de personalizare va permite o diferențiere mult mai flexibilă a drepturilor, fără a crea o grămadă de grupuri de utilizatori, inclusiv grupuri pentru fiecare jurnalist specific.


12. Pentru căutarea avansată a publicațiilor în panoul de administrare,în secțiunea pentru editarea publicațiilor, a adăugat posibilitatea de a alege unde să căutați. Puteți căuta în tot conținutul, puteți separat după titluri, descriere scurtă, descriere completă și câmpuri suplimentare. De asemenea, algoritmii de căutare au fost îmbunătățiți semnificativ, pentru o găsire mai corectă a publicațiilor.

13. Pentru căutarea avansată a publicațiilor în panoul de administrare,în secțiunea pentru editarea publicațiilor, a adăugat posibilitatea de a căuta simultan în mai multe categorii din care să alegeți.

14. Pentru norul de etichete a adăugat capacitatea utilizarea simbolurilor „&” și „#”, care permite, de exemplu, utilizarea numelor diferitelor mărci în cloud, de exemplu, „H&M”, etc.


15. În setările scriptului din panoul de administrare, a adăugat capacitatea permisiunea administrației site-ului de a se conecta la site folosind rețelele sociale. Când această setare este activată, utilizatorii care fac parte din grupul de administratori se pot conecta și la site folosind conturile lor de rețele sociale.


16. În panoul de administrare, în secțiunea pentru editarea comentariilor, a adăugat capacitatea caută comentarii în text. În această secțiune, puteți căuta comentariile pe care trebuie să le editați, după orice cuvinte cheie. Acest lucru face editarea comentariilor mai convenabilă.


17. În panoul de administrare, în secțiunea pentru gestionarea referințelor încrucișate, a adăugat capacitatea pentru acțiunile în bloc pe linkuri, setați înlocuirea „Numai în paginile statice”, precum și „În paginile statice, știri și comentarii”.

18. Pentru a previzualiza bannere în secțiunea de gestionare a anunțurilor din panoul de administrare, a adăugat conexiune de stiluri ale șablonului dvs. din fișierul preview.css. Astfel, puteți vedea un design mai corect al codului dvs. de publicitate dacă folosește clase din șablonul dvs.

19. Pentru șablonul pentru afișarea știrilor scurte (shortstory.tpl) adăugat folosind etichete text care afișează textul anexat în ele, dacă nu există publicații conform acestor criterii. Astfel, puteți realoca mesajul standard al sistemului despre absența publicațiilor în orice secțiune separată a site-ului, făcându-l unic, de exemplu, pentru fiecare secțiune a site-ului. De asemenea, aceste etichete pot fi folosite în șabloane care sunt utilizate pentru afișarea personalizată a publicațiilor folosind eticheta (personalizat...).


20. Pentru un șablon de mesaj e-mail care este trimis la recuperarea unei parole uitate, a fost adăugată utilizarea de noi etichete: (% losturl%) care scoate doar URL-ul link-ului pentru a reseta și a genera o nouă parolă și (% ipurl%) care scoate doar URL-ul link-ului pentru a reseta blocarea IP. Astfel, puteți seta separat designul de care aveți nevoie în litera acestor link-uri, de exemplu, sub formă de butoane. De asemenea, puteți, de exemplu, să refuzați afișarea unui link de deblocare prin IP, dacă nu utilizați această opțiune pe site-ul dvs.

21. S-a îmbunătățit sistemul de ștergere a categoriilor din panoul de administrare... Dacă categoria ștearsă conține subcategorii care sunt, de asemenea, supuse ștergerii, atunci toate acțiunile pentru publicațiile care conțin categoria ștearsă vor fi extinse automat la publicațiile care conțin și subcategorii șterse. Și aceleași acțiuni vor fi aplicate acestor publicații în subcategorii.


22. Pentru modulul „Filtrare după: IP, Autentificare sau E-mail” a adăugat capacitatea adăugarea de adrese sau autentificări blocate sau de e-mailuri simultan în liste întregi, și nu una câte una. Acest lucru accelerează semnificativ procesul de adăugare dacă aveți deja o listă gata făcută cu ceea ce trebuie blocat.


23. Pentru modulul „Filtrare după: IP, Login sau E-mail” s-a adăugat posibilitatea de a editarea regulilor deja existente. Puteți selecta și edita orice regulă fără a fi nevoie să o ștergeți și să o adăugați din nou.


24. Pentru modulul „Filtrare după: IP, Autentificare sau E-mail” a adăugat capacitatea selectarea mai multor sau a tuturor regulilor adăugate în același timp și deblocarea în masă a acestor reguli cu un singur clic.

25. Pentru modulul „Filtrare după: IP, Login sau E-mail” a adăugat suport folosind adrese IPv6 care pot fi specificate pentru a bloca accesul la site. De asemenea, a fost adăugată capacitatea de a specifica subrețele IPv6 pentru blocare.

26. S-a adăugat posibilitatea de a specifica adrese IPv6 în profilul utilizatorului de la care este permisă autorizarea utilizatorului. De asemenea, puteți specifica nu numai o adresă separată, ci și o subrețea IPv6.

27. Pentru modulul de sortare personalizată a publicațiilor de pe site afișat de eticheta (sortare) a adăugat posibilitatea de a seta sortarea pentru fiecare categorie specifică și nu pentru toate categoriile în același timp.

28. Pentru link-urile publicate în publicații, a adăugat capacitatea folosind elemente de bloc precum „p”, „div”, etc. Acest lucru permite DataLife Engine să respecte mai corect și mai corect standardele HTML5.

29. S-a adăugat posibilitatea de a adăuga noi utilizatoriîn panoul de control DataLife Engine atunci când lucrați cu panoul folosind smartphone-uri.

30. Au fost aduse modificări în activitatea comentariilor de tip arbore... Dacă se atinge imbricarea maximă pentru răspunsurile la comentarii, atunci în cazul unui răspuns la un comentariu, aceste răspunsuri rămân în firul de discuții la imbricarea maximă. Anterior, când s-a atins imbricatul maxim, era imposibil să răspunzi la comentariu. Acum răspunsul rămâne în orice caz.

31. Pentru câmpuri suplimentare de tip „Referințe încrucișate”., a adăugat capacitatea de a folosi ghilimele duble și semnele și semnele și în valori.

32. Dacă pentru șablonul E-mail al mesajului care este trimis la recuperarea unei parole uitate, se setează utilizarea formatului HTML pentru această literă, apoi legăturile generate de eticheta (% lostlink%) din acest șablon vor fi deja formate sub forma unui cod HTML gata făcut și nu doar link-uri text.

33. S-a adăugat posibilitatea de instalare la setările scriptului sortarea postărilor în mod implicit, după numărul de comentarii. Același lucru a fost adăugat pentru a personaliza criteriile de sortare atunci când răsfoiți un catalog.

35. Au fost aduse modificări în activitatea unor domenii suplimentare, dacă câmpul are restricții privind adăugarea de către grupuri de utilizatori. Dacă valoarea câmpului suplimentar a fost adăugată de un utilizator care are dreptul de a face acest lucru, iar ulterior publicația este editată de un utilizator care nu are drepturi de completare a acestui câmp, atunci valoarea acestui câmp nu mai este șters, dar rămâne același cum a fost completat anterior de către utilizatorul care are acest drept.

36. Limita numărului de caractere din metaeticheta Description pentru categorii a fost mărită la 300 de caractere... Lungimea maximă se potrivește acum cu lungimea maximă setată de motorul de căutare Google pentru ca aceste informații să apară în rezultatele căutării.

37. Căutare îmbunătățită pentru știri similare pe site. Afișarea știrilor conexe a devenit mai relevantă în ceea ce privește sortarea postărilor găsite.

38. Suport îmbunătățit pentru adresele IPv6 ale vizitatorilor site-ului.În unele cazuri specifice, este posibil ca adresa completă să nu se încadreze în baza de date. Lungimea câmpurilor este acum rezervată conform specificației RFC 4291.

39. S-a îmbunătățit formarea metaetichetei og: description a protocolului Open Graph când vizionați știrile complete. Formarea are loc mai corect atunci când sunt folosite câmpuri suplimentare pentru publicații ca conținut principal.

40. Funcționare îmbunătățită a sistemului de securitate DataLife Engine, pentru a verifica mai corect datele de pe subdomenii, pe unele gazduire, are o structura de subdomenii, sub forma unor subdosare ale domeniului principal.

41. Adăugat suport pentru protocolul tel: pentru link-urile publicate pe site folosind etichete BB.

42. Editorii vizuali actualizați TinyMCE și Froala la cele mai recente versiuni... Un număr de erori detectate în aceste editori au fost remediate.

43. Problemă rezolvată folosind în câmpurile suplimentare ale profilului de utilizator, câmpuri cu tipul „List”, în care valorile au fost utilizate folosind simbolul „|”.

44. Problemă rezolvatăîn care în secțiunea de gestionare a plug-in-urilor, dacă acțiunea asupra fișierului din meniu a fost modificată, unele simboluri s-ar putea modifica incorect în valorile specificate în câmpuri.

45. Problemă rezolvată, în care era imposibil să se folosească etichete pentru paginile interne ale site-ului și avea permisiunea de a utiliza numai pentru site-urile externe.

46. ​​​​Problemă remediată, în care era imposibil să se înceapă actualizarea site-ului la o versiune nouă, dacă site-ul era într-o altă codificare decât UTF-8, în timp ce login-ul sau parola administratorului conținea litere scrise în chirilic.

47. Problemă rezolvatăîn care o fereastră pop-up despre sosirea de noi mesaje personale nu a apărut dacă utilizatorul s-a deconectat independent de la contul său de pe site și apoi a intrat din nou după ceva timp.

48. Problemă rezolvată când editarea comentariilor în panoul de control al scriptului nu a funcționat, dacă editorul TinyMCE a fost activat în setările scriptului.

49. Problemă rezolvată, care nu afișa numărul de zile în care puteți adăuga comentarii la publicație, dacă astfel de limite au fost stabilite în setările scriptului din panoul de administrare.

50. Problemă rezolvată, în care un câmp suplimentar de tip „Fișier descărcabil” nu era afișat pe site ca link pentru descărcarea unui fișier, ci era afișat ca o simplă etichetă.

51. Micile erori detectate și anunțate anterior în script au fost remediate.

Să vorbim despre meniul de pe site-ul dle. Mai precis, cum să adăugați propriile elemente în meniu sau să înlocuiți cele existente cu altele noi. Destul de des, începătorii care tocmai au instalat acest CMS au o întrebare: „Cum să înlocuiți elementele standard de meniu din șablonul standard cu ale dvs.?” Dacă, în wordpress, acest lucru se poate face fără a edita codul, atunci în dle situația este diferită, tot trebuie să intri în cod și să-l dai seama puțin. Cu toate acestea, nu este nimic dificil în adăugarea de elemente noi și sper să vă puteți convinge de acest lucru astăzi.

Deci, să trecem la treabă. În primul rând, trebuie să creăm elemente care ulterior trebuie implementate în meniul dle, fie că este vorba de pagini sau categorii. Pentru a face acest lucru, accesați panoul de administrare și faceți clic pe elementul „lista tuturor secțiunilor”.

Și apoi totul depinde de situație. Dacă trebuie să adăugăm un link către o categorie de site în meniu, atunci mergeți la elementul „Categorii”, iar dacă trebuie să creăm o pagină către care elementul de meniu va direcționa utilizatorul, atunci mergeți la „Pagini statice” articol. Nu există nicio diferență fundamentală între ele, așa că vom alege una dintre cele două opțiuni, de exemplu, „Categorii”.

Va apărea un formular pentru crearea unei noi categorii pe site. Totul este simplu acolo. Pentru ce este fiecare câmp de formular, vezi imaginea.

Nu toate câmpurile descrise în figură sunt obligatorii, ci doar primul și al doilea câmp. Iar punctele pe care nu am început să le ating pe imagine nu aparțin deloc categoriilor, ci se referă la setările globale ale motorului, cum ar fi setările de afișare a știrilor dle și oferă, de asemenea, posibilitatea de a atribui un șablon unic pentru fiecare categorie. separat.

După completarea câmpurilor obligatorii, cel puțin primele două, faceți clic pe butonul de adăugare. Această acțiune va crea o nouă categorie pe site, un link la care vom adăuga în meniul dle. Și acordați o atenție deosebită celui de-al doilea câmp, unde a fost necesar să scrieți o denumire alternativă pentru categorie, care va constitui adresa la care se va afla categoria. În exemplul meu, va arăta astfel: http://site.ru/primer_category/

Acum, să trecem la adăugarea directă a unui element nou în meniul dle.

Pentru a face acest lucru, în panoul de administrare trebuie să accesați secțiunea „Șabloane de site”.

Și apoi trebuie să alegeți unul dintre cele două fișiere dacă utilizați un șablon standard, care conține meniurile de pe site. În șablonul standard, există două tipuri de meniuri: acesta și orizontal și vertical. Fișierul topmenu.tpl este responsabil pentru meniul orizontal, iar fișierul sidebar.tpl este responsabil pentru meniul vertical din coloana din stânga site-ului. Ambele fișiere pot fi găsite în coloana din stânga a secțiunii Șabloane de site. Și când dați clic pe una dintre ele, codul acestui fișier va apărea în coloana din dreapta.

După deschiderea fișierului, trebuie să reparăm orice element existent la al nostru. Adică să schimbi numele, în acest caz în numele categoriei. Și înlocuiți un link către categoria în sine (nume alternativ), în loc de #. Adică, dacă înlocuiesc elementul „Despre site”, atunci codul de meniu va arăta astfel:

Prin analogie, puteți modifica restul elementelor din meniu. În ceea ce privește al doilea meniu orizontal, situația este absolut aceeași. Și, desigur, toate lucrurile inutile de care nu aveți nevoie pot fi șterse. Și, desigur, salvați fișierul editat.

Dacă nu sunteți sigur despre ceva, de exemplu, că ștergeți ceva inutil, atunci faceți-o astfel încât, în cazul unor situații neprevăzute, să poată fi restaurat.

Și asta e tot pentru mine.

Buna ziua. Vreau să dedic acest subiect creării celui mai simplu modul pentru popular Motor CMS Datalife... În Rusia, precum și în țările CSI, este destul de popular, cu toate acestea, din anumite motive, încă nu există articole despre acest cms pe hub. Voi încerca să corectez această neînțelegere. În acest articol, veți învăța cum să realizați cel mai simplu modul pentru acest CMS, precum și să vă familiarizați cu structura motorului.

Introducere

Aș dori să notez că sistemul este solicitat printre site-urile de divertisment. Este de înțeles, sistemul este ușor de utilizat, are un număr suficient de module și șabloane. Și aproape tot ce aveți nevoie este scos din cutie. Cu toate acestea, se întâmplă să lipsească ceva. Vom încerca să rezolvăm această problemă.

De ce DLE?

Probabil vă întrebați de ce am ales acest CMS special. Răspunsul este simplu: o structură destul de logică a motorului în sine, separarea șabloanelor de cod, un motor de șabloane destul de simplu, din nou, o plasare destul de logică a tot ceea ce este în interior - este ușor să-ți dai seama ce este. În plus, sistemul rămâne relativ ușor și confortabil. Nu este la fel de funcțional ca, de exemplu, Drupal, dar totuși îmi place.

Structura

În primul rând, trebuie să știm ceva sau două despre structura motorului. Nu puteți crea mizerie pe server, așa că vom păstra totul în folderele noastre.

Este obișnuit să plasați module pentru motor într-un folder / motor / module /.

În dosar / motor / inc / sunt localizate fișierele panoului de administrare.

Începând cu versiunea 8.x, a fost posibilă conectarea modulelor direct în șablon. Șablonul se află în / templates / template_name / folder. Există un fișier main.tpl în acest folder Acesta este fișierul rădăcină al șablonului, de obicei conține structura principală a șablonului. De obicei, modulul poate fi conectat astfel:

(include fișier = "motor / module / mod_category.php")

Unde mod_category.php este un fișier situat în categoria / engine / modules /. Cred că totul este clar cu asta, să mergem mai departe.

Să facem un modul pentru a afișa cele mai recente comentarii cu cache. Pentru a face acest lucru, creați un fișier în folderul / engine / modules / și numiți-l mod_lastcomm.php În continuare, vă dau o listă a codului acestui fișier cu comentarii detaliate.

Codul

DATALIFENGINE". Această constantă este definită în index.php și valoarea ei TRUE simbolizează faptul că fișierul este inclus folosind include / require, și nu doar rulează. * / If (! Defined (" DATALIFEENGINE ")) (die (" Încercarea de hacking! " );) / * Includem clasa api astfel încât să putem folosi funcții pentru lucrul cu cache-ul. * / Include ("motor / api / api.class.php "); / * Încercăm să citim informațiile stocate în Cache-ul de la name lastcomm Recomand să dați nume semnificative la tot ceea ce stocăm în cache. lastcomm Este fișierul în folder / motor / cache /, A 60 Este durata de viață a cache-ului în secunde. În acest caz, dacă de la crearea fișierului a trecut mai mult timp de 60 de secunde, atunci va trebui să intrăm din nou în baza de date. * / $ lastcomm = $ dle_api-> load_from_cache ("lastcomm", 60); / * Verificați dacă avem un cache sau nu. Dacă nu, atunci urcăm în baza de date. * / if (! $ lastcomm) (/ * Interogarea efectivă în baza de date. Se realizează folosind funcția clasei $ db. Constanta PREFIX conține prefixul specificat în timpul instalării cms. Numele coloanelor sunt destul de normale , cred că nu este nevoie să explice ce fac ei. Introduceți identificatorul de interogare în variabila $ sql. * / $ Sql ​​​​= $ db-> interogare ("SELECT comments.post_id, comments.text, comments.autor, post.id, post.flag, post.category, post.date as newsdate , post.title, post.alt_name FROM ". PREFIX." _comentarii ca comentarii, ". PREFIX." _post ca post WHERE post.id = comentarii. post_id ORDER BY comments.date DESC LIMIT 0.20 "); / * С folosind funcția get_row () a clasei $ db, citim secvențial fiecare rând din rezultatele selecției. Informațiile sunt introduse în matricea $ row cu indici egali cu numele câmpurilor tabelului * / while ($ rând = $ db-> get_row ($ sql)) (/ * Dacă este necesar, tăiați titlul știrilor * / if (strlen ($ rând ["titlu")> 50) ($ titlu = substr ($ rând ["titlu"], 0, 50). "...";) else ($ titlu = $ rând ["titlu"];) / * Formular cu un link către profilul utilizatorului. La fel * / $ aname = urlencode ($ rând ["autor"]); $ nume = " ". $ rând [" autor "].""; / * Formați textul comentariului și tăiați-l dacă este necesar * / $ text = htmlspecialchars ($ rând [" text "]); if (strlen ($ text)> 1024) $ text = substr ($ text, 0, 1024) . "..."; / * Formează un link către știri. Matricea $ config conține toate setările sistemului. În special, $ config ["http_home_url"] este adresa URL a domeniului. * / $ Newslink = $ config ["http_home_url"]. $ row ["post_id"]. "-". $ row ["alt_name"]. ". html"; $ hint = "onMouseover = \" showhint ("$ text", acest eveniment, ""); \ "" ; $ titlu = "(! LANG: „.stripslashes ($ titlu).”"; / * Postarea finală pentru un comentariu * / $ lastcomm. =" De la $ name în știri:
titlu $

";) $ db-> gratuit (); / * Memorăm în cache datele primite. Pentru a înțelege mai bine funcțiile de cache, deschideți fișierul" motor / api / api.class.php "totul este perfect comentat acolo * / $ dle_api -> save_to_cache (" lastcomm ", $ lastcomm);) / * Imprimă rezultatul * / echo $ lastcomm;?>

Concluzie

Acest cod funcționează complet. Și, desigur, are dezavantajele sale. De exemplu, nu este verificat pentru legături - dacă CNC-ul este activat. Sau, când facem clic pe linkul către profilul utilizatorului, ajungem direct la profilul lui, și nu la fereastra jQuery cu informații scurte. În general, există ceva de îmbunătățit. Dar toate aceste lucruri nu au fost incluse aici dintr-un singur motiv - pentru a preveni confuzia începătorului. De asemenea, vă sfătuiesc să analizați și alte fișiere, de exemplu topnews.php. Dacă aveți întrebări despre scrierea modulelor sau despre sistem în general, vă voi răspunde cu plăcere.

Asta e tot pentru mine, dacă acest subiect pare interesant cuiva, atunci voi face o serie de articole despre cms Datalide Engine (DLE).

Da, acesta este primul meu articol despre Habré, așa că îmi pare rău dacă ceva nu merge bine.

Salutări tuturor celor care își dedică timpul prețios acestor rânduri.

În acest articol, vreau să vorbesc despre modalități de configurare optimă a serverului DataLife Engine și a sistemului de management al conținutului. Timp de 4 ani de lucru cu site-uri și servere de internet, am învățat că securitatea este mai presus de comoditate și că trebuie să i se acorde atenție. Rezervare: Nu pretind dreptul de autor al proprietății intelectuale a nimănui! Tot materialul a fost colectat pe internet.

Mai jos vom descrie acțiuni care vor ajuta la distribuirea încărcării serverului, la protejarea acesteia de atacurile DOS, la restricționarea accesului la protocolul FTP și la configurarea corectă a sistemului DataLife Engine.

Protecția și configurarea serverului dvs.

1. Configurarea configurației serverului utilizând pachetul front-end Nginx to Apache.

Avantajele unei astfel de scheme pot fi înțelese cu un mic exemplu. Imaginați-vă că serverul dvs. web Apache trebuie să deservească aproximativ 1000 de solicitări simultan, dintre care multe sunt conectate la legături lente. În cazul utilizării Apache, vom obține 1000 de procese httpd, pentru fiecare dintre ele va fi alocată RAM, iar această memorie nu va fi eliberată până când clientul nu va primi conținutul solicitat.

În cazul unei scheme care utilizează un server front-end, vom obține economii semnificative de resurse datorită faptului că, după ce sosește o solicitare, nginx transmite cererea către Apache și primește rapid un răspuns. Ca rezultat, Apache eliberează memoria după ce răspunde la nginx. Apoi, serverul web nginx interacționează cu clientul, care este doar scris pentru a servi conținut static unui număr mare de clienți cu un consum nesemnificativ de resurse de sistem.

Pentru funcționarea corectă a pachetului nostru, avem nevoie de un modul pentru Apache. Există o astfel de nevoie din următorul motiv: solicitările către Apache provin de la adresa IP pe care rulează nginx, respectiv, în fișierele jurnal Apache va apărea doar adresa IP a serverului nginx. De asemenea, fără a utiliza acest modul, problemele vor începe cu scripturile care folosesc adresa IP a vizitatorului și mecanismul de restricționare a accesului prin adrese IP folosind .htaccess va înceta să funcționeze corect.

Instalarea NGINX pe sistemul de operare popular.

Red Hat Enterprise Linux 4 / CentOS 4
Pentru a instala nginx pe aceste sisteme de operare, trebuie să conectați un depozit suplimentar de pachete.

Red Hat Enterprise Linux 5 / CentOS 5
Pentru a instala nginx pe aceste sisteme de operare, trebuie să conectați depozitul suplimentar de pachete EPEL.

ASPLinux Server 5 / Fedora
nginx este inclus în pachetul de distribuție standard.

Dacă depozitele sunt conectate sau pur și simplu nu sunt necesare, rulați: yum instalează nginx

Instalarea Apache.

Pentru a instala serverul web Apache, rulați: yum instalează httpd

Instalarea mod_rpaf.

1. Instalați pachetul httpd-devel:

yum -y instalează httpd-devel


2. Descărcați și instalați mod_rpaf:
Intrăm în directorul / usr / local / src

cd / usr / local / src


Încărcați fișierul mod_rpaf-0.6.tar.gz în / usr / local / src

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


Despachetați mod_rpaf-0.6.tar.gz

tar xzf mod_rpaf-0.6.tar.gz


Accesați directorul în care ați despachetat

Am pus modulul în sistem

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


3. Apoi, trebuie să creați un fișier de configurare mod_rpaf - /etc/httpd/conf.d/rpaf.conf și să adăugați următoarele linii la acesta:


RPAFenable Activat
RPAFproxy_ips 127.0.0.1 xx.xx.xx.xx yy.yy.yy.yy


unde xx.xx.xx.xx și yy.yy.yy.yy sunt adresele IP ale serverului dvs. Dacă există mai mult de două IP-uri pe server, adăugați-le după aceeași analogie.

repornirea serviciului httpd


4. În nginx, următoarele linii trebuie specificate în blocul http ():

proxy_set_header Gazdă $ gazdă;


Dacă aceste linii sunt specificate, nu este necesar să le adăugați.

Dacă nginx.conf este modificat, nginx ar trebui repornit:

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


5. Cum se verifică dacă un modul instalat funcționează?
Pe oricare dintre domeniile care se află pe serverul dvs., plasați fișierul test.php cu următorul conținut:

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


Apoi urmați linkul, unde domain.tcom este numele domeniului dvs. Dacă IP-ul afișat este diferit de IP-ul serverului dvs., modulul funcționează corect.

Configurarea NGINX.

Mai jos este fișierul de configurare nginx pentru a acționa ca un server front-end. Se presupune că nginx va rula pe toate interfețele de pe portul 80, iar Apache va rula pe interfața 127.0.0.1 și portul 8080. Salvați acest fișier de configurare în directorul / etc / nginx / cu numele nginx.conf.

utilizator nginx;
lucrător_procese 10;
error_log /var/log/nginx/error.log depanare;
pid /var/run/nginx.pid;

evenimente (
muncitor_conexiuni 20000;
}

http (
include /etc/nginx/mime.types;
aplicație tip_default / octet-stream;
log_format principal „$ remote_addr - $ remote_user [$ time_local] $ status”
"" $ cerere "$ body_bytes_sent" $ http_referer ""
"" $ http_user_agent "" http_x_forwarded_for "";
access_log /var/log/nginx/access.log principal;
sendfile activat;
tcp_nopush activat;
tcp_nodelay activat;
keepalive_timeout 30;
send_timeout 900;
server_tokens dezactivat;
Server (
asculta 80;
numele serverului _;
server_name_in_redirect off;
access_log /var/log/nginx/host.access.log principal;
Locație / (
proxy_pass http://127.0.0.1:8080/;
proxy_redirect dezactivat;
proxy_set_header Gazdă $ gazdă;
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;
}
}


Configurarea Apache.

În fișierul de configurare Apache /etc/httpd/conf/httpd.conf găsiți linia:

și înlocuiți-l cu linia:

Ascultă 127.0.0.1:8080


Configurarea mod_rpaf.

Adăugați modulul mod_rpaf la fișierul dvs. de configurare Apache. Pentru a face acest lucru, adăugați următoarea linie în fișierul /etc/httpd/conf/httpd.conf:

LoadModule module rpaf_module / mod_rpaf-2.0.so


Apoi adăugați liniile în același fișier:

RPAFenable Activat
RPAFsethostname Dezactivat
RPAFproxy_ips 127.0.0.1 192.168.0.1
RPAFheader X-Real-IP


În loc de 192.168.0.1, trebuie să puneți adresa IP a serverului.

2. Configurare server pentru a proteja împotriva atacurilor dos.

Activem stocarea în cache a paginii principale în nginx pentru cei care nu au cookie-uri.

Adăugați restricții la nginx.conf:

limit_req_zone $ binary_remote_addr zone = doi: 20m rate = 2r / s;
Server (
Locație / (
limit_req zone = două explozii = 5;
}
}
}


Folosind tail și awk:

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


Conectam jurnalul:

coada -f /var/log/nginx/access.log | grep GET / HTTP / 1.1 "503 | awk" (tipărește 1 $) "


Obținem IP-ul mașinilor:

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


Introduceți IP-ul în firewall:

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


Acum să setăm connlimit pentru iptables pentru a restricționa conexiunile bot. În reguli, am stabilit permisiunea pentru 5 conexiuni de la un IP și 25 de la o subrețea de clasă C.

Atac DDOS de la 16000 de roboți - Încărcare medie: 1,4 1,9 2,0

Restricționarea accesului FTP

Pentru aceasta avem nevoie de un fișier .ftpaccess. Vă va ajuta să refuzați sau să permiteți accesul FTP de la adresele IP specificate. Cineva ar putea pune întrebarea: „Am un IP dinamic, cum folosesc corect .ftpaccess?” Răspunsul la care vreau să spun este doar acesta: „Dacă aveți nevoie de acest supliment de securitate, obțineți un IP static de la furnizorul dvs. Nu îți vor cere mulți bani.”

Pentru a crea fișierul .ftpacces avem nevoie de acces SSH. Puteți utiliza programul winscp. Pot fi multe setări în .ftpaccess, dar ne interesează doar un parametru. Scriind aceste rânduri în fișier, veți închide complet accesul tuturor:

Negați de la toți


După cele de mai sus, nimeni nu va mai putea intra pe FTP. Pentru a adăuga permisiunea de acces la un anumit IP, trebuie să specificați următorii parametri:

Permite de la 127.0.0.1
Negați de la toți


Desigur, adresa 127.0.0.1 este indicată pentru exemplu și trebuie înlocuită cu a ta.

Important! Cel mai bine este să interziceți accesul FTP absolut tuturor și să vă conectați numai prin SSH.

Protecția sistemului de management al conținutului DataLife Engine.

1. Instalați și configurați.

2. Redenumiți fișierul panoului de administrare și faceți un fals la vechea adresă (www.sait.com/admin.php) când treceți la care utilizatorul va fi blocat prin interzicerea ip-ului în .htaccess.

Redenumită? Acum creăm un fișier ip.txt în directorul rădăcină pentru a stoca adresele ip. Îi acordăm drepturi .htaccess CHMOD - 777.

Creați un fișier admin.php cu următorul conținut:


$ 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 from". $ ip);
fclose ($ f);

Panoul de administrare DataLife Engine

Text, de exemplu: IP-ul tău în jurnale, te voi găsi!

Frica, neînsemnătate, ha ha!

"
3. Adăugați autentificare suplimentară în centrul de administrare.

Trebuie să veniți cu un alt nume de utilizator și parolă (nu utilizați detaliile contului dvs. administrativ). Al doilea nume de utilizator și parolă trebuie să fie complet diferite de primul. Te-ai decis? Amenda! Acum ne vom cripta parola în md5 (puteți face acest lucru la md5encryption.com).
Apoi, deschideți admin.php (rețineți că l-am redenumit mai devreme și, prin urmare, dacă l-ați numit superadmin.php - trebuie să îl deschideți pe acesta) și după linia:

adăuga:

$ login = „introduceți autentificarea inventată”;
$ parola = "și parola generată în md5";
if (! isset ($ _ SERVER ["PHP_AUTH_USER"]) || $ _SERVER ["PHP_AUTH_USER"]! == $ autentificare ||
md5 ($ _ SERVER ["PHP_AUTH_PW"])! == $ parola) (
antet ("WWW-Authenticate: Basic realm =" Admin Panel "");
antet ("HTTP / 1.0 401 Neautorizat");
ieșire („Acces refuzat”);)


4. Dezactivați funcțiile php care nu sunt utilizate de sistem.

Pentru a căuta fișierul php.ini, creați un fișier phpinfo.php cu textul:

După căutare, asigurați-vă că ștergeți phpinfo.php!

disable_functions = allow_url_fopen, eval, exec, system, passthru, scandir, popen, shell_exec, proc_open, proc_close, proc_nice, get_current_user, getmyuid, posix_getpwuid, apache_get_modules, virtual, posix_getpwuid,_posix_getpwuid,_apachere,disc_getpwuid,_apache,_modules,_disable,_disc_modules , openlog, syslog, highlight_file, show_source, symlink, disk_total_space, ini_get_all, get_current_user, posix_uname, allow_url_fopen


5. Cream filtrare pentru cererile GET și POST, prevenim injectările în baza de date și primirea datelor de la aceasta.

Creați un fișier .php cu un nume arbitrar și următorul conținut:

// setați unul dacă doriți să activați depanarea solicitărilor
$ depanare = 0;

$ bag_req = matrice ("select", "eval", "echo", "UPDATE", "LIMIT", "INSERT", "INTO", "union", "CONCAT", "INFORMATION_SCHEMA", "OUTFILE", " DUMPFILE "," LOAD_FILE "," BENCHMARK "," SUBSTRING "," ASCII "," CHAR "," baza de date "," HEX "," \\. \\ / ","% 00 "," \\. Htaccess "," config \\. php "," document \\. cookie ");
$ cerere = serializa ($ _ GET);


dacă ($ _ GET)
{
foreach ($ bag_req ca $ cheie => $ valoare) (
{
Solicitare găsită în matrice valoare $
cerere $";
}
}
}
dacă ($ _ POST)
{
$ cerere = str_replace („limbă_selectată”, „sl”, serialize ($ _ POST));
$ urequest = urldecode ($ cerere);
$ brequest = base64_decode ($ cerere);
foreach ($ bag_req ca $ cheie => $ valoare) (
if (preg_match ("/ $ valoare / i", $ cerere) || preg_match ("/ $ valoare / i", $ urequest) || preg_match ("/ $ valoare / i", $ brequest))
{
dacă ($ debug == "1") $ do_debug = "
Solicitare găsită în matrice valoare $ care blochează funcţionarea corectă
cerere $";
die („CERERE REA $ do_debug”);
}
}
}
?>


Îl salvăm pe server în orice director al sistemului DLE. Deschideți fișierul motor / classes / mysql.php și după:

dacă (! definit ("DATALIFEENGINE"))
{
die („Încercare de hacking!”);
}


conectați fișierul creat:

include_once (DIR_MOTOR "/ calea_la_fișier / nume.php");


6. Folosind componente gratuite pentru DLE, asigurați-vă că aflați părerea unui specialist despre fiabilitatea acestora.

Dacă aveți întrebări, vă rugăm să contactați motoarele de căutare - tot materialul este disponibil gratuit!
Ceva de adăugat? Sunteți bineveniți la discuție!

Mult succes ție și proiectelor tale!

DLE sau DataLife Engine este un CMS plătit pentru gestionarea conținutului site-ului dvs. web. CMS are un sistem puternic de gestionare a știrilor, publicațiilor, articolelor, utilizatorilor și este conceput pentru a crea portaluri de informații și bloguri. Datorită numeroaselor funcții încorporate și utilizării tehnologiei avansate AJAX în activitatea CMS, site-ul dvs. va consuma mai puține resurse de server, chiar și cu un număr mare de vizitatori. Acest ghid vă va arăta cum să instalați DLE pe Hostinger.

Înainte de a începe acest tutorial, aveți nevoie de următoarele:

  • Acces la panoul de control al găzduirii

Cum se instalează DLE pe Hostinger

Înainte de a începe instalarea DLE, trebuie să efectuați acești pași:

Pasul 1 - Descărcarea fișierelor de instalare DLE

Deschide folderul încărcațiîn clientul dvs. FTP și încărcați toate fișierele din folder în contul dvs. de găzduire în director public_html.

NOTA! Folosim FileZilla pentru a încărca fișiere în acest tutorial, dar puteți folosi orice client FTP doriți.

Pasul 3 - Setarea permisiunilor pentru fișiere

Instalarea DLE are loc în modul automat, tot ce trebuie să faceți este să setați drepturile corespunzătoare pentru mai multe foldere și fișiere separate pe care le-ați încărcat anterior în contul dvs. de găzduire.

  1. Mai întâi, setați permisiunile de scriere pentru folder șabloaneși toate subfolderele sale. Pentru a face acest lucru, faceți clic dreapta pe folder șabloaneîn interfața FileZilla și selectați opțiunea Atributele fișierului...

  1. Apoi, în fereastra care apare, intrați Valoare numerică 777 pentru a modifica permisiunile de scriere, bifați caseta de lângă Redirecționați către subdirectoare si marca Aplicați numai pentru directoare.

  1. Apoi, trebuie să modificați permisiunile pentru toate fișierele din folder șabloane, dar cu drepturile 666. Pentru a face acest lucru, redeschideți atributele folderului șabloane si intreaba Valoare numerică 666, bifați caseta de lângă Redirecționați către subdirectoare -> Aplicați numai fișierelor.

  1. Efectuați acțiuni identice cu folderele backup, încărcăriși, de asemenea, pentru toate folderele din interiorul lor. Următorul pentru foldere / motor / date /, / motor / cache /, / motor / cache / sistem /... Setați permisiunile de scriere la 777 pentru toate directoarele specificate.
  2. Acum puteți începe să instalați DLE.

Pasul 4 - Instalarea DLE pe Hostinger

Pentru a începe instalarea, introduceți numele de domeniu într-un browser. Dacă fereastra de instalare nu iese automat, adăugați install.php la numele domeniului dumneavoastră. De exemplu, your-domain.ru / install.php.

  1. Dacă totul este făcut corect, veți vedea fereastra DataLife Engine Installation Wizard. Faceți clic pe butonul Începe instalarea.

  1. Apoi, acceptați acordul de utilizare bifând caseta de lângă Accept acest acord... Apăsați butonul pentru a continua instalarea. Continua.

  1. În fereastra următoare, verificați dacă serverul dvs. îndeplinește cerințele necesare și faceți clic pe butonul Continua.

  1. Apoi, verificați dacă permisiunile pentru fișiere pe care le-ați setat anterior sunt corecte. Dacă totul este corect, apăsați din nou Continua.

  1. În fereastra nouă, trebuie să completați detaliile bazei de date și acreditările pentru contul dvs. de administrator al site-ului DLE.

  • Adresa paginii- adresa site-ului dvs. web

Date pentru accesarea serverului MySQL.

  • Server MySQL- Serverul MySQL al bazei de date pe hosting. Dacă sunteți utilizator Hostinger, puteți găsi informațiile de care aveți nevoie în secțiune Baze de date -> Baze de date MySQL.
  • Numele bazei de date Este numele bazei de date MySQL.
  • Nume de utilizator- numele utilizatorului alocat bazei de date.
  • Parola- parola pentru contul de utilizator al bazei de date.
  • Prefix- prefixul tabelelor bazei de date MySQL. Îl poți lăsa neschimbat.
  • Motor de baze de date- este recomandat să lăsați valoarea implicită. InnoDB.
  • 4 octeți UTF- când această opțiune este activată, DLE va stoca informații suplimentare în baza de date. Această opțiune poate afecta performanța site-ului dvs.

Date pentru acces la panoul de control.

Introduceți acreditările pentru a accesa panoul de control al site-ului dvs. Introduceți adresa dvs. de e-mail reală, aceasta va fi folosită pentru a recâștiga accesul la contul dvs. de administrator.

Setari aditionale.

Activați suportul CNC- includeți o adresă URL care poate fi citită de om. Când această opțiune este activată, titlul articolului va fi afișat în adresa articolului. Această caracteristică este utilă pentru optimizarea SEO.

  1. Pentru a evita repornirea instalării sau a actualizării, ștergeți fișierul install.phpși folder modernizare din directorul site-ului dvs. Faceți clic pe butonul Continua.

Felicitări, instalarea DLE pentru site-ul dvs. pe Hostinger a avut succes.

Concluzie

După finalizarea acestui ghid, ați învățat cum să instalați DLE pe o găzduire. Instalarea DLE este un proces destul de ușor dacă ați urmat cu atenție ghidul nostru pas cu pas. În ciuda abundenței de CMS astăzi, DLE are propriile sale caracteristici și performanțe bune.

Top articole similare