Aktualizacja ionCube loader na hostingu 1and1
Data: 2016-03-09, autor: Michał MisztalCzas biegnie, wszystko idzie do przodu. Moment, i już mamy PHP w wersji 7. I tutaj zaczyna się drobny zonk. Jakiś czas temu zakładaliśmy klientowi sklep internetowy. Sklep to płatny ShopGold i wymaga ionCube na serwerze. Niestety w 1and1, w przeciwieństwie do konkurencji, go nie uświadczymy. Na 1and1 trzeba go zainstalować samodzielnie.
IonCube loader to taka bestia która deszyfruje w locie zawartość plików PHP. Używana jest głównie przez firmy które trudnią się programowaniem w PHP. Taki kod dostajemy na płytce lub via email i każdy może sobie do niego zajrzeć. Jako, że jest to czyjaś praca to firma musi się jakoś zabezpieczyć by własne rozwiązania pozostały tajemnicą firmy. Często szyfrowane są pliki licencji i okres wersji demo. W kod PHP może zajrzeć każdy i zmienić określone linijki tak by program pracował wieczyście. Użycie szyfrowania przez ionCube na to nie pozwala - kod jest nieczytelny. IonCube deszyfruje go w locie - użytkownik końcowy nawet tego nie zauważa.
Nie będę opisywał procesu instalacji bo jest on opisany tutaj. Opiszę tylko szybki proces aktualizacji.
Gdy zajrzymy na stronę ionCube to zobaczymy różne wersje loadera. Niby 1and1 każe pobrać wersję 32 bitową, ale wypadałoby to sprawdzić. Dla sprawdzenia trzeba utworzyć plik PHP z zawartością
<?php
phpinfo();
?>
Należy wgrać go na serwer i uruchomić. W pierwszej linijce mamy to czego chcieliśmy, a wygląda to tak

Widzimy też, że serwer jest na Linuksie. Teraz przechodzimy na stronę ionCube i pobieramy wersję dla naszego systemu i naszej architektury. Tutaj mała uwaga - nie chodzi o system operacyjny na naszym komputerze ale na serwerze.

Paczkę należy rozpakować. Sytuacja prezentuje się następująco
- strona sklepu klienta działa w oparciu o PHP w wersji 5.4 która nie jest już wspierana
- chcemy ją zmienić na wersję najnowszą - obecnie jest nią wersja 7, niestety najnowszą wersją loadera ionCube jest ta dla PHP w wersji 5.6, zatem taką wersję trzeba ustawić dla strony
- folder ioncube zawiera biblioteki do wersji PHP 5.4 (stan z 2014 roku)
- jako, że instalujemy ionCube sami to mamy dziesiątki plików php.ini z przekierowaniem do biblioteki 5.4 w podfolderach sklepu
Teraz należy dodać brakujące biblioteki do katalogu ioncube na serwerze. Następnie należy zmienić w panelu klienta 1and1 wersję PHP dla strony. W tym momencie po wejściu na stronę otrzymamy komunikat o nieprawidłowej wersji ionCube. Teraz pora na edycję plików php.ini. Sprowadza się to do zmiany 5.4 na 5.6. I to wszystko. Problemem jest to, że trzeba to zrobić w każdym podkatalogu w którym plik php.ini występuje. Jeśli macie dostęp do SSH to pół biedy bo możecie napisać skrypt który to zrobi za was.
Po odświeżeniu witryny wszystko powinno działać.