Bloğa geri dön

Ubuntu 20.04 üzerinde PHP için Oturum Yöneticisi Olarak Redis Sunucusu Kurulumu

Ubuntu 20.04 üzerinde PHP için Oturum Yöneticisi Olarak Redis Sunucusu Kurulumu

Redis açık kaynaklı bir bellek içi önbellek ve depolama sistemidir, aynı zamanda bir veri yapısı sunucusu olarak da adlandırılır. Hash'ler, listeler, kümeler, bitmap'ler ve çok daha fazlası gibi çeşitli veri türleri için gelişmiş destek sunar. Mükemmel performansı nedeniyle Redis, önde gelen sektörlerde ve en iyi çok uluslu şirketlerde popülerlik kazanmıştır.

Redis'in Faydaları

Hız söz konusu olduğunda, Redis sunucularının eşi benzeri yoktur. Bir NoSQL veritabanı sunucusu olarak, veri depolama ve geri çağırmada harika bir hız sunar. Ayrıca Redis, karmaşık olanlar da dahil olmak üzere farklı verilerle sorunsuz çalışmayı sağlayan göze çarpan işlevlere sahiptir. Redis'in kullanım kolaylığı ve gelişmiş işlevleri, onu sadece öne çıkarmakla kalmamış, aynı zamanda kurumsal ve bireysel kullanıcılar için ana akım bir veritabanı olarak giderek daha fazla standartlaşmasını sağlamıştır.

Aşağıda, Ubuntu 20.04 yazılımına Redis kurmanıza yardımcı olacak adımları detaylandıracağız. Bu eğitimde, kurulumdan, Ubuntu 20.04 üzerinde çalışan bir PHP uygulaması için oturum yöneticisi olarak kullanılacak harici bir Redis sunucusunun yapılandırılmasına kadar ihtiyacınız olan tüm bilgileri alacaksınız.

Başlarken

Adımları uygulamak için, özel ağ etkinleştirilmiş olarak aynı veri merkezinde bulunan iki farklı veritabanı sunucusuna (droplet) ihtiyacınız olacaktır. Bunlar şunları içerir:

  • Şu yazılımları çalıştıran bir PHP web sunucusu: LAMP ve LEMP (Ubuntu 20.04 üzerinde) – bu sunucuya şu adı vereceğiz: web.

  • Redis'in kurulacağı ikinci, temiz bir Ubuntu 20.04 sunucusu – bu sunucuya şu adı vereceğiz: redis.

Adım 1 — Redis Sunucusu Kurulumu

İlk adımımız Redis sunucusunu Ubuntu 20.04 üzerine kurmaktır. Kurulum tamamlandıktan sonra, sunucunun redis Droplet'imizde çalışır durumda olduğundan emin olun.

Bu eğitimde Kişisel Paket Arşivlerini (PPA'lar) kullanacağız. Güvenlik nedenleriyle PPA'ları kullanmanızı şiddetle tavsiye ederiz. Diğer üçüncü taraf depolarıyla karşılaştırıldığında PPA'lar kararlıdır, kurulumu kolaydır ve her şeyden önemlisi depo Ubuntu kullanıcıları için tasarlanmıştır. PPA, resmi Ubuntu depolarında bulamadığınız yazılımlar için bile mevcut en son yazılım sürümünü edinmenizi sağlar.

Yetkisiz bir kaynaktan PPA kullanmak kesinlikle önerilmez. PPA'ları yalnızca güvenilir ve doğrulanmış kaynaklardan aldığınızdan emin olun. PPA deposunu şu komutu kullanarak ekleyebilirsiniz:

Onaylamak için Enter tuşuna basın. Onayladıktan sonra, aşağıdaki komutu kullanarak paket yöneticisi önbelleğini güncelleyeceğiz:

Ardından, şu komutu kullanarak Redis'i kuracağız:

Komutu çalıştırdığınızda, Redis sunucunuza kurulmuş olacaktır. Kurulumu şu komutla test edelim:

Komutu çalıştırdığınızda, localhost üzerinde, 6379 portunda çalışan bir Redis örneği göreceksiniz. Ayrıca, PONG adında bir yanıt gelecektir. Bunları görüyorsanız, ilk adımı başarıyla tamamlamışsınız demektir. Redis'i kurma ve güvenliğini sağlama konusunda ayrıntılı bir kılavuz için şu eğitimimize göz atabilirsiniz: How to Install and Secure Redis on Ubuntu 18.04.

Şimdi bir sonraki adıma geçelim: Redis'i yapılandırmak.

Adım 2 — Dış Bağlantıları Kabul Etmek İçin Redis Yapılandırması

Redis'i yapılandırmanın temel amacı, dışarıdan gelen bağlantıları kabul etmektir. Neden mi? Çünkü Redis varsayılan olarak yalnızca localhost bağlantılarına izin verir ve başka herhangi bir yerden bağlanma kısıtlaması vardır. Daha basit bir ifadeyle, yalnızca Redis'i kurduğunuz sunucunun içinden erişiminiz olacaktır.

İlk olarak, ifconfig komutunu kullanarak ağ arayüzleriniz hakkında ayrıntılı bilgi edinin:

Aşağıdaki çıktıyı alacaksınız:

Şu eth1 arayüzünde, şunu bulacaksınız: inet_addr. Burada şu değere sahibiz: 10.133.14.9. Gelecek adımlarda bu IP adresini, redis sunucusuna web sunucusundan bağlanmak için kullanacağız.

Adım 3— Localhost Bağlama

Dilediğiniz kod düzenleyiciyi kullanmakta özgürsünüz (en popüler olanları Atom ve Visual Studio Code'dur).

Şimdi şu dosyayı açın: /etc/redis/redis.conf ve bind tanımını içeren satırı arayın. Satıra özel ağ IP adresinizi eklemelisiniz:

Şunu görebilirsiniz: localhost, şunun yerine: 127.0.0.1. Endişelenmeyin, sadece özel IP adresinizi eklemeniz yeterlidir. Ardından, değişiklikleri uygulamak için Redis servisini yeniden başlatın. Aşağıdaki komutu kullanarak redis sunucusunu yeniden başlatın:

Redis'i tek tıkla kurulum uygulamasıyla yükleyen kullanıcılar, sunucularını yeniden başlatmak için aşağıdaki komutu takip etmelidir:

Once you restart the redis sunucusunu yeniden başlattığınızda, aynı özel ağda bulunan tüm sunucular, tek tek işlem yapmaya gerek kalmadan bu Redis örneğine otomatik olarak bağlanacaktır.

Adım 4— Redis Sunucusu Şifre Kurulumu

Redis kurulumunu pratik veya eğitim amaçlı kullanıyorsanız bu adımı atlayabilirsiniz. Ancak, redis sunucusu için şifre belirlemek, Redis kurulumunuza ekstra bir güvenlik katmanı eklemek istiyorsanız şiddetle tavsiye edilir. Önceki adımda yaptığımız gibi aynı yapılandırma dosyasını düzenleyelim. Düzenlemek için şu komutu kullanın:

Şunu içeren satırın başındaki yorum işaretini kaldırın: requirepass, ve güçlü bir şifre belirleyin:

Yaptığınız değişiklikleri yansıtmak için Redis servisini yeniden başlatın. Yeniden başlatmak için şu komutu kullanın:

Adım 5 — Redis Bağlantısı ve Kimlik Doğrulama Testi

Bu adımda, yapılan tüm değişikliklerin beklendiği gibi sorunsuz çalıştığından emin olmak için redis makinesinin içinden Redis servisine bağlanacağız. Bağlanmak için aşağıdaki komutu kullanın:

Burada, ana bilgisayar adını belirtmeyi atlasanız bile yine de çalışacaktır. Birincil amacımız, Redis servisinin bağlantıları sorunsuz bir şekilde kabul ettiğinden emin olmaktır:

Tanımlanan şifre ile verilere erişmeye çalışırken bir AUTH hatası almanız olasıdır:

Çıktınız şuna benzer görünecektir:

Kimlik doğrulaması yapmak için, AUTH komutunu, /etc/redis/redis.conf dosyasında tanımladığınız şifreyle birlikte çalıştırın:

Ardından, komutu tekrar çalıştırın:

Bu kez, hata yerine yanıt olarak bir OK alacaksınız. Aşağıdaki gibi bir çıktı alacaksınız:

The output boş liste veya küme çıktısı, Redis sunucusunun boş olduğu anlamına gelir. Bunun nedeni, web sunucusunu henüz bir oturum yöneticisi olarak yapılandırmamış olmamızdır.

Not: Devam etmeden önce, SSH oturumunun açık olduğundan ve redis-cli'ye bağlı olduğundan emin olun. Önümüzdeki adımlarda, web sunucusunda gerekli değişiklikleri yaptıktan sonra oturum verilerinin düzgün bir şekilde kaydedilip kaydedilmediğini doğrulamak için redis-cli istemine geri döneceğiz.web sunucusunda gerekli değişiklikleri yaptıktan sonra oturum verilerinin düzgün bir şekilde kaydedilip kaydedilmediğini doğrulamak için redis-cli istemine geri döneceğiz.

Adım 6 — Web Sunucusuna Redis Uzantısı Kurulumu

Sonraki adımlar web sunucusunda yürütülmelidir. PHP'nin Redis sunucusuna bağlanabilmesi için PHP Redis uzantısını kurmamız gerekiyor.

İlk olarak, şu komutu çalıştırarak paket yöneticisi önbelleğinizi güncelleyin:

Ardından, php5-redis paketini kurun:

Redis'e bağlanmak için her şey hazır.

Adım 7 — Web Sunucusunda Varsayılan Oturum Yöneticisi Olarak Redis Kurulumu

PHP'nin varsayılan bir oturum yöneticisi vardır. Bu adımda, php.ini dosyasını web sunucusunda varsayılan ayarları değiştirmek için düzenleyeceğiz. php.ini dosyasının konumu mevcut yığına bağlıdır:

  • Ubuntu 20.04 üzerindeki bir LAMP yığını için şunu kullanın: /etc/php5/apache2/php.ini.

  • Ubuntu 20.04 üzerindeki bir LEMP yığını için yol genellikle şöyledir: /etc/php5/fpm/php.ini.

Ana php.ini dosyanızın konumundan emin değilseniz, phpinfo() fonksiyonundan yardım alın. Aşağıdaki kodu, web kök dizininizin içinde info.php adında bir dosyaya yerleştirin:

Tarayıcınızdan betiğe erişmeye çalışırken, “Loaded Configuration File” (Yüklenen Yapılandırma Dosyası) içeren satırı arayın. Yüklenen ana php.ini dosyasının tam konumunu bulacaksınız. Ortamınızın tüm hassas içeriğine sahip olduğu için info.php dosyasını kaldırdığınızdan emin olun.

Bundan sonra, php.ini dosyasını açın ve session.save_handler içeren satırı arayın. Varsayılan değer files olacaktır, bunu redis.

On LAMP ortamlarında:

On LEMP ortamlarında:

Ardından, session.save_path satırındaki yorum işaretini kaldırın ve değeri Redis bağlantı dizesini içerecek şekilde değiştirin. İçerik aşağıdaki biçimde olmalıdır:

Şu adımda belirlediğimiz şifreyi kullanın: Adım 4. Belirlenen şifreyi kullanmıyorsanız, Redis'i yapılandırırken auth parametresini sağlayın. Şimdi dosyayı kaydedin ve php her iki ortamda da servis.

Üzerinde LAMP ortamlarında:

Üzerinde LEMP ortamlarında:

Adım 8 — Redis Oturum Yönetimini Test Etme

Son adımda, oturumlarınızın artık Redis tarafından yönetildiğinden emin olmak için bir PHP betiğine veya uygulamasına ihtiyacımız var. Sayfayı her yeniden yüklediğinizde yazdırılan sayıyı artıran basit bir sayaç betiği kullanacağız.

Şu isimde bir dosya oluşturun: demo.php sunucusunda: web sunucusunda oluşturun ve belge kök klasörünüzün içinde tutun:

Ardından, /usr/share/nginx/html kısmını belge kök dizini yolunuzu yansıtacak şekilde değiştirin:

Ardından, betiğe erişmek için tarayıcınızı http://web/demo.php adresine yönlendirmeniz gerekir. Program, sayfayı her yeniden yüklediğinizde sayıyı artıracaktır.

Artık oturum bilgileriniz Redis sunucusunda saklanacaktır. Doğrulamak için, redis makinesindeki SSH oturumunuza geri dönmeli ve redis-cli aracını kullanmalısınız. İçeriği ile bir kez daha alın:keys *:

Aşağıdaki çıktıyı göreceksiniz:

Çıktı, tüm bilgilerin güvenli bir şekilde redis sunucusunda saklandığını doğrular. Ek web sunucuları bağlamak isterseniz, aynı yöntemi izleyebilirsiniz.

Sonuç

Redis, çok sayıda yapılandırılmamış verinin depolanmasına izin veren bir NoSQL veritabanıdır. Çok az veritabanı, redis sunucusunun işlevselliği ve basitliği ile karşılaştırılabilir. Artan popülaritesi, geniş özellikleri göz önüne alındığında onu sürekli olarak az alternatifi olan bir olmazsa olmaz haline getirmektedir.

PHP uygulamaları ve bunları nasıl kullanacağınız konusundaki bilginizi daha da derinleştirmek için blogumuzdaki aşağıdaki eğitimlere göz atabilirsiniz:

Keyifli Kodlamalar!

author

Shreyas Patil

Yazar · CloudSigma

Preslav Dobrev, CloudSigma'da Kreatif Tasarımcı olarak görev yapmakta olup geleneksel ve yenilikçi pazarlama kanallarını kullanarak tutarlı bir kurumsal kimlik oluşturmaya odaklanmaktadır. Sanatsal vizyonu stratejik pazarlamayla harmanlayarak etkili marka anlatıları oluşturma konusunda oldukça yeteneklidir.

Yorumlar

Henüz yorum yapılmamış. İlk siz olun.