Unzip su Aruba: decomprimere un file direttamente sul server remoto

Come ho scritto nel mio articolo in cui parlo della mia esperienza con i maggiori hosting provider in circolazione, fare zip e unzip dei file su Aruba può essere un po’ macchinoso.

Ma procediamo per gradi.

Se hai un po’ di esperienza nell’installazione di CMS Open Source come WordPress, Joomla, Magento, PrestaShop, ecc. e, come me, preferisci eseguire l’installazione manuale piuttosto che quella automatica (one-click), molto probabilmente ti sarai scontrato anche tu con il problema del trasferimento dei files in FTP.

I primi passaggi dell’installazione manuale di WordPress, e più in generale di un CMS, prevedono infatti di scaricare un pacchetto di files compresso (di solito in formato .zip) dalla home page del sito ufficiale della piattaforma (come ad esempio la pagina wordpress.org per quanto riguarda WordPress), decomprimerlo in locale sul tuo computer e, successivamente, caricare i files uno per uno sul tuo spazio web. Ovviamente non si tratta di trascinare i files uno per uno, tuttavia avrai potuto constatare anche tu che fare l’upload di una cartella con dentro molti files a volte richiede molto tempo.

Ma perché mi devo preoccupare della compressione dei files?

Fintanto che si esegue una prima installazione, non ci sono grandi problemi. Se hai una connessione decente, il trasferimento dei files richiesti per l’installazione di WordPress, ad esempio, richiede qualche minuto. Al contrario, se invece di una prima installazione stai facendo il ripristino di una versione di backup di un sito che era già online da un po’ di tempo, magari pieno di immagini, oppure stai facendo una migrazione e quindi stai spostando il sito da un hosting provider ad un altro, l’operazione di trasferimento di una cartella piena di files potrebbe essere piuttosto lunga, anche se possiedi una connessione in fibra ottica.

Questo perché, per dirla in parole povere, si impiega molto meno tempo a caricare un unico file da 1 GByte piuttosto che 1000 file da 1 MByte ciascuno. Si, anche se le dimensioni totali non cambiano. Questo avviene perché il protocollo FTP prevede che, una volta aperta una “sessione” tra client e server, venga aperto e chiuso un differente canale dati per ogni file trasferito, operazione che può richiedere più tempo del trasferimento dati stesso.

In più, comprimendo i file di una cartella che in totale occupa 1 GByte, specialmente se essa contiene i files di WordPress, otteniamo una notevole riduzione delle dimensioni totali. La maggior parte dei file di un CMS sono, infatti, dei file di “testo” (codice PHP, CSS, HTML, Javascript, ecc.), e la compressione zip per questo tipo di file è molto efficace.

Quando vuoi trasferire dei files dal tuo computer locale al tuo spazio web, quindi, quello che ti converrebbe fare è per prima cosa comprimere tutti files all’interno di un unico archivio in formato .zip, fare upload e, solo dopo aver trasferito il file compresso, procedere con la decompressione dei files direttamente sul server remoto.

Come abbiamo visto nell’articolo sopra citato, non tutti gli hosting provider ti danno la possibilità di farlo. Aruba, ad esempio, per i pacchetti di hosting condiviso come “Hosting Linux Easy” (almeno nel momento in cui sto scrivendo questo articolo) non prevede nessuna funzionalità, nessun comando specifico, per poter decomprimere un file zip che si trovi all’interno dello spazio di hosting. Per poter fare la compressione e decompressione di interi archivi direttamente sul server remoto, devi acquistare un hosting provider che ti fornisce il CPanel, come ad esempio SiteGround, Blue Host e Hostgator.

Oppure, se ormai hai Aruba, utilizzi il “workaround” che sto per spiegarti.

Come decomprimere i files .zip direttamente sul server remoto

Da questo momento in poi, darò per scontato che già sai come collegarti ad un hosting tramite protocollo FTP, mediante l’utilizzo di un software come FireFTP, FileZilla, e così via. Se non è così, puoi dare un’occhiata all’articolo in cui spiego come installare WordPress con la procedura manuale.

Partiamo dal caso pratico dell’installazione di WordPress (anche se, come abbiamo visto, questa procedura vale in qualsiasi caso).

  1. Copia il file “wordpress.zip” all’interno della cartella principale dello spazio web

    unzip aruba wordpress.zip

    Il file wordpress.zip si trova sullo spazio di hosting

  2. Crea, sul tuo computer, un file denominato unzip.php, e inserisci al suo interno il seguente codice:
    <?php 
    
    if (exec('unzip nomefile.zip'))
    {
    	echo "</p>
    <h1>FILE DECOMPRESSO!</h1>
    <p>";
    }
    else
    {
    	echo "</p>
    <h1>IMPOSSIBILE DECOMPRIMERE IL FILE</h1>
    <p>";
    }
    
    ?>
    
  3. Sostituisci, all’interno del file, la stringa “nomefile.zip” con il nome del file che vuoi decomprimere (in questo caso, ad esempio “wordpress.zip”)
  4. Copia il file appena creato all’interno della stessa cartella in cui hai copiato il file da decomprimere
  5. All’interno del tuo browser, nella URL bar, digita il nome del dominio aggiungendo alla fine la stringa “/unzip.php”

A questo punto, dovresti ritrovarti la cartella decompressa (nel nostro caso “wordpress”), direttamente all’interno del tuo spazio di hosting.

Importante!

Una volta effettuata questa procedura, cancella immediatamente il file unzip.php dal tuo server remoto. Il comando “exec” è un comando abbastanza avanzato che permette di eseguire programmi “esterni” ad Apache. Meglio non lasciarlo per troppo tempo sul server…

Se non dovesse funzionare

Alcune volte, con le impostazioni di default di Aruba, qualsiasi tentativo di eseguire la compressione o decompressione di files, anche con questo metodo, fallisce. Te ne sarai accorto se hai provato ad installare ed utilizzare il plugin “BackupWordPress” e non ha funzionato. Il plugin stesso restituisce un errore relativo al fatto che lo ZipArchive non è abilitato. Lo ZipArchive è un estensione che può essere abilitata da pannello di controllo seguendo pochi semplici passaggi.

  1. Loggati all’interno del tuo account Aruba
  2. Clicca su “Pannello di controllo”
  3. Vai su “Gestione Hosting Linux”
  4. Clicca su “Tools and Settings” in alto a destra
  5. Clicca su “Personalizzazione del file PHP.INI”
  6. Imposta il parametro “zlib.output_compression” su “ON”

    unzip aruba parametro php ini

    Attivare ZipArchive su Aruba, file php.ini

In alcuni casi, invece di comparire un file con vari parametri da settare, come nello screenshot precedente, potrebbe comparire una lista di file preimpostati, tra i quali potrai scegliere quello che si adatta di più al tuo sito web. In questo caso, per poter usufruire della libreria ZipArchive, dovrai selezionare il file PHP.INI “zip_cgi.fix_pathinfo” (vedi screenshot seguente).

Come sempre, che questo articolo ti possa essere utile nel tuo lavoro e, per qualsiasi problema o chiarimento, ti invito a lasciarmi un commento o contattarmi attraverso il contact form presente nella pagina contatti. Cercherò di risponderti il prima possibile e aiutarti a chiarire qualsiasi dubbio.