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.