Se avete bisogno di crittografare il codice PHP della vostra applicazione, una scelta molto popolare è ionCube che è stato pensato per integrarsi bene sia con applicazioni di piccole dimensioni che di livello aziendale.

In genere, il codice sorgente PHP passa prima attraverso l’encoder ionCube prima che l’applicazione venga distribuita. Questo fa sì che il codice non sia leggibile dall’uomo o non possa essere modificato.

Tuttavia, per impostazione predefinita, il codice sorgente PHP criptato non può essere eseguito direttamente sul server. Deve essere decifrato prima che il motore PHP possa elaborarlo.

Qui è dove entra in gioco l’encoder ionCube.

Introduzione

Rilasciato per la prima volta nel 2002, ionCube è un’estensione PHP che decripta al volo il codice (precedentemente criptato) e lo prepara per l’esecuzione insieme al resto dell’applicazione PHP.

È tutta questione di sicurezza. Se un’applicazione PHP contiene codice proprietario/algoritmi, o sono richieste funzionalità di licenza del software, allora ionCube è la soluzione ideale per proteggere il codice sorgente.

Per codificare i file PHP è necessario acquistare prima l’encoder ionCube. Si trova anche la versione online, che include il supporto per la crittografia gratuita del codice PHP a scopo di test (ne parliamo più avanti).

Per quanto riguarda l’encoder ionCube, chiunque può scaricarlo e installarlo sul proprio server. Sono disponibili diverse versioni di ionCube Loader, ognuna progettata per un sistema specifico (Linux, Windows, macOS, ecc.), e architetture a 32 o 64 bit.

Una volta che lo avrete scaricato dovrete installare la versione di ionCube Loader che corrisponde alla versione PHP in esecuzione sul vostro server in quanto ogni download disponibile contiene versioni multiple di ionCube Loader per tutte le diverse versioni di PHP.

Se non siete sicuri di quale versione scaricare e installare, non preoccupatevi, ne parleremo in dettaglio a breve.

Nota a margine: se utilizzate HHVM (HipHop Virtual Machine) per elaborare PHP, dovete essere consapevoli che ionCube Loader non supporta HHVM.

Questa è una questione controversa, dal momento che HHVM ha terminato il supporto per PHP già dalla versione v3.30. Il punto è rilevante solo se usate una versione precedente di HHVM. Se state ancora usando HHVM e avete bisogno di criptare i file PHP con ionCube, allora dovrete passare a un engine PHP più standard che include supporto ionCube.

Preparazione per l’Installazione

Per completare l’installazione manuale dell’encoder ionCube sarebbe bene saper già maneggiare i comuni comandi del terminale. Se avete già familiarità con il terminale, passate alla sezione successiva.

In questa guida facciamo riferimento ai seguenti comandi del terminale:

  • cat: Invia il contenuto di un file al terminale.
  • cd: Cambia la directory di lavoro corrente.
  • cp: Copia uno o più file.
  • echo: Invia un messaggio al terminale.
  • grep: Potente ricerca basata sul testo.
  • head (testa): Esporta le poche righe iniziali di un file(i).
  • ls: Elenca file e directory.
  • mkdir: Crea una nuova directory.
  • nano: Editor di testo compatto all’interno della finestra del terminale.
  • ssh: Crea una nuova connessione SSH remota.
  • tar: Estrae i file da un archivio.
  • wget: Scarica i file via HTTP.

Comprendere cosa fanno questi comandi del terminale e come usarli renderà il processo di installazione dell’encoder ionCube molto più semplice. Fate clic sui link per informazioni più dettagliate su ogni comando.

Abilitare ionCube Loader su MyKinsta

Se siete clienti Kinsta, potete abilitare ionCube loader su MyKinsta. Per abilitare ionCube loader, andate su Sites > Tools > ionCube Loader e premete il pulsante “Enable”. In questo momento, ionCube loader può essere abilitato solo su siti che utilizzano PHP 7.4 o 8.1 (ionCube non è supportato su PHP 8.0 in questo momento). ionCube è gratuito per i clienti Kinsta e può essere installato su qualsiasi piano.

Abilitare ionCube loader su MyKinsta.
Abilitare ionCube loader su MyKinsta.

Se non siete clienti Kinsta, di seguito vi spiegheremo come installare manualmente l’encoder ionCube su un VPS. Assicuratevi di avere un accesso SSH completo e di poter eseguire comodamente i comandi del terminale.

Installazione Manuale di ionCube Loader

Ora vediamo la serie specifica di passi necessari per completare l’installazione manuale di ionCube Loader sul vostro server. Questo processo può variare leggermente a seconda dell’esatta configurazione del server, ma finché si utilizza un server basato su Linux, le differenze dovrebbero essere minime.

Durante il processo di installazione tratteremo in dettaglio ciascuna delle seguenti fasi:

  1. Collegarsi al Proprio Sito in Remoto Tramite SSH.
  2. Scaricare ed Estrarre la ionCube Loader PHP Extension.
  3. Copiare il File .SO di ionCube Loader.
  4. Configurare e Riavviare il Server.
  5. Verificare l’Installazione dell’Encoder ionCube
  6. Testare l’Installazione di ionCube
  7. Controllare i Registri degli Errori per i Problemi di Installazione

Collegarsi al Proprio Sito in Remoto Tramite SSH

Prima di poter scaricare e iniziare l’installazione di ionCube Loader dobbiamo stabilire una connessione remota sicura al server tramite SSH (Secure Shell). Questo è diventato il metodo standard per interagire con un server tramite la linea di comando e lo useremo spesso durante il processo di installazione dell’estensione ionCube Loader PHP.

Per aprire una nuova connessione SSH è necessario avere a portata di mano le seguenti informazioni, che devono essere inserite ogni volta che si effettua l’accesso:

  • Nome host
  • Numero porta
  • Nome utente
  • Password

È meglio cercare queste informazioni e prenderne nota in anticipo. Di solito, queste informazioni possono essere trovate nel cPanel del server o nel cruscotto MyKinsta, se siete clienti Kinsta. Se non lo siete, il vostro host sarà in grado di aiutarvi a trovare le informazioni che state cercando.

È inoltre possibile connettersi al server remoto utilizzando le chiavi SSH. Questo metodo è generalmente considerato un modo più sicuro per connettersi via SSH. Il server dovrebbe supportare entrambi i metodi.

Se desiderate utilizzare le chiavi SSH invece di inserire la combinazione username/password ogni volta che si effettua il login, date un’occhiata a questa guida completa per ulteriori informazioni.

Se siete su sistemi operativi macOS, o Linux, allora il terminale integrato andrà bene per l’accesso SSH. Se siete su Windows, tuttavia, dovrete utilizzare un client SSH come PuTTY, poiché questa funzione non è disponibile di default.

PuTTY: Client SSH di Windows
PuTTY: Client SSH di Windows

Useremo il terminale macOS nel corso di questa guida. Per connettervi al server tramite SSH sono necessari i seguenti dettagli:

  • Nome host
  • Numero porta
  • Nome utente
  • Password

Il comando del terminale SSH assume la forma:

ssh username@hostname -p portnumber

Il numero di porta è solitamente 22, ma può essere diverso per il vostro server specifico. Ad esempio, ci possono essere diversi numeri di porta utilizzati per i server condivisi e dedicati, quindi controllate con il vostro fornitore di hosting se non siete sicuri, prima di tentare di connettervi.

Una volta inserito il comando ssh, vi verrà richiesta una password dopo la quale la connessione remota SSH è completa e avrete accesso diretto al server.

Connessione SSH remota al server
Connessione SSH remota al server

Scaricare ed Estrarre la ionCube Loader PHP Extension

Ci sono diverse versioni dell’encoder ionCube disponibili per il download. Questi sono elencati per piattaforma e data di rilascio per facilitare la scelta della versione più adatta al proprio sistema.

ionCube loader
Scaricare gli archivi di ionCube loader

Potete scegliere di abbonarvi agli aggiornamenti dell’encoder ionCube per essere sicuri di mantenerlo sempre aggiornato all’ultima versione.

Per scoprire quale versione dell’encoder è quella corretta per il vostro server possiamo usare il comando PHP che mostra i dati dettagliati di configurazione PHP.

[phpinfo()](https://www.php.net/manual/en/function.phpinfo.php)

Per utilizzare questa funzione PHP e produrre i dati richiesti, completate i seguenti passi:

  • Connettetevi al server tramite SSH.
  • Create un file PHP.
  • Aggiungete la funzione phpinfo().
  • Salvate il file all’interno della cartella principale del sito web
  • Visualizzatelo in un browser.
  • Fate una ricerca nel documento per trovare i riferimenti ionCube.
  • Cancellate il file al termine della procedura.

Effettivamente è una bella quantità di lavoro per visualizzare solo i dati di configurazione del server PHP. Fortunatamente, c’è un modo più semplice per farlo attraverso il terminale.

L’esecuzione del comando php -i servirà la stessa risposta del motore PHP CLI di phpinfo(). Tuttavia, vogliamo che vengano emesse solo le prime righe, in quanto contengono le informazioni rilevanti sull’ambiente server in cui il PHP è in esecuzione.

Questo può essere fatto con:

php -i | head -n 5

che fornirà le seguenti informazioni:

Determinazione della versione dell'encoder
Determinazione della versione dell’encoder ionCube

Come potete vedere, il nostro server è basato su Linux e il x86_64 si riferisce ad un sistema a 64 bit. Quindi l’encoder ionCube che dovremmo scaricare è l’archivio Linux 64 bit tar.gz. Assicuratevi di scaricare l’archivio dell’encoder ionCube relativo al vostro sistema.

L’archivio ionCube Loader dovrebbe essere scaricato in una cartella temporanea, quindi creiamone una ora prima di fare qualsiasi altra cosa:

cd /tmp
mkdir ioncube
cd ioncube/

Per scaricare effettivamente l’archivio ionCube utilizzare il comando wget.

wget 
https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz

In questo modo scaricherete il pacchetto ionCube Loader nella cartella temporanea per mostrare l’avanzamento del download fino al suo completamento.

Scaricate l'archivio ionCube
Scaricate l’archivio ionCube

Una volta che l’archivio è stato scaricato con successo, estraetelo nella stessa cartella /tmp con:

tar xvfz ioncube_loaders_lin_x86-64.tar.gz
Estraete l'archivio ionCube Archive
Estraete l’archivio ionCube Archive

In questo modo estrarrete tutti i file archiviati in una nuova cartella ioncube. Elencateli attraverso il comando ls ioncube:

File dell'encoder ionCube
File dell’encoder ionCube

Come potete vedere, ci sono diversi singoli file Loader ionCube con l’estensione .so. Ogni nome di file contiene un numero diverso che si riferisce alla versione di PHP in esecuzione sul server, quindi è importante installare quella corretta.

In precedenza, abbiamo eseguito il comando php -i -i | head -n 5 per ottenere le informazioni sul sistema operativo del server. Le prime due righe di output ci danno anche la versione di PHP: nel nostro caso era 7.2.22.

Per determinare rapidamente quale file ionCube Loader dovremmo usare, elencate solo i file che contengono _7, così sarà più facile trovare solo i file che vi interessano.

Possiamo farlo inviando l’outuput da ls in grep per filtrare l’elenco dei file:

ls ioncube | grep _7

il che si traduce in:

File di caricamento di ionCube Loader filtrati
File di caricamento di ionCube Loader filtrati

La corrispondenza più vicina alla nostra versione di PHP è ioncube_loader_lin_7.2.so. C’è un altro file abbinato chiamato ioncube_loader_lin_7.2_ts.so, ma possiamo ignorarlo perché è la versione thread-safe che non è rilevante per la nostra particolare configurazione del server.

Nel caso in cui ve lo foste chiesti, i file .so sono un tipo di file di libreria che sta per ‘oggetto condiviso’. Questi sono in qualche modo simili ai file DLL (Dynamic Link Library) che potreste già conoscere se siete utenti Windows.

Copiare il File .SO di ionCube Loader

Per completare l’installazione di ionCube Loader è sufficiente copiare il file ioncube_loader_lin_7.2.so nella cartella delle estensioni PHP.

Per conoscere la posizione della cartella delle estensioni immettete il seguente comando nel terminale:

php -i | grep extension_dir

Questo restituisce una stringa contenente le informazioni richieste.

extension_dir => /opt/cpanel/ea-php72/root/usr/lib64/php/modules => /opt/cpanel/ea-php72/root/usr/lib64/php/modules

Non dimenticate che si tratta di una posizione unica relativa al vostro server. Ora che conosciamo la cartella di destinazione possiamo copiare il file ionCube Loader.

sudo cp /tmp/ioncube/ioncube/ioncube_loader_lin_7.2.so /opt/cpanel/ea-php72/root/usr/lib64/php/modules
Copiare l'encoder ionCube nella directory di installazione
Copiate l’encoder ionCube nella directory di installazione

In questo momento l’encoder ionCube è nella posizione corretta, ma dobbiamo far sapere a PHP che l’estensione è disponibile e dove è installata.

Possiamo farlo modificando il file di configurazione principale php.ini e aggiungendo una nuova voce zend_extension specificando il percorso ioncube_loader_lin_7.2.so.

Il file php.ini è abbastanza complicato da modificare tramite il terminale, ma possiamo aggirare questo problema approfittando del fatto che PHP supporta i file di configurazione personalizzati.

L’unica avvertenza è che questi devono essere situati in un elenco specifico che possiamo determinare introducendo quanto segue:

php -i | grep 'additional .ini files'
Trovate la cartella di configurazione PHP personalizzata
Trovate la cartella di configurazione PHP personalizzata

Ora abbiamo tutte le informazioni per creare il nostro file di configurazione personalizzato e aggiungerlo alla posizione corretta.

bash -c 'echo "zend_extension=/opt/cpanel/ea-php72/root/usr/lib64/php/modules/ioncube_loader_lin_7.2.so" > /opt/cpanel/ea-php72/root/etc/php.d/00-ioncube.ini'

Notate che il nostro file custom .ini ha il prefisso 00, che è un modo per caricarlo prima di altri file di configurazione PHP: in questo modo vi assicurate che funzioni senza entrare in conflitto con altri file di configurazione personalizzati.

Configurare e Riavviare il Server

L’estensione ionCube Loader PHP dovrebbe ora essere installata correttamente. Prima di poterlo usare, però, dobbiamo fare un po’ di pulizie.

Dopo l’installazione è importante fare quanto segue:

  • Ricaricare il server
  • Riavviare l’engine PHP
  • Svuotare la cache del sito

Il server può essere ricaricato tramite la command line, ma il comando esatto varia a seconda della configurazione del server. Dato che stiamo eseguendo Nginx sul nostro server, abbiamo usato:

sudo /etc/init.d/nginx reload

PHP può essere riavviato direttamente da cPanel o dashboard. Di solito ci vorranno diversi secondi per riavviare PHP, e vedrete una notifica popup al termine.

L’ultima cosa da fare è cancellare la cache del sito per essere sicuri di vedere le ultime modifiche apportate alla configurazione del server.

Una volta completati questi ultimi passaggi, ionCube Loader dovrebbe ora essere installato e configurato correttamente sul vostro server, pronto a decifrare i file codificati in PHP.

Verificare l’Installazione dell’Encoder ionCube

Per verificare se l’encoder ionCube è installato e configurato correttamente, ci sono un paio di cose da fare.

In primo luogo, utilizzate php -i

Se l’encoder ionCube è installato, i dettagli verranno visualizzati in output.

Tuttavia, questo produce un’enorme quantità di dati al terminale che dovrete scorrere manualmente per cercare i riferimenti ionCube. Infatti, l’output dal php -i include di solito oltre 1000 righe di testo.

È possibile utilizzare il comando terminale php -i | wc -l per vedere il numero esatto di linee in output.

Siccome è impossibile cercare manualmente negli output del terminale, possiamo invece convogliare l’uscita da php -i direttamente nel comando grep e restituire solo le informazioni che ci interessano.

Per fare questo, inserite quanto segue in una finestra del terminale (che è ancora collegato al server web tramite SSH):

php -i | grep ioncube
Visualizzate le informazioni di configurazione PHP
Visualizzate le informazioni di configurazione PHP

Se vedete riferimenti a ionCube Loader l’installazione ha avuto successo.

È inoltre possibile accedere alle informazioni sul caricatore ionCube tramite il comando del terminale php -v. Verrà visualizzata la versione specifica del caricatore ionCube, se installato.

Visualizzate le informazioni sulla versione di PHP
Visualizzate le informazioni sulla versione di PHP

Se non vedete nessuna uscita relativa allo ionCube via php -i o php -v allora qualcosa potrebbe essere andato storto con l’installazione. In questo caso potete provare a ripetere alcune (o tutte) le fasi dell’installazione per vedere se questo risolve il problema.

Se il problema persiste, contattate il vostro host che sarà in grado di fornirvi le istruzioni necessarie.

Un altro modo consigliato è quello di creare una pagina di phpinfo, caricarla e cercare “ioncube”. In questo modo saprete se ionCube è stato installato correttamente e con quale versione.

Testare l’Installazione di ionCube

Oltre a verificare semplicemente che l’encoder ionCube sia installato, vale anche la pena di eseguire un test dal vivo per assicurarsi che l’estensione funzioni come previsto prima di utilizzarla sui file di produzione.

Facciamolo ora codificando un file PHP e verificando se viene eseguito correttamente quando viene caricato sul server. Uno dei modi più semplici per codificare il codice PHP è quello di utilizzare l’encoder online.

Encoder ionCube online
Encoder ionCube online

Prima di caricare i file da codificare è necessario registrarsi per avere un account gratuito ionCube. Fare clic sulla voce di menu Accedi e seguire le istruzioni sullo schermo per creare un account.

Una volta effettuato il login avrete accesso alla pagina di caricamento dell’encoder.

Caricate i file PHP da codificare
Caricate i file PHP da codificare

Di solito, accodare i file PHP per il codice di produzione ha un costo, ma per i test non si paga nulla.

Tutti i file di test codificati saranno decodificati attivamente solo tramite l’estensione PHP del decoder ionCube per un massimo di 8 ore, dopo di che scadranno e non saranno decodificati. Ma questo è più che sufficiente per verificare se tutto funziona come dovrebbe.

Create un file PHP di prova e caricatelo sull’encoder online. Assicuratevi che la casella “Test encoding box” sia selezionata.

Il file caricato viene quindi messo automaticamente in coda per essere codificato. Se questo processo ha successo, dopo pochi secondi vedrete una pagina che mostra i risultati e un link di download per accedere al file codificato.

File ionCube caricati in forma codificata
File ionCube caricati in forma codificata

Quando scaricate il file noterete che include l’attuale timestamp per differenziarlo dal file originale.

Ad esempio, il nostro nome file originale ioncuber-loader-test.php è stato codificato e quindi reso disponibile per il download come ioncuber-loader-test-encoded-190924-100632.php.

Potete includere nel file di test qualsiasi codice PHP valido che vi piaccia. Per il nostro file PHP di prova, abbiamo aggiunto una semplice funzione che restituisce un numero da visualizzare insieme ad un messaggio.


<?php

function mySecretFunction() {
  return '42';
}

echo "<h1>ionCube Loader Test Page</h1>";
echo "<p>Output of encoded function: " . mySecretFunction() . 
"</p>";

A titolo di confronto, dopo che questo è stato eseguito attraverso l’encoder, il file scaricato conteneva quanto segue:


<?php //0059b
// 10.2 72
// 
// IONCUBE ONLINE ENCODER EVALUATION
// THIS FILE IS LICENSED TO BE USED FOR ENCODER TESTING
// PURPOSES ONLY AND SHOULD NOT BE DISTRIBUTED
// 
if(!extension_loaded('ionCube Loader')){$__oc=strtolower(substr(php_uname(),0,3));$__ln='ioncube_loader_'.$__oc.'_'.substr(phpversion(),0,3).(($__oc=='win')?'.dll':'.so');if(function_exists('dl')){@dl($__ln);}if(function_exists('_il_exec')){return _il_exec();}$__ln='/ioncube/'.$__ln;$__oid=$__id=realpath(ini_get('extension_dir'));$__here=dirname(__FILE__);if(strlen($__id)>1&&$__id[1]==':'){$__id=str_replace('\\','/',substr($__id,2));$__here=str_replace('\\','/',substr($__here,2));}$__rd=str_repeat('/..',substr_count($__id,'/')).$__here.'/';$__i=strlen($__rd);while($__i--){if($__rd[$__i]=='/'){$__lp=substr($__rd,0,$__i).$__ln;if(file_exists($__oid.$__lp)){$__ln=$__lp;break;}}}if(function_exists('dl')){@dl($__ln);}}else{die('The file '.__FILE__." is corrupted.\n");}if(function_exists('_il_exec')){return _il_exec();}echo("Site error: the ".(php_sapi_name()=='cli'?'ionCube':' ionCube')." PHP Loader needs to be installed. This is a widely used PHP extension for running ionCube protected PHP code, website security and malware blocking.\n\nPlease visit ".(php_sapi_name()=='cli'?'get-loader.ioncube.com':' get-loader.ioncube.com')." for install assistance.\n\n");exit(199);

?>
HR+cPrb0lpjMgGF/p2/rAXWaVsF5lgbOo0LYkBQu2sZ7cHDIXwoQ+LPTtnDTw0hOl5Yfp7CvmV5c
bV90201GkQl3Lr5trbc0XXBJxV+hFqwsyPhXemDwQ37Lf0HHckqLWF5yXiIoErSIQzS8RbI1n49R
e2kRxmrwA+P2WbIZabhhXUPGZcn91NmJyW4qKz3xynZh+nvarORpi8tXqwPA3QUY7QZtwABJQs3U
lLpo3+X9sowLMgzttHBNNcGOZ73HVSgZ9eUtTRCeaswT4geKbT2qa0LgL8vhtl7RuymBklX1Rm0Q
1Aete/XaFhX6YG+B66t6nXBisZ5+P1O3YomFuW+rhbMbT1w3lk+MY+Ri5SCnRuvMig8ZWkchG3wX
XMpoGoP2uWectVSOROY+vmaGD+WTFjEFyw1C93T5qU4If5Ql/AdXA7s+ISvH8D5rqKSheLfnBQ2d
yx5yu5FEMrJwLA9g2g3xf2OSV5X1+1DmkRVEvY0tcukjjYVCcvbDKSBQpigXvYiTHAouI5ANmYbR
pMURAoAO9gUSm3Bul7HZdaQRwH2Fyp3na3hWGiSTdp5EXEDMTKRWtiB5nPPQ3MmVO6F2Er62h3Ov
N0oR6uCDj/y11u3Re6BQ2laN2k9m9ylnsMYketpe+OOMaoA6+n1yVpYWkBra+vr+Veh9+oQkXQBP
ZG4bUtd+4UIWW057ZMkKS4+2S3dSDHjcU/Op9ZSp2VFpSOlaqssNgA9WMGP0b8xhbTOPx6FqgY09
/WnmQyto9goSeIfAcc1braP74ILD9DLwVRG1aXHIC6WGhPYzafs+gut8DHebHUzSPj3JYu9t6/w2
1Nnuc5Dso5SnAa8v2AabXUvZBpQrYTf8tY1L0zL8sqTIvTlv/tRCpsu4hrwFg7hqx+6OsXaWiLwY
xtfwBfCbGS1a/c2+OhUujEllco6gB1KoekhLv9xVj70cRWRgnf+nSCcCc2bFjk4+VtJh+07M9CRO
vqaTu78gagPGMVFYebH5AvOLOKn8Ao1A1lX+GdiD0mLr8BAQ2jrZx1i8wZ0ILNuKRFWvFnYK4Bjg
SYImW2oc6Mg/u50B/Y+mjAeIbpUfm+Ksetd5n2sFetQt831K3u891bKBPw8AzqtGzhLjihFhORCG
BIwx+aA8AvUMeR4Uuk/FdyxATCqly93/crGkCwUQWrvPY5hA9KvtmOFvYPUVpuFZKS5BPzUySat3
ChtDQpr7H7N9phQvoSZ7pTBOGoyfVDTn1abQVMYQXbrW+yee+wBnGiUpGpR3MgkUPHKX/N36+P8o
Ld5obAtVtNjgiQjcYwI6KkrNmH22sqHlILAnR7yUn0==

Si tratta di stringhe completamente irriconoscibili dal codice sorgente originale, il che vuol dire che l’encoder ha fatto il suo lavoro!

La domanda importante ora è: l’estensione del decoder ionCube installato sarà in grado di analizzare il file e decodificarlo in modo che possa essere eseguito come normale codice PHP?

Per scoprirlo, abbiamo caricato entrambi i file PHP sul server e li abbiamo visualizzati nel browser. Il primo è il file originale contenente il codice PHP grezzo.

Test del file PHP grezzo ioncube
Test del file PHP grezzo

La pagina viene visualizzata come previsto. Ora il file PHP codificato:

Test file PHP codificato
Test file PHP codificato

Viene visualizzato esattamente lo stesso, in modo che l’estensione del decodificatore ionCube sia verificata come installata e correttamente funzionante.

Controllare i Registri degli Errori per i Problemi di Installazione

Un’ultima cosa che si può fare per verificare che l’installazione abbia avuto successo è visualizzare i log degli errori del server e cercare le voci recenti relative all’installazione di ionCube.

Se vedete qualcosa di simile a quanto segue nel registro degli errori, allora dovrete contattare il vostro host in modo che possano dare un’ulteriore occhiata:

PHP Fatal error: The file 
/www/sitename_xxx/public/wp-content/themes/theme-name/functions.php was encoded by the ionCube Encoder for PHP 5.6 and cannot run under PHP 7.1

I passi necessari per accedere ai log degli errori variano da host a host, quindi è meglio fare prima di tutto un controllo, se non siete sicuri di dove si trovino.

I clienti Kinsta possono visualizzare i log degli errori nel loro cruscotto MyKinsta.

Riepilogo

A questo punto, si spera, avrete installato l’estensione ionCube Loader PHP che starà già funzionando sul vostro server. Prendiamoci un momento per ricapitolare quello che abbiamo fatto.

Abbiamo appreso che lo ionCube Loader è un’estensione PHP che ha lo scopo di decriptare al volo i file PHP precedentemente criptati, nel momento in cui vengono richiesti dal server.

Per fare questo, l’encoder deve essere installato correttamente tramite una serie di comandi al terminale quando è collegato al server attraverso una connessione SSH.

Una volta stabilita una connessione sicura al server, è possibile avviare il processo di installazione dell’estensione dell’encoder ionCube. Il processo prevede una serie di passaggi:

  1. Scaricare l’archivio corretto ionCube Loader in una cartella temporanea sul server.
  2. Estrarre l’archivio scaricato. Selezionare il file . so dell’ionCube Loader che troverete tra i numerosi file estratti che corrispondono alla versione installata di PHP.
  3. Copiare il file .so dell’ionCube Loader nella cartella delle estensioni PHP. La cartella avrà una posizione fissa, unica per la vostra particolare installazione di PHP.
  4. Attivare l’encoder ionCube in PHP modificando il file php.ini principale o creando un file . ini personalizzato. Aggiungere una nuova estensione zend_extension che punta alla posizione del file dell’encoder ionCube installato.
  5. Per avviare effettivamente l’elaborazione di file PHP criptati, il server deve essere ricaricato e il motore PHP riavviato. Il processo esatto per questo passaggio varia da server a server. A volte è anche necessario svuotare la cache del sito.
  6. Verificare che l’installazione dello ionCube abbia avuto successo tramite il terminale utilizzando i comandi php -i e php -v.
  7. Il passo finale è quello di fare un test dal vivo per assicurarsi che l’encoder ionCube funzioni come previsto. È possibile utilizzare l’encoder online per crittografare gratuitamente i file PHP, purché sia solo per scopi di test.

Se qualcosa va storto durante il processo di installazione, o solo per vostra tranquillità, potete anche controllare i log del server per eventuali errori che potrebbero essersi verificati.

Ora è il vostro turno: qual è la vostra esperienza con ionCube Loader? Fatecelo sapere nei commenti!

David Gwyer

David Gwyer is a WordPress developer at WPGoplugins, JavaScript programmer, and technical writer with 20+ years industry experience. His current development work is focused on creating engaging blocks for the exciting new WordPress Editor. Connect with David on Twitter