Kadir Hanoğlu

cPanel PHP Selector ( nixtree )

cPanel için biraz geç kalınmış bir yazı olsa da easyapache3 kullanımına devam edenler için güzel bir makale diyebilirim. cPanel üzerinde bir çok php ile yapılmış web sitesi barındırırken karşımıza çıkan eski uygulamaların, sunucuda kurduğumuz php sürümünden eski bir sürüm gerektirmesi biraz can sıkabiliyor. Bunun için cloudlinux ile güzel çözümler sağlanabiliyor ancak burada ücretsiz olarak müşterilerinizin cpanel üzerinden php versiyonunu dizin bazlı seçmesini sağlayacak bir uygulamadan bahsedeceğiz.

Önemli !!! Bunu yazmadan geçmek istemiyorum !
Bu uygulamanın çalışması için fcgi, cgi modlarından vazgeçmeniz gerekiyor. Bunun yerine suphp kullanmanız gerekecek. Bunu kabul ediyorsanız kurulumu başlatabilirsiniz :)

Kurulumu aslında oldukça basit. Pek detaya girmeye gerek duymuyorum bu yüzden kurulum aşamalarına geçiyorum :)

Hadi başlayalım ;)

İlk olarak kurulum için gereken sh dosyamızı çekeceğimiz dizine girelim.

cd /usr/local/src


Sonrasında dosyamızı çekelim
wget -N https://nixtree.com/download/free/ntphpselector_manage.sh


Dosyamız sorunsuz indiyse kurulumu başlatıyoruz :) Kurulum biraz uzun sürecektir.
sh ntphpselector_manage.sh install


Kurulum tamamlandıktan sonra varsayılan php versiyonumuzun ne olması gerektiğine karar verip bu versiyonu mevcut kurulu modülleriniz üzerinden derlemesi için aşağıdaki komutu veriyoruz.
sh ntphpselector_manage.sh recompile <option>


-- option
2 for 5.2
3 for 5.3
4 for 5.4
5 for 5.5


Örnek olarak;
Ben php 5.2 üzerinden derleme yapmak istedim. Bu yüzden yukarıda 5.2 için tanımlanan option numarası olan 2 yazıyorum.
sh ntphpselector_manage.sh recompile 2


Kurulum tamamlandı :) cPanelde software kısmından erişip hosting içinde hangi klasörde hangi php versiyonu kullanılacaksa dizine tıklayıp versiyonu belirleyip kaydedin. Sonucu görmek için web sayfanızı yenileyebilirsiniz :)

Memnun kalmazsanız uygulamayı kaldırmak için aşağıdaki komutu uygulamanız yeterli.
cd /usr/local/src

sh ntphpselector_manage.sh uninstall


Olurda cPanelde butonu göremezseniz ulaşmak için aşağıdaki bağlantıyı kullanabilirsiniz. Siz koyu işaretlenmiş bölümü benim gösterdiğim gibi kendi panelinizin key kısmının önüne yapıştırmalısınız.

/cpsess5529641416/frontend/paper_lantern/ntphpselector/index.live.php


Burada nixtree php selector ile ilgili bazı bilgiler vermek istiyorum !


Nixtree kurulumunuzu yaptıktan sonra cpanel üzerindeki mevcut php ayarlarınızı yine sorunsuz yapabilirsiniz. Ancak phpselector ile versiyon tanımlaması yapılan herhangi bir dizinde bu yapılandırmanız geçersiz olacaktır.
Nixtree ilk kurulumda mevcut php yapılandırmanızı kendi kurduğu php versiyonları için oluşturduğu php.ini dosyalarına geçirmektedir. Bu sebepten cpanel e ait php.ini dosyasında yapacağınız sonraki düzenlemeleri ya da cpanele değilde sadece nixtree ile versiyon tanımlaması yaptığınız dizinler için ilgili php.ini dosyalarınıza da aynı düzenlemeyi yapmanız gerekiyor.

- Dizinlere ulaşmak için phpinfo() fonksiyonu ile ilgili dizine bir php dosyası atarak o anda o dizinin kullandığı php.ini dosyasını ve modül klasörlerini görebilirsiniz.
- Bir süre kurulum yapıp kullanmaya başladıktan sonra apache derlemeniz durumunda versiyon tanımlaması yapılan dizinler için tekrar aynı işlemi yapmanız gerekiyor.

Bunun haricinde pecl ile kuracağınız php uzantılarını tanımlamada sorun yaşayabilirsiniz. Bu konuda biraz çaba sarf ettim ve işimin aciliyeti nedeniyle fazla uğraşmadan kurulumu kaldırıp tekrar kurdum sorunu giderdim :)

İyi çalışmalar...

    • bowtiesmilelaughingblushsmileyrelaxedsmirk
      heart_eyeskissing_heartkissing_closed_eyesflushedrelievedsatisfiedgrin
      winkstuck_out_tongue_winking_eyestuck_out_tongue_closed_eyesgrinningkissingstuck_out_tonguesleeping
      worriedfrowninganguishedopen_mouthgrimacingconfusedhushed
      expressionlessunamusedsweat_smilesweatdisappointed_relievedwearypensive
      disappointedconfoundedfearfulcold_sweatperseverecrysob
      joyastonishedscreamtired_faceangryragetriumph
      sleepyyummasksunglassesdizzy_faceimpsmiling_imp
      neutral_faceno_mouthinnocent