Erhan Yakut Software Developer @Binalyze | Founder @Passwall | Golang Enthusiast | Open Sorcerer

CentOS Linux | ionCube Kurulumu

3 min read

Yakuter.com’da ne yazacağıma karar verirken rastgele bir konu seçmek yerine çalışmalarım sırasında karşıma çıkan konuları anlatmaya dikkat ediyorum. Vargonen sunucularında sunucu yönetimi üzerine çalışırken hosting firmalarının büyük çoğunluğunun tercihi olan WHMCS hosting yönetim panelini kurma gereği hissettim. Bu panelin kurulumu sırasında da ionCube gerekmektedir. Durum böyle olunca ionCube üzerine bir yazı yazmak kaçınılmaz oldu.

ionCube loader web ortamında oldukça fazla kullanılan şifreleme programlarından birisidir. En çok tercih edilen kullanılma şekli ise yazılımların lisanlanması sürecindedir. Böylece lisans satın alınmadan bir yazılımın kullanılması engellenmektedir. Özetle php kodlarını şifrelemek ve sonrasında bu şifreyi çözmek için ionCube kullanılır.

ionCube Kurulumu

Öncelikle ionCube paketini websitesinden indirmek için sistemimizde wget paketinin kurulu olması lazım. CentOS üzerine wget kurmak için aşağıdaki komutu kullanabilirsiniz.

[php]sudo yum install wget[/php]

ionCube programının indirme sayfasında bir çok paket bulunmaktadır. Bize hangisinin uygun olduğunu görmek için kendi sunucumuzun özelliğini bilmemiz gerekir. Bunun için konsolda uname -a komutunu çalıştırarak sunucumuz hakkında bilgi sahibi olabiliriz.

[php][[email protected] ~]$ uname -a
Linux server 3.10.0-327.28.2.el7.x86_64 #1 SMP Wed Aug 3 11:11:39 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux[/php]

Bu çıktıya göre benim sunucum “x86_64” yani 64bit Linux dağıtımı. Eğer farklı olsaydı (i386) 32bit Linux anlamına gelirdi.

Şimdi yapacağımız şey ionCube loader paketini tar.gz formatında /tmp klasörüne indirip onu açmak. Kendi linux sunucumuza uyguna aşağıdaki komutları sırasıyla çalıştırıp bu işlemi gerçekleştiriyoruz.

64 Bit x86_64 Linux için
[php]cd /tmp
wget http://downloads3.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz
tar xfz ioncube_loaders_lin_x86-64.tar.gz[/php]

32 Bit i386 Linux için
[php]cd /tmp
wget http://downloads3.ioncube.com/loader_downloads/ioncube_loaders_lin_x86.tar.gz
tar xfz ioncube_loaders_lin_x86.tar.gz[/php]

İndirdiğimiz ve açtığımız paketin içinden ionCube isimli bir klasör ortaya çıktı. Bu klasörün içine girdiğimizde bir çok farklı ionCube paketi olduğunu görürüz.

[php][[email protected] ~]$ cd /tmp/ioncube
[[email protected] ioncube]$ ls
ioncube_loader_lin_4.1.so ioncube_loader_lin_5.3_ts.so
ioncube_loader_lin_4.2.so ioncube_loader_lin_5.4.so
ioncube_loader_lin_4.3.so ioncube_loader_lin_5.4_ts.so
ioncube_loader_lin_4.3_ts.so ioncube_loader_lin_5.5.so
ioncube_loader_lin_4.4.so ioncube_loader_lin_5.5_ts.so
ioncube_loader_lin_4.4_ts.so ioncube_loader_lin_5.6.so
ioncube_loader_lin_5.0.so ioncube_loader_lin_5.6_ts.so
ioncube_loader_lin_5.0_ts.so LICENSE.txt
ioncube_loader_lin_5.1.so loader-wizard.php
ioncube_loader_lin_5.1_ts.so README.txt
ioncube_loader_lin_5.2.so USER-GUIDE.pdf
ioncube_loader_lin_5.2_ts.so USER-GUIDE.txt
ioncube_loader_lin_5.3.so[/php]

Hangi paketin bize uygun olduğu kullanmış olduğumuz PHP sürümüne göre değişir. Artık tek yapmamız gereken kullandığımız PHP sürümünü ile bu sürümün modül klasörünü öğrenmek ve ona uygun ionCube modülünü PHP modül dizinine kopyalamak.

PHP sürümümüzü öğrenmek için aşağıdaki kodu kullanıyoruz.
[php][[email protected] ~]$ php -v
PHP 5.4.16 (cli) (built: Aug 11 2016 21:24:59)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies[/php]

Buna çıktıya göre ben PHP 5.4 kullanmaktayım. Şimdi de PHP sürümünün modül klasörünün yerini öğrenelim.

[php][[email protected] ~]$ php -i | grep extension_dir
extension_dir => /usr/lib/php/modules => /usr/lib/php/modules[/php]

Artık modüllerin bulunduğu klasörü öğrendiğimize göre indirmiş olduğumuz ve bize uygun olan ionCube paketini öğrenmiş olduğumuz modül klasörüne kopyalayalım.

[php]cp /tmp/ioncube/ioncube_loader_lin_5.4.so /usr/lib/php/modules/[/php]

ionCube Ayarlanması

Ayar dediğimiz olay php.ini dosyasına bir satır eklenmesinden ibaret. Bunun için nano editörü ile php.ini dosyasını açıyoruz.

[php]sudo nano /etc/php.ini[/php]

Dosyayı nano editöründe açtıktan sonra aşağıdaki satırı php.ini dosyasının en üstüne yapıştırıyoruz.

[php]zend_extension = /usr/lib/php/modules/ioncube_loader_lin_5.4.so[/php]

Kurulum tamamlanmıştır (nihayet:)) Artık sunucumuzu baştan başlatıyor ve keyfimize bakıyoruz.

[php]service httpd restart
service php-fpm restart[/php]

ionCube kurulumunun başarılı olup olmadığını öğrenmek için PHP versiyonunu öğrenmekte kullandığımız php -v komutunu kullanabiliriz. Artık PHP sürümünün altında ionCube kurulu olup olmadığını görebiliriz.
[php][[email protected] ~]$ php -v
PHP 5.4.16 (cli) (built: Aug 11 2016 21:24:59)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies
with the ionCube PHP Loader (enabled) + Intrusion Protection from ioncube24.com (unconfigured) v5.1.2, Copyright (c) 2002-2016, by ionCube Ltd.[/php]

Erhan Yakut Software Developer @Binalyze | Founder @Passwall | Golang Enthusiast | Open Sorcerer