Zpět na blog

Nastavení serveru Redis jako správce relací pro PHP na Ubuntu 20.04

Nastavení serveru Redis jako správce relací pro PHP na Ubuntu 20.04

Redis je open-source in-memory cache a úložný systém, označovaný také jako server datových struktur. Nabízí pokročilou podporu pro několik datových typů, jako jsou hashe, seznamy, množiny, bitmapy a mnoho dalších. Díky svému vynikajícímu výkonu si Redis získal oblibu v předních odvětvích a špičkových nadnárodních společnostech.

Výhody systému Redis

Pokud jde o rychlost, servery Redis nemají konkurenci. Jako NoSQL databázový server nabízí fantastickou rychlost ukládání a načítání dat. Kromě toho má Redis vynikající funkce, díky kterým je práce s různými daty, včetně těch složitých, bezproblémová. Snadné použití a sofistikované funkce systému Redis jej nejen odlišily, ale umožnily jeho rostoucí standardizaci jako mainstreamové databáze pro firemní i individuální uživatele.

Níže podrobně popíšeme kroky, které vám pomohou nainstalovat Redis na software Ubuntu 20.04. V tomto návodu získáte všechny potřebné informace od instalace až po konfiguraci externího serveru Redis, který bude použit jako obsluha relací (session handler) pro aplikaci PHP běžící na Ubuntu 20.04.

Začínáme

Chcete-li projít tyto kroky, budete potřebovat dva různé databázové servery (droplety) umístěné ve stejném datovém centru s povolenou privátní sítí. Patří mezi ně:

  • Webový server PHP běžící na LAMP a LEMP na Ubuntu 20.04 – tento server budeme označovat jako web.

  • Druhý, čistý server Ubuntu 20.04, na který bude nainstalován Redis – tento server budeme označovat jako redis.

Krok 1 — Instalace serveru Redis

Naším prvním krokem je instalace serveru Redis na Ubuntu 20.04. Jakmile je hotovo, ujistěte se, že server běží na našem redis Dropletu.

V tomto návodu budeme používat Personal Package Archives (PPA). Z bezpečnostních důvodů důrazně doporučujeme používat PPA. Ve srovnání s jinými repozitáři třetích stran jsou PPA stabilní, snadno se instalují a především je tento repozitář navržen pro uživatele Ubuntu. PPA vám umožňuje získat nejnovější dostupnou verzi softwaru, a to i pro software, který v oficiálních repozitářích Ubuntu nenajdete.

Používání PPA z neautorizovaných zdrojů je velkým rizikem. Ujistěte se, že PPA získáváte pouze z autentických a ověřených zdrojů. Repozitář PPA můžete přidat pomocí příkazu:

Stiskněte klávesu Enter pro potvrzení. Po potvrzení aktualizujeme mezipaměť správce balíčků pomocí následujícího příkazu:

Dále nainstalujeme Redis pomocí příkazu:

Jakmile příkaz spustíte, budete mít na svém serveru nainstalovaný Redis. Otestujme instalaci pomocí příkazu:

Po spuštění příkazu uvidíte instanci Redis běžící na localhost na portu 6379. Také se zobrazí odpověď s názvem PONG. Pokud toto vidíte, znamená to, že jste úspěšně dokončili první krok. Podrobný návod na instalaci a zabezpečení systému Redis naleznete v našem tutoriálu How to Install and Secure Redis on Ubuntu 18.04.

Nyní přejděme k dalšímu kroku – konfiguraci systému Redis.

Step 2 — Redis Configuration to Accept External Connections

Hlavním cílem konfigurace systému Redis je přijímat připojení přicházející zvenčí. Proč? Protože Redis ve výchozím nastavení povoluje připojení pouze k localhost, a připojení odjinud je omezeno. Zjednodušeně řečeno, přístup budete mít pouze zevnitř serveru, na kterém máte Redis nainstalovaný.

Nejprve získejte podrobný přehled o svých síťových rozhraních pomocí příkazu ifconfig command:

Získáte následující výstup:

Na eth1 rozhraní naleznete inet_addr. Zde máme 10.133.14.9. Tuto IP adresu použijeme v následujících krocích k připojení redis serveru z webového serveru.

Krok 3 — Vazba na localhost

Můžeš použít libovolný editor kódu podle svého výběru (nejoblíbenější jsou Atom a Visual Studio Code).

Nyní otevřete soubor /etc/redis/redis.conf a vyhledejte řádek, který obsahuje bind definici. Měli byste přidat svou IP adresu privátní sítě na tento řádek:

Může se zobrazit localhost, namísto 127.0.0.1. Žádný strach, stačí přidat vaši privátní IP adresu. Poté restartujte službu Redis, aby se změny projevily. K restartování redis serveru použijte následující příkaz:

Uživatelé, kteří nainstalovali Redis pomocí aplikace na jedno kliknutí, restartují server pomocí níže uvedeného příkazu:

Jakmile restartujete redis server, jakýkoli server ve stejné privátní síti se k této instanci Redis připojí automaticky, aniž by to bylo nutné provádět jednotlivě.

Krok 4 — Nastavení hesla serveru Redis

Tento krok můžete přeskočit, pokud instalaci Redis používáte pro účely procvičování nebo školení. Nastavení hesla pro redis server se však důrazně doporučuje, pokud chcete instalaci Redis zabezpečit další vrstvou ochrany. Upravme stejný konfigurační soubor jako v předchozím kroku. K úpravě použijte příkaz:

Odkomentujte řádek, který obsahuje requirepass, a nastavte silné heslo:

Restartujte službu Redis, aby se projevily provedené změny. K restartování použijte příkaz:

Krok 5 — Testování připojení a ověřování Redis

V tomto kroku se připojíme ke službě Redis zevnitř stroje redis, abychom se ujistili, že všechny provedené změny fungují bez problémů podle očekávání. Pro připojení použijte níže uvedený příkaz:

Zde platí, že i když vynecháte název hostitele, příkaz se přesto spustí. Naším hlavním cílem je ujistit se, že služba Redis bez problémů přijímá připojení:

Je možné, že obdržíte chybu AUTH při pokusu o přístup k datům pomocí definovaného hesla:

Váš výstup bude vypadat podobně jako tento:

Pro ověření spusťte příkaz AUTH spolu se stejným heslem, které jste definovali v souboru /etc/redis/redis.conf :

Poté příkaz spusťte znovu:

Tentokrát obdržíte jako odpověď OK namísto chyby. Výstup bude vypadat následovně:

Výstup empty list nebo set znamená, že server Redis je prázdný. Je to proto, že jsme webový server ještě nenakonfigurovali jako obsluhu relací.

Poznámka: Než se posuneme dále, ujistěte se, že je relace SSH otevřená a připojená k redis-cli. V následujících krocích se vrátíme k příkazovému řádku redis-cli, abychom ověřili, zda byla data relace správně uložena poté, co provedeme potřebné změny na web serveru.

Krok 6 — Instalace rozšíření Redis na webovém serveru

Následující kroky by měly být provedeny na web serveru. Musíme nainstalovat rozšíření PHP Redis, aby se PHP mohlo připojit k serveru Redis.

Nejprve aktualizujte mezipaměť správce balíčků spuštěním příkazu:

Dále nainstalujte balíček php5-redis :

Nyní jste připraveni se připojit k Redis.

Krok 7 — Nastavení Redis jako výchozí obsluhy relací na webovém serveru

PHP má výchozí obsluhu relací. V tomto kroku upravíme soubor php.ini na web serveru, abychom změnili výchozí nastavení. Umístění souboru php.ini závisí na aktuálním zásobníku:

  • Pro LAMP zásobník na Ubuntu 20.04 použijte: /etc/php5/apache2/php.ini.

  • Pro LEMP zásobník na Ubuntu 20.04 je cesta obvykle /etc/php5/fpm/php.ini.

Pokud si nejste jisti umístěním svého hlavního souboru php.ini, využijte pomoc funkce phpinfo(). Umístěte následující kód do souboru s názvem info.php ve vašem kořenovém adresáři webu:

Při přístupu ke skriptu z prohlížeče vyhledejte řádek obsahující „Loaded Configuration File“. Najdete zde přesné umístění hlavního načteného souboru php.ini. Nezapomeňte odstranit soubor info.php, protože obsahuje citlivý obsah o vašem prostředí.

Poté otevřete soubor php.ini a vyhledejte řádek obsahující session.save_handler. Výchozí hodnota bude files, nezapomeňte ji změnit na redis.

V prostředích LAMP :

V prostředích LEMP :

Dále odkomentujte session.save_path a upravte hodnotu tak, aby obsahovala připojovací řetězec Redis. Obsah musí mít následující formát:

Použijte heslo, které jsme nastavili v kroku 4. V případě, že nastavené heslo nepoužíváte, zadejte parametr auth při konfiguraci Redis. Nyní soubor uložte a restartujte php službu na obou prostředích.

Na LAMP prostředích:

Na LEMP prostředích:

Krok 8 — Testování správy relací v Redis

V posledním kroku budeme potřebovat PHP skript nebo aplikaci, abychom se ujistili, že vaše relace jsou nyní spravovány Redisem. Použijeme jednoduchý skript, který implementuje počítadlo – při každém načtení stránky se zobrazené číslo zvýší.

Vytvořte soubor s názvem demo.php na webovém serveru a uložte jej do kořenové složky dokumentů:

Poté změňte /usr/share/nginx/html tak, aby odpovídalo vaší kořenové cestě dokumentů:

Dále musíte nasměrovat svůj prohlížeč na http://web/demo.php pro přístup ke skriptu. Program zvýší číslo při každém načtení stránky.

Now you will have session information stored on the Redis server. To verify, you have to go back to your SSH session on the redis stroji pomocí redis-cli. Získejte obsah znovu pomocí keys *:

Uvidíte následující výstup:

Výstup potvrzuje, že všechny informace jsou bezpečně uloženy na redis serveru. Pokud chcete připojit další webové servery, můžete postupovat stejným způsobem.

Závěr

Redis je NoSQL databáze, která umožňuje ukládání velkého množství nestrukturovaných dat. Jen málokterá databáze se může rovnat funkcím a jednoduchosti redis serveru. Jeho rostoucí popularita z něj neustále dělá nepostradatelný nástroj s jen málo alternativami ve srovnání s jeho širokou škálou funkcí.

Chcete-li si dále prohloubit své znalosti o PHP aplikacích a jejich použití, můžete se podívat na následující návody na našem blogu:

Příjemnou práci!

author

Shreyas Patil

Autor · CloudSigma

Preslav Dobrev je kreativní designér ve společnosti CloudSigma, který se zaměřuje na konzistentní firemní identitu prostřednictvím tradičních i inovativních marketingových kanálů. Je zdatný v propojování umělecké vize se strategickým marketingem za účelem vytváření působivých příběhů značky.

Komentáře

Zatím žádné komentáře. Buďte první.