Natrag na blog

Postavljanje Redis poslužitelja kao rukovatelja sesijama za PHP na Ubuntu 20.04

Postavljanje Redis poslužitelja kao rukovatelja sesijama za PHP na Ubuntu 20.04

Redis je sustav otvorenog koda za predmemoriranje i pohranu u memoriji, koji se također naziva poslužiteljem podatkovnih struktura. Nudi naprednu podršku za nekoliko tipova podataka, kao što su sažeci (hashes), popisi, skupovi, bitmape i mnogi drugi. Zbog svojih izvrsnih performansi, Redis je vrlo popularan u vodećim industrijama i vrhunskim multinacionalnim kompanijama.

Prednosti Redisa

Kada je riječ o brzini, Redis poslužiteljima nema premca. Kao NoSQL poslužitelj baze podataka, nudi fantastičnu brzinu pohrane i dohvaćanja podataka. Osim toga, Redis ima izvanredne funkcionalnosti koje omogućuju besprijekoran rad s različitim podacima, uključujući i one složene. Jednostavnost korištenja i sofisticirane funkcionalnosti Redisa ne samo da su ga istaknule, već su omogućile i njegovu sve veću standardizaciju kao glavne baze podataka za korporativne i pojedinačne korisnike.

U nastavku ćemo detaljno opisati korake koji će vam pomoći da instalirate Redis na softver Ubuntu 20.04. U ovom vodiču dobit ćete sve potrebne informacije od instalacije do konfiguriranja vanjskog Redis poslužitelja koji će se koristiti kao rukovatelj sesijama za PHP aplikaciju koja se izvodi na sustavu Ubuntu 20.04.

Početak rada

Kako biste prošli kroz korake, trebat će vam dva različita poslužitelja baze podataka (dropleta) smještena u istom podatkovnom centru s omogućenom privatnom mrežom. To uključuje:

  • PHP web poslužitelj koji pokreće LAMP i LEMP na sustavu Ubuntu 20.04 – ovaj ćemo poslužitelj nazivati web.

  • Drugi, čisti Ubuntu 20.04 poslužitelj na kojem će se instalirati Redis – ovaj ćemo poslužitelj nazivati redis.

Korak 1 — Instalacija Redis poslužitelja

Naš prvi korak je instalacija Redis poslužitelja na Ubuntu 20.04. Kada to učinite, provjerite radi li poslužitelj na našem redis Dropletu.

U ovom vodiču koristit ćemo Personal Package Archives (PPA). Preporučujemo korištenje PPA-a iz sigurnosnih razloga. U usporedbi s drugim repozitorijima trećih strana, PPA-ovi su stabilni, jednostavni za instalaciju i, iznad svega, repozitorij je dizajniran za korisnike Ubuntua. PPA vam omogućuje da dobijete najnoviju dostupnu verziju softvera, čak i za softver koji ne nalazite u službenim repozitorijima Ubuntua.

Korištenje PPA-ova iz neovlaštenih izvora nikako se ne preporučuje. Pobrinite se da PPA-ove preuzimate samo iz autentičnih i provjerenih izvora. Možete dodati PPA repozitorij pomoću naredbe:

Pritisnite tipku Enter za potvrdu. Nakon potvrde, ažurirat ćemo predmemoriju upravitelja paketima pomoću sljedeće naredbe:

Zatim ćemo instalirati Redis pomoću naredbe:

Nakon što izvršite naredbu, imat ćete instaliran Redis na svom poslužitelju. Testirajmo instalaciju pomoću naredbe:

Nakon što pokrenete naredbu, vidjet ćete pokrenutu instancu Redisa na localhost na portu 6379. Također, dobit ćete odgovor pod nazivom PONG. Ako to vidite, to znači da ste uspješno završili prvi korak. Za detaljan vodič o instalaciji i osiguravanju Redisa, možete pogledati naš vodič How to Install and Secure Redis on Ubuntu 18.04.

Zatim prijeđimo na sljedeći korak - konfiguriranje Redisa.

Korak 2 — Konfiguracija Redisa za prihvaćanje vanjskih veza

Glavni cilj konfiguriranja Redisa je prihvaćanje veza koje dolaze izvana. Zašto? Zato što Redis – prema zadanim postavkama, dopušta veze samo na localhost, i postoji ograničenje povezivanja s bilo kojeg drugog mjesta. Jednostavnije rečeno, imat ćete pristup samo s poslužitelja na kojem ste instalirali Redis.

Najprije dobit ćete detaljan uvid u svoja mrežna sučelja pomoću ifconfig naredbe:

Dobit ćete sljedeći izlaz:

Na eth1 sučelju, naći ćete inet_addr. Ovdje imamo 10.133.14.9. Koristit ćemo ovu IP adresu u sljedećim koracima za povezivanje na redis poslužitelj s web poslužitelja.

Korak 3 — Povezivanje na localhost

Slobodno koristite uređivač koda po svom izboru (Atom i Visual Studio Code su najpopularniji).

Sada otvorite datoteku /etc/redis/redis.conf i potražite redak koji sadrži definiciju bind. Trebali biste dodati svoju IP adresu privatne mreže u taj redak:

Možda ćete vidjeti localhost, umjesto 127.0.0.1. Bez brige, samo trebate dodati svoju privatnu IP adresu. Zatim ponovno pokrenite uslugu Redis kako biste primijenili promjene. Koristite naredbu u nastavku za ponovno pokretanje redis poslužitelja:

Za one korisnike koji su instalirali Redis pomoću aplikacije jednim klikom, slijedite naredbu navedenu u nastavku za ponovno pokretanje poslužitelja:

Nakon što ponovno pokrenete redis poslužitelj, bilo koji poslužitelj koji se nalazi u istoj privatnoj mreži automatski će se povezati s ovom Redis instancom, bez potrebe da to radite pojedinačno.

Korak 4 — Postavljanje lozinke Redis poslužitelja

Možete preskočiti ovaj korak ako koristite instalaciju Redisa u svrhu vježbe ili obuke. Međutim, postavljanje lozinke za redis poslužitelj se toplo preporučuje ako želite dodati dodatni sloj sigurnosti svojoj instalaciji Redisa. Izmijenimo istu konfiguracijsku datoteku kao i u prethodnom koraku. Koristite naredbu za uređivanje:

Odkomentirajte redak koji sadrži requirepass, i postavite jaku lozinku:

Ponovno pokrenite Redis uslugu kako bi se primijenile promjene koje ste napravili. Koristite naredbu za ponovno pokretanje:

Korak 5 — Testiranje Redis veze i autentifikacije

U ovom koraku povezat ćemo se s Redis uslugom iz redis stroja kako bismo se uvjerili da sve napravljene promjene rade besprijekorno kao što se i očekuje. Za povezivanje koristite donju naredbu:

Ovdje, čak i ako preskočite navođenje naziva računala, i dalje će se pokrenuti. Naš primarni cilj je osigurati da Redis usluga besprijekorno prihvaća veze:

Moguće je da dobijete AUTH pogrešku kada pokušate pristupiti podacima s definiranom lozinkom:

Vaš izlaz će izgledati slično ovome:

Za autentifikaciju pokrenite AUTH naredbu zajedno s istom lozinkom koju ste definirali u /etc/redis/redis.conf datoteci:

Zatim ponovno pokrenite naredbu:

Ovaj put ćete dobiti OK kao odgovor umjesto pogreške. Dobit ćete izlaz kao u nastavku:

Izlaz empty list ili set znači da je Redis poslužitelj prazan. To je zato što još nismo konfigurirali web poslužitelj kao rukovatelja sesijama.

Napomena: Prije nego što krenemo dalje, provjerite je li SSH sesija otvorena i povezana s redis-cli. U sljedećim koracima vratit ćemo se na redis-cli upit kako bismo provjerili jesu li podaci sesije ispravno pohranjeni nakon što napravimo potrebne promjene na web poslužitelju.

Korak 6 — Instalacija Redis proširenja na web poslužitelju

Sljedeće korake treba izvršiti na web poslužitelju. Moramo instalirati PHP Redis proširenje kako bi se PHP mogao povezati s Redis poslužiteljem.

Najprije ažurirajte predmemoriju upravitelja paketa pokretanjem naredbe:

Zatim instalirajte php5-redis paket:

Sve je spremno za povezivanje s Redisom.

Korak 7 — Postavljanje Redisa kao zadane obrade sesija na web poslužitelju

PHP ima zadani rukovatelj sesijama. U ovom koraku uredit ćemo php.ini datoteku na web poslužitelju kako bismo promijenili zadane postavke. Lokacija php.ini datoteke ovisi o trenutnom stogu:

  • Za LAMP stog na Ubuntu 20.04, koristite: /etc/php5/apache2/php.ini.

  • Za LEMP stog na Ubuntu 20.04, putanja je obično /etc/php5/fpm/php.ini.

Ako niste sigurni u lokaciju svoje glavne php.ini datoteke, poslužite se funkcijom phpinfo(). Postavite sljedeći kod u datoteku pod nazivom info.php unutar vašeg korijenskog web direktorija:

Kada pokušate pristupiti skripti iz svog preglednika, potražite redak koji sadrži „Loaded Configuration File”. Pronaći ćete točnu lokaciju glavne učitane php.ini datoteke. Obavezno uklonite info.php datoteku jer sadrži sve osjetljive podatke o vašem okruženju.

Nakon toga otvorite php.ini datoteku i potražite redak koji sadrži session.save_handler. Zadana vrijednost bit će files, svakako je promijenite u redis.

Na LAMP okruženjima:

Na LEMP okruženjima:

Zatim odkomentirajte session.save_path i izmijenite vrijednost tako da sadrži niz za povezivanje s Redisom. Sadržaj mora pratiti sljedeći format:

Koristite lozinku koju smo postavili u Koraku 4. U slučaju da ne koristite postavljenu lozinku, navedite parametar auth prilikom konfiguriranja Redisa. Sada spremite datoteku i ponovno pokrenite php uslugu na oba okruženja.

Na LAMP okruženjima:

Na LEMP okruženjima:

Korak 8 — Testiranje Redis rukovanja sesijama

U posljednjem koraku, potrebna nam je PHP skripta ili aplikacija kako bismo se uvjerili da vašim sesijama sada upravlja Redis. Koristit ćemo jednostavnu skriptu koja implementira brojač – svaki put kada ponovno učitate stranicu, ispisani broj se povećava.

Izradite datoteku pod nazivom demo.php na web poslužitelju i držite je unutar korijenske mape vašeg dokumenta:

Zatim promijenite /usr/share/nginx/html kako bi odražavao putanju korijenske mape vašeg dokumenta:

Zatim morate usmjeriti svoj preglednik na http://web/demo.php kako biste pristupili skripti. Program će povećati broj svaki put kada ponovno učitate stranicu.

Sada ćete imati informacije o sesiji pohranjene na Redis poslužitelju. Za provjeru, morate se vratiti na svoju SSH sesiju na redis računalu koristeći redis-cli. Ponovno dohvatite sadržaj pomoću keys *:

Vidjet ćete sljedeći izlaz:

Izlaz potvrđuje da su sve informacije sigurno pohranjene na redis poslužitelju. Ako želite povezati dodatne web poslužitelje, možete slijediti isti postupak.

Zaključak

Redis je NoSQL baza podataka koja omogućuje pohranu brojnih nestrukturiranih podataka. Vrlo malo baza podataka može se usporediti s funkcionalnostima i jednostavnošću redis poslužitelja. Njegova sve veća popularnost neprestano ga čini nezaobilaznim s malo zamjena u usporedbi s njegovim širokim značajkama.

Kako biste dodatno produbili svoje znanje o PHP aplikacijama i načinu njihova korištenja, možete pogledati sljedeće vodiče s našeg bloga:

Sretno računanje!

author

Shreyas Patil

Autor · CloudSigma

Preslav Dobrev je kreativni dizajner u CloudSigma, usredotočen na dosljedan poslovni identitet korištenjem tradicionalnih i inovativnih marketinških kanala. Vješt je u spajanju umjetničke vizije sa strateškim marketingom kako bi stvorio dojmljive brendirane priče.

Komentari

Još nema komentara. Budite prvi.