Ubuntu 16.04 Üzerine ionCube Loader Kurulumu Kapsamlı Rehber
Ubuntu 16.04 (Xenial Xerus), uzun süreli desteğiyle birçok sunucu ve geliştirme ortamında hala tercih edilen bir işletim sistemidir. Bu platformda çalışan PHP uygulamaları için zaman zaman özel gereksinimler ortaya çıkabilir. Bu gereksinimlerden biri de ionCube Loader’ın kurulumudur. ionCube Loader, genellikle ticari PHP uygulamalarının (örneğin, lisanslı yazılımlar, içerik yönetim sistemleri eklentileri veya özel yazılımlar) çalışabilmesi için zorunlu olan, PHP kodunu şifreleyen ve lisanslayan bir eklentidir. Bu makalede, Ubuntu 16.04 sunucunuzda ionCube Loader’ı adım adım nasıl kuracağınızı detaylı bir şekilde anlatacağız. Kurulum süreci, sunucunuzun güvenliğini ve performansını koruyarak sorunsuz bir şekilde tamamlanacaktır.
ionCube Loader Nedir ve Neden Gerekli?
ionCube Loader, PHP kodunu şifrelemek ve lisanslamak için kullanılan bir araç setinin önemli bir parçasıdır. Geliştiriciler, PHP kodlarını ionCube Encoder kullanarak şifreleyebilir ve bu şifrelenmiş kodların çalışabilmesi için sunucuda ionCube Loader’ın yüklü olması gerekir. Bu mekanizma, yazılım geliştiricilerinin fikri mülkiyetlerini korumalarına, lisanslama modelleri uygulamalarına ve dağıttıkları yazılımların yetkisiz kopyalanmasını veya değiştirilmesini engellemelerine olanak tanır. Özellikle ticari yazılımlar, premium temalar, eklentiler ve özel kurumsal uygulamalar genellikle bu yöntemi kullanır. ionCube Loader olmadan, bu tür şifrelenmiş PHP dosyaları sunucunuzda çalışmayacak ve ilgili uygulamalar hata verecektir. Dolayısıyla, bu tür bir yazılım kullanıyorsanız, ionCube Loader kurulumu kaçınılmaz bir adımdır.
Ön Gereksinimler
ionCube Loader kurulumuna başlamadan önce aşağıdaki gereksinimlerin karşılandığından emin olmalısınız:
* Ubuntu 16.04 Sunucusu: Kurulumu yapacağınız aktif bir Ubuntu 16.04 sunucusu.
* Root veya Sudo Yetkileri: Kurulum komutlarını çalıştırmak için sudo yetkilerine sahip bir kullanıcı veya root erişimi.
* İnternet Bağlantısı: ionCube Loader dosyalarını indirmek ve sistem güncellemelerini yapmak için aktif bir internet bağlantısı.
* PHP Kurulumu: Sunucunuzda zaten bir PHP sürümünün yüklü olması gerekmektedir. Ubuntu 16.04 varsayılan olarak PHP 7.0 ile gelir, ancak farklı PHP sürümleri (örneğin, PHP 5.6, 7.1, 7.2) de kurulmuş olabilir. Hangi PHP sürümünün yüklü olduğunu bilmek, doğru ionCube Loader dosyasını indirmek için kritik öneme sahiptir.
* Temel Linux Komut Satırı Bilgisi: Terminal üzerinden dosya işlemleri, paket yönetimi ve yapılandırma dosyalarını düzenleme gibi temel komut bilgisi.
Sistem Güncellemesi
Kuruluma başlamadan önce, sunucunuzdaki paket listelerini ve yüklü paketleri güncelleyerek olası uyumluluk sorunlarının önüne geçmek iyi bir uygulamadır. Terminali açın ve aşağıdaki komutları çalıştırın:
sudo apt update
sudo apt upgrade -y
apt update komutu, yerel paket indeksini güncellerken, apt upgrade komutu ise yüklü tüm paketleri en son sürümlerine yükseltir. -y bayrağı, tüm sorulara otomatik olarak “evet” yanıtı verilmesini sağlar.
PHP Sürümünü Belirleme
ionCube Loader’ın doğru bir şekilde çalışabilmesi için, sunucunuzda yüklü olan PHP sürümüne uygun bir loader dosyası seçmeniz gerekmektedir. Bu adımı atlamamak veya yanlış bir sürüm seçmek, kurulumun başarısız olmasına neden olacaktır.
Komut Satırı ile PHP Sürümünü Öğrenme
Terminalde aşağıdaki komutu çalıştırarak aktif PHP sürümünüzü öğrenebilirsiniz:
php -v
Çıktı, yüklü PHP sürümünü gösterecektir. Örneğin:
PHP 7.0.33-0ubuntu0.16.04.16 (cli) (NTS)
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies
Bu örnekte, PHP sürümü 7.0’dır. Ayrıca, php -i | grep "API" komutunu kullanarak PHP API sürümünü de öğrenebilirsiniz. Bu bilgi, özellikle ionCube Loader’ı indirirken faydalı olabilir. Örneğin, PHP 7.0 için API sürümü genellikle 20151012‘dir.
phpinfo() Fonksiyonu ile PHP Sürümünü Öğrenme
Eğer web sunucunuz üzerinden çalışan PHP sürümünü öğrenmek istiyorsanız (ki bu genellikle daha önemlidir), phpinfo() fonksiyonunu kullanabilirsiniz.
1. Web sunucunuzun belge kök dizininde (genellikle /var/www/html/) phpinfo.php adında yeni bir dosya oluşturun:
sudo nano /var/www/html/phpinfo.php
2. Dosyanın içine aşağıdaki içeriği yapıştırın:
3. Dosyayı kaydedin (Ctrl+O, Enter) ve kapatın (Ctrl+X).
4. Web tarayıcınızda http://your_server_ip_or_domain/phpinfo.php adresine gidin.
5. Açılan sayfada “PHP Version” başlığı altında yüklü PHP sürümünü göreceksiniz. Ayrıca, “Architecture” bölümünde sunucunuzun 32-bit (x86) mi yoksa 64-bit (x86-64) mi olduğunu kontrol edin. Çoğu modern sunucu 64-bit’tir.
İşiniz bittiğinde güvenlik nedeniyle phpinfo.php dosyasını sunucunuzdan silmeyi unutmayın:
sudo rm /var/www/html/phpinfo.php
Gerekli Bağımlılıkları Kurma
ionCube Loader’ı indirmek ve kurmak için bazı temel araçlara ihtiyacınız olabilir. Özellikle curl veya wget gibi komut satırı araçları, dosyaları internetten indirmek için kullanılır. Genellikle bu araçlar Ubuntu sistemlerinde önceden yüklüdür, ancak yüklü değillerse aşağıdaki komutla kurabilirsiniz:
sudo apt install curl wget -y
Ayrıca, eğer Apache kullanıyorsanız ve PHP modülünüz eksikse, onu da kurmanız gerekebilir. Ubuntu 16.04 için PHP 7.0 genellikle varsayılan olarak gelir:
sudo apt install libapache2-mod-php7.0 -y
Eğer Nginx ile PHP-FPM kullanıyorsanız, ilgili PHP-FPM paketinin kurulu olduğundan emin olun:
sudo apt install php7.0-fpm -y
ionCube Loader İndirme
PHP sürümünüzü ve sunucu mimarinizi belirledikten sonra, ionCube’un resmi web sitesinden doğru loader paketini indirmeniz gerekmektedir.
1. ionCube’un resmi indirme sayfasına gidin: [https://www.ioncube.com/loaders.php](https://www.ioncube.com/loaders.php)
2. Bu sayfada, farklı işletim sistemleri ve PHP sürümleri için çeşitli loader paketleri listelenmiştir. Ubuntu (Linux) için olan “Linux (64 bits)” veya “Linux (32 bits)” seçeneğini bulmalısınız. Çoğu modern sunucu 64-bit’tir.
3. İlgili .tar.gz dosyasının indirme bağlantısını kopyalayın. Örneğin, 64-bit Linux için bağlantı şu şekilde olabilir: https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz
4. Sunucunuza geri dönün ve geçici bir dizine (örneğin, /tmp) giderek dosyayı wget komutu ile indirin:
cd /tmp
sudo wget https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz
Not: Yukarıdaki URL örnektir. En güncel URL’yi ionCube web sitesinden almalısınız.
ionCube Loader Dosyalarını Çıkarma
İndirdiğiniz sıkıştırılmış dosyayı tar komutu ile çıkarmanız gerekmektedir.
sudo tar -xvzf ioncube_loaders_lin_x86-64.tar.gz
Bu komut, ioncube adında yeni bir dizin oluşturacak ve loader dosyalarını bu dizinin içine çıkaracaktır. Şimdi bu dizine gidin:
cd ioncube
Bu dizinin içinde, farklı PHP sürümleri için ioncube_loader_lin_X.Y.so adında birçok .so uzantılı dosya bulacaksınız. Örneğin, PHP 7.0 için ioncube_loader_lin_7.0.so dosyasını aramalısınız.
ls
Bu komut, dizindeki tüm dosyaları listeleyecektir. Doğru PHP sürümünüze karşılık gelen dosyayı not alın.
ionCube Loader Dosyasını Doğru Yere Taşıma
Şimdi, PHP’nin eklentileri bulduğu dizine (extension directory) doğru ioncube_loader_lin_X.Y.so dosyasını kopyalamanız gerekmektedir.
PHP Uzantı Dizini (Extension Directory) Bulma
PHP’nin eklenti dizinini öğrenmek için aşağıdaki komutu kullanın:
php -i | grep extension_dir
Çıktı genellikle şu şekilde olacaktır:
extension_dir => /usr/lib/php/20151012 => /usr/lib/php/20151012
Bu örnekte, PHP 7.0 için eklenti dizini /usr/lib/php/20151012‘dir. Sizin PHP sürümünüze göre bu dizin farklılık gösterebilir (örneğin, PHP 5.6 için 20131226, PHP 7.1 için 20160303 vb.). Bu dizini not alın.
Loader Dosyasını Kopyalama
Şimdi, daha önce belirlediğiniz PHP sürümüne uygun ionCube loader dosyasını (örneğin, ioncube_loader_lin_7.0.so) PHP’nin eklenti dizinine kopyalayın:
sudo cp ioncube_loader_lin_7.0.so /usr/lib/php/20151012/
Not: Yukarıdaki komutta ioncube_loader_lin_7.0.so ve /usr/lib/php/20151012/ kısımlarını kendi PHP sürümünüze ve eklenti dizininize göre güncellemeyi unutmayın.
PHP Yapılandırmasını Düzenleme
ionCube Loader dosyasını doğru yere kopyaladıktan sonra, PHP’ye bu loader’ı kullanması gerektiğini bildirmeniz gerekmektedir. Bu işlem, PHP’nin yapılandırma dosyası olan php.ini‘yi düzenleyerek yapılır.
PHP Yapılandırma Dosyasını Bulma
PHP’nin hangi php.ini dosyasını kullandığını öğrenmek için aşağıdaki komutu kullanın:
php -i | grep 'Loaded Configuration File'
Çıktı, kullanılan php.ini dosyasının yolunu gösterecektir. Ubuntu 16.04’te, web sunucusu tipine göre birden fazla php.ini dosyası bulunabilir:
* Apache2 için: /etc/php/7.0/apache2/php.ini
* PHP-FPM (Nginx ile kullanılıyorsa) için: /etc/php/7.0/fpm/php.ini
* CLI (Komut satırı) için: /etc/php/7.0/cli/php.ini
Genellikle web uygulamaları için Apache2 veya FPM php.ini dosyasını düzenlemeniz gerekir. Hangi web sunucusunu kullandığınıza bağlı olarak ilgili php.ini dosyasını açın. Örneğin, Apache2 kullanıyorsanız:
sudo nano /etc/php/7.0/apache2/php.ini
ionCube Yönergesini Ekleme
php.ini dosyasını açtıktan sonra, dosyanın en başına aşağıdaki satırı eklemeniz çok önemlidir. Bu, ionCube Loader’ın diğer PHP uzantılarından önce yüklenmesini sağlar ve olası uyumluluk sorunlarını önler.
zend_extension = /usr/lib/php/20151012/ioncube_loader_lin_7.0.so
Not: /usr/lib/php/20151012/ioncube_loader_lin_7.0.so yolunu, daha önce kopyaladığınız loader dosyasının tam yolu ile değiştirmeyi unutmayın.
zend_extension yönergesini dosyanın en üstüne ekledikten sonra (varsa diğer zend_extension veya extension satırlarından önce), dosyayı kaydedin (Ctrl+O, Enter) ve kapatın (Ctrl+X).
Web Sunucusunu Yeniden Başlatma
PHP yapılandırma dosyasında yaptığınız değişikliklerin etkili olabilmesi için web sunucunuzu yeniden başlatmanız gerekmektedir.
Apache için
Eğer Apache kullanıyorsanız, aşağıdaki komutla Apache servisini yeniden başlatın:
sudo systemctl restart apache2
Veya eski sistemlerde:
sudo service apache2 restart
Nginx ve PHP-FPM için
Eğer Nginx ile PHP-FPM kullanıyorsanız, hem PHP-FPM servisini hem de Nginx servisini yeniden başlatmanız gerekmektedir:
sudo systemctl restart php7.0-fpm
sudo systemctl restart nginx
Veya eski sistemlerde:
sudo service php7.0-fpm restart
sudo service nginx restart
Not: php7.0-fpm yerine kendi PHP sürümünüze uygun olan (örneğin, php5.6-fpm veya php7.1-fpm) servisi kullanmalısınız.
Kurulumu Doğrulama
ionCube Loader’ın başarılı bir şekilde kurulup kurulmadığını kontrol etmek için iki farklı yöntem kullanabilirsiniz.
php -v Komutu ile Doğrulama
Terminalde aşağıdaki komutu çalıştırın:
php -v
Eğer kurulum başarılıysa, çıktıda ionCube Loader ile ilgili bir satır görmelisiniz:
PHP 7.0.33-0ubuntu0.16.04.16 (cli) (NTS)
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies
with ionCube PHP Loader v10.3.9, Copyright (c) 2002-2019, by ionCube Ltd.
with ionCube PHP Loader satırını görmek, CLI ortamında loader’ın çalıştığını gösterir.
phpinfo() ile Doğrulama
Web sunucunuz üzerinden çalışan PHP için doğrulamak amacıyla, daha önce kullandığınız phpinfo.php dosyasını tekrar oluşturabilirsiniz (veya silmediyseniz kullanabilirsiniz).
1. /var/www/html/ dizininde phpinfo.php dosyasını oluşturun:
sudo nano /var/www/html/phpinfo.php
2. İçeriği ekleyin:
3. Kaydedin ve kapatın.
4. Web tarayıcınızda http://your_server_ip_or_domain/phpinfo.php adresine gidin.
5. Açılan sayfayı aşağı kaydırın ve “ionCube Loader” başlıklı bir bölüm arayın. Bu bölümü ve loader’ın sürüm bilgilerini görmeniz, web sunucusu ortamında ionCube Loader’ın başarıyla çalıştığını gösterir.
Kurulumu doğruladıktan sonra, güvenlik nedeniyle phpinfo.php dosyasını sunucunuzdan silmeyi tekrar unutmayın:
sudo rm /var/www/html/phpinfo.php
Sorun Giderme
Kurulum sırasında veya sonrasında bazı sorunlarla karşılaşabilirsiniz. İşte sık karşılaşılan sorunlar ve çözümleri:
Sık Karşılaşılan Hatalar
* zend_extension bulunamadı veya yanlış yol: php.ini dosyasında zend_extension yönergesinin doğru dosyayı ve doğru yolu işaret ettiğinden emin olun. Dosya yolunun tam ve doğru olduğundan emin olun.
* Yanlış PHP sürümü için loader kullanılması: İndirdiğiniz ioncube_loader_lin_X.Y.so dosyasının sunucunuzdaki PHP sürümüyle (X.Y) eşleştiğinden emin olun. Örneğin, PHP 7.0 için ioncube_loader_lin_7.0.so kullanmalısınız.
* Web sunucusu yeniden başlatılmadı: php.ini dosyasında yapılan değişikliklerin etkili olması için web sunucusunun (Apache veya Nginx + PHP-FPM) yeniden başlatılması zorunludur.
* İzin sorunları: ionCube loader dosyasının (örneğin, /usr/lib/php/20151012/ioncube_loader_lin_7.0.so) PHP tarafından okunabilir olduğundan emin olun. Genellikle sudo cp komutuyla kopyalandığında bu sorun oluşmaz, ancak kontrol etmekte fayda var.
* zend_extension yönergesinin php.ini dosyasının en üstünde olmaması: ionCube Loader’ın diğer uzantılardan önce yüklenmesi gerektiği için bu yönergeyi dosyanın en başına eklediğinizden emin olun.
Hata Ayıklama Adımları
1. Günlükleri Kontrol Edin: Apache veya Nginx’in hata günlüklerini kontrol edin.
* Apache günlükleri: /var/log/apache2/error.log
* Nginx günlükleri: /var/log/nginx/error.log
* PHP-FPM günlükleri: /var/log/php7.0-fpm.log (veya syslog içinde php-fpm ile ilgili girdiler)
Bu günlükler, yükleyiciyle ilgili hatalar hakkında değerli bilgiler sağlayabilir.
2. Yolları ve Sürümleri Tekrar Kontrol Edin: Her adımı dikkatlice gözden geçirin, özellikle PHP sürümünü, ionCube loader dosyasının adını ve php.ini dosyasındaki yolu.
3. PHP CLI ve Web PHP Arasındaki Farkı Anlayın: Bazen php -v komutu ionCube’u gösterirken, web sunucusu üzerinden çalışan PHP göstermeyebilir. Bu, genellikle farklı php.ini dosyalarını düzenlediğiniz anlamına gelir. Web sunucunuzun kullandığı doğru php.ini dosyasını düzenlediğinizden emin olun (örneğin, Apache için /etc/php/7.0/apache2/php.ini).
4. PHP Modüllerini Listeleyin: php -m komutu yüklü tüm PHP modüllerini listeler. Bu listede “ionCube Loader”ı arayabilirsiniz. php -m | grep ionCube komutuyla doğrudan arama yapabilirsiniz.
Sonuç
Bu kapsamlı rehberde, Ubuntu 16.04 sunucunuzda ionCube Loader’ı adım adım nasıl kuracağınızı öğrendiniz. Kurulum süreci, PHP sürümünü belirlemekten, doğru loader dosyasını indirmeye, PHP yapılandırmasını düzenlemeye ve web sunucusunu yeniden başlatmaya kadar bir dizi dikkatli adımı içerir. Her adımın doğru bir şekilde takip edilmesi, ionCube ile şifrelenmiş PHP uygulamalarınızın sorunsuz çalışmasını sağlayacaktır. Karşılaşabileceğiniz olası sorunları gidermek için hata ayıklama ipuçlarını da göz önünde bulundurarak, bu kurulumu başarıyla tamamlayabilir ve PHP tabanlı ticari yazılımlarınızı Ubuntu 16.04 ortamınızda etkin bir şekilde kullanabilirsiniz. Bu kurulum, sunucunuzun işlevselliğini artırırken, kullandığınız yazılımların gereksinimlerini de karşılamış olacaktır.