Instalando ionCube Loader no Ubuntu 18.04 ou 20.04

Instalando ionCube Loader no Ubuntu 18.04 ou 20.04

Alguns Web Panels, como TinyCP, não possuem funcionalidade para instalação de plugins não nativos no repositório PHP, ou há casos em que o gerenciamento do Apache é feito via CLI, sem um Web Panel. Nestes casos, você deverá fazer o serviço de instalação manualmente, o que acaba sendo bem trabalhoso. Neste tutorial darei um passo a passo para instalar a extensão ionCube Loader.

O que é a extensão ionCube Loader?

O IonCube Loader é uma extensão para o PHP capaz de decodificar e executar arquivos nos quais foram codificados através do próprio IonCube. Essa extensão visa a proteção do código-fonte de arquivos escritos em PHP e é amplamente utilizado em sistemas com intuitos e licenças comerciais.

Requisitos e conhecimentos mínimos

Para efetuar o passo a passo de instalação você deve antes de tudo duas informações importantes do ambiente:

  • Saber criar o arquivo do PHPInfo ou saber versão e diretórios do PHP do seu ambiente.
  • Ter acesso direto à instância do Ubuntu via SSH. (Putty ou Bitvise)

Tendo a versão e os acessos, bora iniciar o processo de instalação.

Avaliando ambiente

Primeiro de tudo, afim de entender como o ambiente do PHP trabalha no seu site, crie o “PHPInfo” no diretório raiz do seu site. Lá teremos as informações que coletaremos e por lá saberemos quando o ionCube está efetivamente carregado.

Uma vez dentro do PHPInfo, precisamos saber onde que está o arquivo de configuração do PHP utilizado, como mostrado abaixo:

PHPInfo mostrando a localização do php.ini

Neste caso, o PHPInfo mostra que o domínio usa PHP7.2-FPM, então precisaremos posteriormente editar o /etc/php/7.2/fpm/php.ini para carregar o arquivo do ionCube. No caso do seu ambiente sempre anote o que aparece no “Loaded Configuration File”, ele é onde está carregando o php.ini que alteraremos posteriormente.

Ainda no PHPInfo, precisamos saber onde está sendo carregado os plugins do seu ambiente, afinal, é onde colocaremos o ionCube Loader para que ele seja carregado. Vá até a sessão “Core” do PHPInfo e anote o extension_dir no ambiente:

PHPInfo, no módulo Core, mostrando o caminho do extension_dir

Com isso, temos as duas informações que precisamos para o próximo passo:

Loaded Configuration File = /etc/php/7.2/fpm/php.ini
extension_dir = /usr/lib/php/20170718

Baixando e instalando ionCube Loader

Agora precisaremos baixar ele dentro da instância, então vamos conectar via SSH.

Uma vez conectado dentro da instância, faça o seguinte comando para baixar o ionCube:

sudo wget http://downloads3.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz

Executando o comando para baixar o ionCube

Ele irá baixar o arquivo compactado, então use o comando tar para descompactar-lo:

sudo tar xvfz ioncube_loaders_lin_x86–64.tar.gz

Executando o comando tar para descompactar o arquivo.

Ele irá gerar uma pasta ionCube com vários arquivos para diferentes versões de PHP, no nosso caso usaremos a correspondente à versão 7.2 do PHP.

Devemos copiar o arquivo para a pasta do extension_dir (/usr/lib/php/20170718) do PHP no nosso ambiente que anotamos acima.

Com isso, vamos copiar o arquivo ioncube_loader_lin_7.2.so (onde 7.2 corresponde ao numero do PHP utilizado) para a pasta mencionada acima através do Ubuntu com o comando cp (cp origem destino):

sudo cp ~/ioncube/ioncube_loader_lin_7.2.so /usr/lib/php/20170718

Como todo ambiente Linux faz, sem output de mensagem = concluído sem erros.

Copiando o plugin para a pasta do PHP 7.2

Agora vamos editar o php.ini. Este arquivo é o que apareceu no Loaded Configuration File do PHPInfo. Então vamos nele:

sudo nano /etc/php/7.2/fpm/php.ini

No final do documento adicione esta linha abaixo:

zend_extension = "/usr/lib/php/20170718/ioncube_loader_lin_7.2.so"

Lembrando que essa linha altera de acordo com cada versão do PHP que você utilizar.

Adicionando o zend_extension no final do arquivo php.ini

Após isso isso, faça CTRL+X, depois Y e ENTER para salvar essa alteração no php.ini.

Para que o PHP carregue esse plugin agora, devemos reiniciar o serviço Web e o PHP7.2-FPM. para isso execute os comandos abaixo:

sudo systemctl restart php7.2-fpm.service 
sudo systemctl restart apache2.service

Reiniciando o serviço WEB + PHP

Se ambos serviços não retornaram erros, significa que está tudo certo e nada resolvido. Agora entrando novamente no PHPInfo, na metade da página mostrará status sobre o ionCube, o que significa que ele carregou corretamente:

ionCube Loader carregado no PHPInfo

Caso não apareça, verifique novamente os comandos e veja se tudo foi executado nessa ordem. Lembre-se, se o PHP for diferente (Seja PHP-FPM ou não), os comandos, diretórios e o plugin do ionCube mudam, então fiquem ligados neste ponto.

É isso pessoal, até a próxima!

Did you find this article valuable?

Support Michael Santos by becoming a sponsor. Any amount is appreciated!