Redis ve PHP'yi PHpRedis İle Nasıl Kullanacağınızı Öğrenin
Önceki blog yazımızda Redis servislerinin Ubuntu 16.05 işletim sistemi üzerinde nasıl kurulacağını Redis Nedir | Redis Sunucusu Nasıl Kurulur başlıklı yazımızda anlatmıştık. Bu yazıda ise Redis PHP7 kullanımı ile bağlantısın nasıl kurulacağını örneklerle anlatacağız. Eğer Redis’i henüz kurmadıysanız önceki yazıya göz atmanızı öneririz.
Hazırlıklar
Bu yazı ve konu edindiği örnekler, temel terminal komutlarını bildiğinizi, Ubuntu 16.05 üzerinde çalışan Redis yüklü bir NGINX web sunucusuna sudo
izinlerine sahip bir kullanıcı ile bağlı olduğunuzu varsayar. Eğer bu gereklilikleri karşılayabiliyorsanız, birlikte Redis ile PHP kullanımı için gerekli işleri yapmaya başlayabiliriz.
Rehberi tatbik etme mesuliyeti sizindir. Sunucunuzun tam bir yedeğini alın. Böylece işler ters giderse sunucunuzu kolayca geri yükleyebilirsiniz.
Önceki bölümde kurulumunu tamamladığımız Redis yüklü sunucumuzun PHP ile bağlantısını oluşturmaya başlamadan önce güvenli olup olmadığını kontrol edelim. Bunun için Redis’in bizim belirlediğimiz port üzerinden ve Redis kullanıcısıyla çalıştırıldığından emin olmamız gerek.
netstat -lntp
127.0.0.1
:6379
ile redis-server 1
ifadelerini içeren satırı bulun. Eğer önceki yazıda amlatılanları doğru olarak yaptı iseniz bu çıktı altakine benzer olmalıdır:
tcp 0 0 127.0.0.1:6379 0.0.0.0:* LISTEN 1361/redis-server 1
Bunun yanında Redis prosesinin hangi kullanıcı tarafından çalıştırıldığını da bilmeniz gerekir, eğer Redis, Root yetkilerine sahip bir kullanıcı tarafından çalıştırılırsa, bu redis’in kötü niyetli kişilerce ele geçirilmesi durumunda, saldırganların sunucu üzerindeki her türlü komutu çalıştırabilecek izinlere sahip olacağı anlamına gelir ki bunun da büyük bir güvenlik açığı yaratabileceği açıktır. Şimdi Redis proseslerini kontrol eden kullanıcıyı öğrenelim:
ps aux | grep redis
Alacağınız çıktı şuna benzer olmalıdır:
redis 1361 0.1 0.1 72156 7456 ? Ssl Jan03 39:31 /usr/local/bin/redis-server 127.0.0.1:6379
Redis’in ağ adaptörüne bağlandığı port numarasını ve kullanıcısını öğrenip gerekli kontrolleri yaptıktan sonra artık Redis ile PHP arasındaki bağlantıyı kurmaya başlayabiliriz.
Redis Cache İçin PHP7 Kurulumu
phpredis Eklentisinin Kurulumu
Redis PHP sorgularını phpredis eklentisi üzerinden ön belleğe aktarır. Bunun için aşağıdaki komutla, bu paketi de içeren PHP7 geliştirici araçlarını Ubuntu sunucumuzun veri havuzuna git ile klonluyoruz:
sudo apt install php7.0-dev git -y
klonlama tamamlandıktan sonra aşağıdaki komut satırlarını sırasıyla ve teker teker girerek en son phpredis sürümünün kurulumunu tamamlıyoruz.
cd /tmp
git clone https://github.com/phpredis/phpredis
cd phpredis
phpize
./configure
sudo make
make install
Şimdi suncunuza phpredis eklentisi kurulmuş olmalı.
Redis PHP PECL eklentisinin NGINX sunucu için Ektinleştirilmesi
PHP-FPM kullanan Apache ve NGINX sunucularda redis cache ayarları saklamak ve gerektiğinde okumak için bir konfigürasyon dosyasına gerek duyar. Şimdi alttaki komutla bu dosyayı yaratıyoruz:
sudo nano /etc/php/7.0/mods-available/redis.ini
İçine extension=redis.so
satırını ekledikten sonra, redis.ini dosyası bu resme benzemeli:
daha sonra, Ctrl+X, Y ve Enter tuşlarına basarak kaydedip çıkıyoruz.
Şimdi, Redis’in PHP-FPM ve PHP-CLI prosesleriyle bağlantı kurabilmesi için iki sembolik linke ihtiyacımız var, ayrıca eğer Redis’i disable etmek isterseniz, bu işlemi sembolik linkleri silerek hızlıca yapabilirsiniz:
sudo ln -s /etc/php/7.0/mods-available/redis.ini /etc/php/7.0/fpm/conf.d/30-redis.ini
sudo ln -s /etc/php/7.0/mods-available/redis.ini /etc/php/7.0/cli/conf.d/30-redis.ini
İşlemi tamamladıktan sonra PHP7’yi yeniden başlatın:
sudo service php7.0-fpm restart
Tebrikler! Redis kurulumunu tamamladınız.
Redis PHP PECL Eklentisinin Apache Sunucu İçin Etkinleştirilmesi.
Apache Web Sunucuda Redis Object Cache kullanmak için alttaki komutu kullanarak önce redis.ini
dosyasını oluşturuyoruz:
sudo ln -s /etc/php/7.0/mods-available/redis.ini /etc/php/7.0/apache2/conf.d/30-redis.ini
içine alttaki satırı yapıştırıyoruz:
extension=redis.so
daha sonra oluşturduğumuz redis.ini
dosyasını sırasıyla Ctrl+X, Y ve Enter tuşlarına basarak kaydedip kapatıyoruz. Şimdi Redis’i başlatmak için tek yapmanız gereken apache sunucusunu yeniden başlatmak:
sudo service apache2 reload
Tebrikler! Artık Apache Web Sunucunuzu Redis Cache desteğiyle kullanmaya başlayabilirsiniz.
Önemli Açıklamalar – Lütfen Sonuna Kadar Okuyun!
- Bu yazı her ne kadar Ubuntu 16,05 ve PHP7.0 versiyonları üzerinden anlatılmışsa da, Ubuntu 18.05, PHP7.1 ve PHP7.2 için de aynen veya çok küçük değişikler ile uygulanabilir.
- Redis kurulumunu tamamladıktan sonra ayrıca kullandığınız web uygulaması ile çalışacak şekilde yapıladırılmalıdır. Örneğin, Magento, Joomla, Drupal gibi framework’lerin farklı ayarları vardır. Bunların hepsini buraya almak bu yazının kapsamını çok aşacağından bunları anlatmıyoruz.
- Ancak çok yaygın kullanılan bir tanesi, WordPress için bu işi nasıl kolayca halledebileceğinizi söyleyeceğiz. Gerek Apache gerekse NGINX sunucular üzerinde çalışan WordPress sitelerinizi kolayca Redis’le entegre edebilirsiniz. Bunun için tek yapmanız gereken WordPress Redis Eklentisini kurup, etkinleştirmek. Sonra web sitenizin hızından memnun olacağınızı umuyoruz.
Bu kaynaktan adapte edilmiştir.
Bir cevap yazın
Yorum yapabilmek için giriş yapmalısınız.