Späť na blog

Nastavenie Redis servera ako správcu relácií pre PHP na Ubuntu 20.04

Nastavenie Redis servera ako správcu relácií pre PHP na Ubuntu 20.04

Redis je open-source in-memory cache a úložný systém, označovaný aj ako server dátových štruktúr. Ponúka pokročilú podporu pre niekoľko dátových typov, ako sú hashe, zoznamy, množiny, bitmapy a mnohé ďalšie. Vďaka svojmu vynikajúcemu výkonu si Redis získal popularitu v popredných odvetviach a špičkových nadnárodných spoločnostiach.

Výhody Redis

Pokiaľ ide o rýchlosť, serverom Redis sa nič nevyrovná. Ako NoSQL databázový server ponúka fantastickú rýchlosť ukladania a získavania dát. Okrem toho má Redis vynikajúce funkcie, vďaka ktorým je práca s rôznymi dátami, vrátane tých komplexných, bezproblémová. Jednoduchosť používania a sofistikované funkcie Redis nielenže pomohli tomuto systému vyniknúť, ale umožnili aj jeho rastúcu štandardizáciu ako mainstreamovej databázy pre firemných aj individuálnych používateľov.

Nižšie podrobne popíšeme kroky, ktoré vám pomôžu nainštalovať Redis na softvér Ubuntu 20.04. V tomto návode získate všetky potrebné informácie od inštalácie až po konfiguráciu externého servera Redis, ktorý sa bude používať ako session handler pre PHP aplikáciu bežiacu na Ubuntu 20.04.

Začíname

Na vykonanie týchto krokov budete potrebovať dva rôzne databázové servery (droplety) umiestnené v rovnakom dátovom centre s povolenou privátnou sieťou. Patria sem:

  • PHP webový server bežiaci na LAMP a LEMP na Ubuntu 20.04 – tento server budeme označovať ako web.

  • Druhý, čistý server Ubuntu 20.04, na ktorom bude nainštalovaný Redis – tento server budeme označovať ako redis.

Krok 1 — Inštalácia servera Redis

Naším prvým krokom je inštalácia servera Redis na Ubuntu 20.04. Po dokončení sa uistite, že server beží na našom redis Droplete.

V tomto návode budeme používať Personal Package Archives (PPA). Z bezpečnostných dôvodov dôrazne odporúčame použiť PPA. V porovnaní s inými repozitármi tretích strán sú PPA stabilné, ľahko sa inštalujú a predovšetkým je tento repozitár navrhnutý pre používateľov Ubuntu. PPA vám umožňuje získať najnovšiu dostupnú verziu softvéru, a to aj pre softvér, ktorý nenájdete v oficiálnych repozitároch Ubuntu.

Používanie PPA z neautorizovaného zdroja je absolútne nevhodné. Uistite sa, že PPA získavate len z autentických a overených zdrojov. Repozitár PPA môžete pridať pomocou príkazu:

Stlačením klávesu Enter potvrďte. Po potvrdení aktualizujeme vyrovnávaciu pamäť správcu balíkov pomocou nasledujúceho príkazu:

Ďalej nainštalujeme Redis pomocou príkazu:

Po spustení príkazu budete mať Redis nainštalovaný na vašom serveri. Otestujme inštaláciu pomocou príkazu:

Po zadaní príkazu uvidíte inštanciu Redis bežiacu na localhost na porte 6379. Taktiež sa zobrazí odpoveď s názvom PONG. Ak to vidíte, znamená to, že ste úspešne dokončili prvý krok. Podrobný návod na inštaláciu a zabezpečenie Redis nájdete v našom návode Ako nainštalovať a zabezpečiť Redis na Ubuntu 18.04.

Ďalej prejdime k ďalšiemu kroku – konfigurácii Redis.

Step 2 — Redis Configuration to Accept External Connections

Hlavným cieľom konfigurácie Redis je prijímanie pripojení prichádzajúcich zvonku. Prečo? Pretože Redis predvolene povoľuje pripojenia iba k localhost, a pripojenie odinakiaľ je obmedzené. Zjednodušene povedané, prístup budete mať len z vnútra servera, na ktorom máte Redis nainštalovaný.

Najprv získajte podrobný prehľad o svojich sieťových rozhraniach pomocou príkazu ifconfig :

Získate nasledujúci výstup:

Na eth1 rozhraní nájdete inet_addr. Tu máme 10.133.14.9. Túto IP adresu použijeme v nasledujúcich krokoch na pripojenie redis servera z web servera.

Step 3— Localhost Binding

Môžete slobodne použiť editor kódu podľa vlastného výberu (najpopulárnejšie sú Atom a Visual Studio Code).

Teraz otvorte súbor /etc/redis/redis.conf a vyhľadajte riadok, ktorý obsahuje bind definíciu. Mali by ste pridať svoju IP adresu privátnej siete do riadku:

Môžete vidieť localhost, namiesto 127.0.0.1. Žiadne obavy, stačí pridať vašu privátnu IP adresu. Potom reštartujte službu Redis, aby sa zmeny prejavili. Na reštartovanie redis servera použite nasledujúci príkaz:

Pre používateľov, ktorí si nainštalovali Redis pomocou aplikácie na jedno kliknutie, použite na reštartovanie servera nižšie uvedený príkaz:

Po reštartovaní redis servera sa akýkoľvek server v rovnakej privátnej sieti automaticky pripojí k tejto inštancii Redis bez toho, aby ste to museli robiť jednotlivo.

Krok 4 — Nastavenie hesla pre Redis server

Tento krok môžete preskočiť, ak používate inštaláciu Redis na cvičné alebo školiace účely. Nastavenie hesla pre redis server sa však dôrazne odporúča, ak chcete pridať ďalšiu vrstvu zabezpečenia vašej inštalácie Redis. Upravme rovnaký konfiguračný súbor ako v predchádzajúcom kroku. Na úpravu použite príkaz:

Odkomentujte riadok, ktorý obsahuje requirepass, a nastavte silné heslo:

Reštartujte službu Redis, aby sa prejavili zmeny, ktoré ste vykonali. Na reštartovanie použite príkaz:

Step 5 — Redis Connection and Authentication Testing

V tomto kroku sa pripojíme k službe Redis z vnútra stroja redis, aby sme sa uistili, že všetky vykonané zmeny fungujú bezproblémovo podľa očakávania. Na pripojenie použite nižšie uvedený príkaz:

Tu platí, že aj keď vynecháte zadanie názvu hostiteľa, stále sa to spustí. Naším hlavným cieľom je uistiť sa, že služba Redis bezproblémovo prijíma pripojenia:

Je možné, že dostanete chybu AUTH pri pokuse o prístup k údajom pomocou definovaného hesla:

Váš výstup bude vyzerať podobne ako tento:

Na autentifikáciu spustite príkaz AUTH spolu s rovnakým heslom, aké ste definovali v súbore /etc/redis/redis.conf súbore:

Potom príkaz spustite znova:

Tentoraz dostanete ako odpoveď OK namiesto chyby. Výstup bude vyzerať nasledovne:

Výstup empty list alebo set znamená, že server Redis je prázdny. Je to preto, že sme webový server ešte nenakonfigurovali ako obsluhu relácií (session handler).

Poznámka: Predtým, ako sa pohneme ďalej, sa uistite, že relácia SSH je otvorená a pripojená k redis-cli. V nasledujúcich krokoch sa vrátime k príkazovému riadku redis-cli, aby sme overili, či sa údaje relácie správne uložili po vykonaní potrebných zmien na web serveri.

Krok 6 — Inštalácia rozšírenia Redis na webovom serveri

Nasledujúce kroky by sa mali vykonať na web serveri. Musíme nainštalovať rozšírenie PHP Redis, aby sa PHP mohlo pripojiť k serveru Redis.

Najprv aktualizujte vyrovnávaciu pamäť správcu balíkov spustením príkazu:

Potom nainštalujte balík php5-redis :

Všetko je pripravené na pripojenie k službe Redis.

Krok 7 — Nastavenie Redis ako predvoleného obslužného programu relácií na webovom serveri

PHP má predvolený obslužný program relácií. V tomto kroku upravíme súbor php.ini na web serveri, aby sme zmenili predvolené nastavenia. Umiestnenie súboru php.ini závisí od aktuálneho prostredia (stacku):

  • Pre LAMP stack na Ubuntu 20.04 použite: /etc/php5/apache2/php.ini.

  • Pre LEMP stack na Ubuntu 20.04 je cesta zvyčajne /etc/php5/fpm/php.ini.

Ak si nie ste istí umiestnením vášho hlavného súboru php.ini, pomôžte si funkciou phpinfo(). Umiestnite nasledujúci kód do súboru s názvom info.php vo vašom koreňovom adresári webu:

Keď sa pokúsite o prístup k skriptu z prehliadača, vyhľadajte riadok obsahujúci „Loaded Configuration File“. Nájdete tam presné umiestnenie načítaného hlavného súboru php.ini. Nezabudnite odstrániť súbor info.php, pretože obsahuje citlivý obsah o vašom prostredí.

Potom otvorte súbor php.ini a vyhľadajte riadok obsahujúci session.save_handler. Predvolená hodnota bude files, uistite sa, že ju zmeníte na redis.

V prostrediach LAMP:

V prostrediach LEMP:

Potom odkomentujte session.save_path a upravte hodnotu tak, aby obsahovala reťazec pripojenia k Redis. Obsah musí mať nasledujúci formát:

Použite heslo, ktoré sme nastavili v Kroku- 4.. V prípade, že nepoužívate nastavené heslo, zadajte parameter auth pri konfigurácii Redis. Teraz uložte súbor a reštartujte php službu na oboch prostrediach.

Na LAMP prostrediach:

Na LEMP prostrediach:

Krok 8 — Testovanie správy relácií Redis

V poslednom kroku potrebujeme PHP skript alebo aplikáciu, aby sme sa uistili, že vaše relácie sú teraz spravované systémom Redis. Použijeme jednoduchý skript, ktorý implementuje počítadlo – pri každom načítaní stránky sa zobrazené číslo zvýši.

Vytvorte súbor s názvom demo.php na web serveri a uložte ho do koreňového adresára dokumentov:

Potom zmeňte /usr/share/nginx/html tak, aby odrážala vašu cestu ku koreňovému adresáru dokumentov:

Ďalej musíte nasmerovať svoj prehliadač na http://web/demo.php pre prístup k skriptu. Program zvýši číslo pri každom načítaní stránky.

Teraz budete mať informácie o relácii uložené na serveri Redis. Pre overenie sa musíte vrátiť do svojej SSH relácie na redis stroji pomocou redis-cli. Získajte obsah znova pomocou keys *:

Nižšie uvidíte výstup:

Výstup overuje, že všetky informácie sú bezpečne uložené na redis serveri. Ak chcete pripojiť ďalšie web servery, môžete postupovať rovnakým spôsobom.

Záver

Redis is a NoSQL database that allows the storage of numerous unstructured data. Very few databases can compare to the functionalities and simplicity of the redis server. Its increasing popularity continually makes it a must-have with few substitutes compared to its broad features.

Ak si chcete hlbšie rozšíriť svoje znalosti o PHP aplikáciách a ich používaní, môžete si pozrieť nasledujúce návody z nášho blogu:

Príjemnú prácu!

author

Shreyas Patil

Autor · CloudSigma

Preslav Dobrev je kreatívny dizajnér v spoločnosti CloudSigma, ktorý sa zameriava na konzistentnú firemnú identitu prostredníctvom tradičných a inovatívnych marketingových kanálov. Dokáže brilantne spájať umeleckú víziu so strategickým marketingom, čím vytvára pôsobivé príbehy značky.

Komentáre

Zatiaľ žiadne komentáre. Buďte prvý.