Gearman job server , client ve php ext kurulumu

Aşağıdaki kurulumda digital ocean üzerinden almış olduğum cloud üzerine kurulum yaptım.

Sorunsuz şekilde kurulum gerçekleşti.

Kurulumu centos 7.5 64 bit üzerinde yaptım

Öncelikle güncellemelerimizi ve lazım olan eklentileri kuralım.

 

yum update 
yum install wget 
yum install nano

Repo dosyaları kurulumu

wget wget http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -ivh epel-release-latest-7.noarch.rpm

rpm -Uvh http://ftp.tu-chemnitz.de/pub/linux/dag/redhat/el7/en/x86_64/rpmforge/RPMS/rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

Php kurulumu

Not : Daha sonra php versiyonunuzu yükseltmeyi unutmayın

yum install -y php php-cli php-common php-devel php-gd php-mbstring php-mysql php-pdo php-pear php-soap php-xml php-mcrypt pcre-devel libssh2-devel

Gcc ve diğer kütüphanelerin kurulumu

yum install kernel sources kernel-devel libevent-devel gcc gcc-c++ make autoconf automake boost boost-devel libuuid libuuid-devel kernel-devel

Yukarıdaki kurulumlardan sonra herhangi bir sorun yaşamamak için tekrar update yapıp server a restart atıyoruz.

yum update -y

reboot 

Artık Gearman kurulumuna geçebiliriz.

Gearman için gerekli dosyaları çekelim

wget https://launchpad.net/gearmand/1.2/1.1.12/+download/gearmand-1.1.12.tar.gz

Eğer yukarıdaki linkte dosyayı bulamazsanız veya daha yeni bir sürüm varsa https://launchpad.net/gearmand adresinden daha yeni bir sürümü indirip kurabilirsiniz.

Gearman’ın çalışması için gperf tools gerekmekte. Aşağıdaki komutla bunuda kuralım.

yum install gperf

 

Artık Gearman kurulumunu başlatabiliriz.Aşağıdaki komutları sırasıyla uyguladıktan sonra gearman kurulumunu yapmış ve ayarlamış olacaksınız.

 

tar zxvf gearmand-1.1.12.tar.gz
cd gearmand-1.1.12
./configure

make && make install

 

Artık gearman job serverımızı çalıştırabiliriz bunun için ilgili komut

gearmand &

Not : Bazı durumlarda Gearman job server çalışmasına rağmen log dosyasını bulamadığına dair hata verebilir.

Bunun için

/usr/local/var/log/gearmand.log

Kalsörü altında yukarıdaki isimle bir dosya oluşturun.(Klasörler yoksa onlarıda oluşturmayı unutmayın.)

 

eğer yukarıdaki komut aşağıdaki şekilde bize pid numarasını veriyorsa kurulum sorunsuz olmuş ve job server çalışıyor demektir.

[1] 17537

 

Gearman client kurulumu  / Php extension kurulumu

Sadece gearman 1.10 ve daha yukarıdaki sürümlerini kurarsanız php ext. kurabilirsiniz.

 

pecl install gearman

Yukarıdaki komut sorunsuz çalıştığı takdirde

Aşağıdaki kodu php.ini dosyasının sonuan ekleyin.Kaydedip çıkın

extension=gearman.so

Sonrasında temiz bir başlangıç için Makinenizi tekrar restart edin.

reboot

Artık gearman job server ve client kullanıma hazır.

Eğer olurda pecl kurulumunda hata alısanız
şu yöntemi deneyerek php extension kurulumunu tamamlayabilirsiniz.

cd /root
wget https://pecl.php.net/get/gearman-1.1.2.tgz
tar xvfz gearman-1.1.2.tgz
cd gearman-1.1.2.tgz
phpize 
./configure
make && make install

Yukarıdaki versiyon işinizi görmezse https://pecl.php.net/package/gearman adresinden güncel versiyonu çekip kurabilirsiniz

Serverı yukarıda henüz yeni olduğu için Apache veya nginx kurmayıda unutmayın.

Buraya kadar herşey tamam Gearman çalışıyor ancak server restart ettiğimiz zaman açılıştada çalışması gerekiyor.Normal şartlarda bunu servis olarak sisteme eklemediğimiz takdirde gearman otomatik olarak başlamayacaktır.Bu kadar teferruat ile uğraşmamak için işi daha basit yoldan halledeceğiz.
Bunun için centos sistemlerde otomatik çalıştırılan dosya etc klasörü altındaki rc.local dosyasından faydalanacağız. rc.local dosyası sistemi her restart ettiğimizde otomatik çalışmasını istediğimiz komutları içerisine eklemek içindir.

Bunları yapmadan önce asıl işimizi yapacak olan bir worker.php dosyası oluşturalım.Gearman worker örneklerini arama yaparak çokça bulabilirsiniz.
Aşağıdaki worker.php dosyasını çalıştıran komutta ben sistem olarak codeigniter kullandığım için açlışta cli olarak (Command line) çalışmasını istediğimden gearmn isimli classta ki worker fonksiyonunu çağırdım.

Öncelikle basit bir shell scripti oluşturalım.

nano /gear.sh

Karşınıza boş bir ekran gelecektir.Bu ekrana aşağıdaki komutları ekleyelim

#!/bin/sh -e
sleep 30
/usr/sbin/gearmand &
nohup /usr/local/bin/php -q /home/abc/public_html/web_service/index.php gearman worker  >/dev/null 2>&1 &

Açıklamasına gelince

Sleep 30
Öncelikle sistem açıldıktan sonra çalışmak için 30 saniye bekle

/usr/sbin/gearmand &
Gearman server çalıştır.

nohup /usr/local/bin/php -q /home/abc/public_html/web_service/index.php gearman worker >/dev/null 2>&1 &
Worker dosyasını çalıştır.Arka planda herhangi bir çıktı vermeden çalıştıtırken nohup komutu otomatikman worker.php dosyasının çıktılarını nohup.out dosyasının içine ekler.Ben yukarıda bunu yapmsaınıda engelledim ki böylelikle dosya ile server şişmesin.

Yukarıdaki Gear.sh isimli scriptimizi oluşturduktan sonra açılışta çalışması için rc.local dosyamızın içine ekliyoruz.
Dosyayı aşağıdaki komutla açalım

nano /etc/rc.local

Dosyanın en alt satırına aşağıda ki kodu yerleştirip kaydedip çıkalım

sh /gear.sh

Olurda bir şekilde açılışta çalışmazsa üzülmeyin
farklı ve basit bir yol daha var

crontab -e

komutu ile zamanlanmış görevleri açıp en alt kısmını şu komutuda verebilirsiniz.

@reboot /gear.sh

Makineye restart attığınızda açılırken otomatikman gene shell scriptimiz çalışacaktır.

Not : crontab -e komutu crontab dosyasını iğrenç ötesi editör vi ile açacaktır.
dosyanın sonuna yukarıdaki komutu yerleştirdikten sonra kaydedip çıkın.
ESC tuşuna basın iki nokta üst üste w basın q basın komutlar veya basacağınız tuşlar sırasıyla şöyle
“ESC : w q [ENTER]”

Gearman ve PHP dosyasının çalışıp çalışmadığını top komutunu kullanarak veya htop kurup (Tavsiye ederim) ordan kontrol etmenizi tavsiye ederim

 

Bu makale internet üzerindeki çeşitli kaynaklardan toplanarak derlenmiş ve deneyerek yazılmış halidir.
Aslında bu işlemleri yaparken Centos 6.7 64 bit işletim sistemi CWP panel kurulmuş Dedicated server ve VPS üzerinde yaptığım denemelerin sonuçlarını yazdım.
Bu kaynaktaki gearman kurulumunun düzenlenmiş güncellenmiş halidir.

 

 

 

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir