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:
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:
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
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
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.
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.
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
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:
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!