Condividere file online allestendo un web server con XAMPP

Di questi tempi non si fa altro che parlare di "servizi cloud", strumenti che permettono di pubblicare in Rete tutti i propri documenti, di qualunque genere essi siano, e di condividerli con altre persone.

Di questi tempi non si fa altro che parlare di “servizi cloud”, strumenti che permettono di pubblicare in Rete tutti i propri documenti, di qualunque genere essi siano, e di condividerli con altre persone.
Con il termine “cloud” (nuvola, in italiano) si fa riferimento a quell’insieme di tecnologie che permettono di utilizzare risorse hardware e software distribuite in remoto. L’approccio cloud consente a qualunque utente di appoggiarsi alle risorse macchina ed alle applicazioni software messe a disposizione su uno o più server remoti per effettuare molteplici tipologie di operazioni.
I servizi fruibili “sulla nuvoli” sono certamente interessanti ma non sono pochi gli esperti che periodicamente mettono in guardia gli utenti citando tematiche di cruciale importanza.

Le eccezioni più frequentemente sollevate riguardano infatti la continuità dei servizi (leggasi affidabilità), la loro sicurezza e le politiche di tutela dei dati personali. Il consiglio migliore consiste sempre nel muoversi con la massima cautela. Quando si caricano dei file “sulla nuvola”, decidendo di utilizzare uno dei tanti servizi oggi disponibili sul mercato, è sempre bene proteggerli non affidandosi ciecamente ai propositi ed alle dichiarazioni d’intenti del cloud provider. È sempre bene che il “proprietario dei dati” si attivi per proteggerli adeguatamente. Come regola generale, da applicare sicuramente al cloud ma non solo ad esso, è opportuno provvedere a mettere in sicurezza i dati all’origine non limitandosi ad un “atto di fede” nei confronti del fornitore del servizio. Un’idea, quindi, potrebbe essere quella di salvare i dati “sulla nuvola” in forma cifrata: in questo articolo, ad esempio, abbiamo spiegato come utilizzare il noto software TrueCrypt per creare un volume crittografato sui server di un cloud provider.
Dal Garante per la protezione dei dati personali sono arrivati, di recente, una serie di suggerimenti per l’utilizzo intelligente dei servizi cloud evitando comportamenti che possano rappresentare un potenziale pericolo per l’integrità e la riservatezza dei propri dati (vedere l’articolo Cloud computing e tutela dei dati: il parere del Garante).

Condividere file online senza utilizzare alcun servizio cloud

Non si pensi, però, che per condividere file in Rete ci si debba necessariamente rivolgere ad un fornitore di servizi cloud. Qualunque sistema connesso in Rete, infatti, può infatti essere trasformato, almeno temporaneamente, in un server web.
In questo modo, tutti i file che si desiderano condividere con altre persone, collegate da sistemi client remoti, non dovranno essere spostati su server di proprietà di terze parti ma resteranno sempre sulle macchine installate presso la propria azienda, lo studio professionale o l’abitazione.
La soluzione che vi proponiamo è senza dubbio una delle meno “invasive”: il software XAMPP, nella versione “USB lite“, si propone come un vero e proprio web server, già configurato quasi in toto, che può essere avviato solo al bisogno, ossia quando si vogliono condividere file e cartelle con utenti remoti oppure eseguire particolari applicazioni web. XAMPP USB lite, inoltre, non “sporca” il registro di sistema aggiungendo chiavi o valori: non è quindi necessario effettuare alcuna “disinstallazione” od operazioni di pulizia.

Il web server XAMPP USB lite può essere eseguito da qualunque unità di memorizzazione, sia essa una chiavetta USB od un disco esterno oppure dall’hard disk.

Il pacchetto, mantenuto costantemente aggiornato dai suoi autori, integra il web server Apache, il software MySQL per la gestione di database relazionali, il linguaggio PHP, lo strumento per la gestione grafica di basi di dati MySQL phpMyAdmin, l’implementazione opensource dei protocolli SSL/TLS OpenSSL ed il pannello di controllo web di XAMPP.

Configurare XAMPP per l’esecuzione di applicazioni PHP e la condivisione di file e documenti in Rete

Avviando un server web si avrà tra le mani un potentissimo strumento in grado di consentire la condivisione di una vasta gamma di informazioni.
Il primo passo da effettuare consiste nel prelevare il software XAMPP USB lite cliccando su questo link. È comunque sempre preferibile verificare sul sito web ufficiale la disponibilità di una versione più aggiornata.

Dopo aver aperto il file Zip, si dovrà estrarne tutto il contenuto in una cartella di propria scelta (suggeriamo C:\xampp). In ambiente Windows, una volta estratti, i file di XAMPP occuperanno circa 260 MB di spazio.

Il server web è già pronto per essere avviato! Accedendo al contenuto della cartella C:\xampp e facendo doppio clic sul file denominato xampp_start.exe si sarà pronti per iniziare:

La comparsa del seguente messaggio d’allerta è del tutto normale perché il file non dispone di una firma digitale. È quindi possibile procedere cliccando semplicemente sul pulsante Esegui:

Apparirà una finestra a sfondo nero, simile alla seguente, che non dovrà mai essere chiusa:

Aprendo il browser web preferito, sia esso Internet Explorer, Firefox, Chrome, Opera o Safari, e digitando nella barra degli indirizzi l’URL localhost, ci si dovrà dinanzi alla schermate seguente:

Un clic su Italiano consentirà di accedere immediatamente al pannello di configurazione di XAMPP:

Il nostro consiglio, a questo punto, è quello di aprire la finestra del prompt dei comandi di Windows e digitare ipconfig. Se il sistema in uso è connesso in rete locale, accanto alla voce Indirizzo IPv4 dell’interfaccia di rete, si troverà l’IP assegnato alla macchina (nel nostro caso è 192.168.1.33).

Digitando, sempre al prompt dei comandi, l’istruzione hostname, seguita dalla pressione del tasto Invio, si troverà il nome assegnato al personal computer (nel nostro caso, VM7).
A questo punto, da qualunque client connesso in rete locale, digitando http://192.168.1.33 o http://vm7 nella barra degli indirizzi del browser, apparirà il medesimo pannello di configurazione di XAMPP.
Se la macchina sulla quale è in esecuzione il server web XAMPP fosse raggiungibile anche da remoto (router e firewall configurati per effettuare l’inoltro dei pacchetti dati in ingresso sulla porta 80), la stessa pagina di amministrazione potrebbe essere gestita da qualunque utente, senza la necessità di introdurre alcuna credenziale d’accesso.

Mettere in sicurezza il server web con XAMPP e verificarne il funzionamento

Il primo passo, dunque, consiste nel mettere in sicurezza il web server cliccando su Sicurezza:

Si troveranno, qui, tre indicazioni “Insicuro” ad indicare che il pannello di gestione di XAMPP è accessibile pubblicamente e che né MySQL né phpMyAdmin usano delle credenziali di accesso.
Per sanare la situazione è sufficiente fare clic sul link sottostante (xamppsecurity.php); apparirà quanto segue:

Nei primi due campi bisogna indicare una password, sufficientemente complessa, da assegnare all’utente root di MySQL quindi cliccare su Cambia la password. Si tratta, questo, di un passaggio molto importante perché consente di evitare che utenti non autorizzati possano creare o modificare arbitrariamente il contenuto dei database.
In corrispondenza della sezione Protezione directory XAMPP (.htaccess), è necessario indicare un nome utente ed una password. Queste informazioni dovranno essere sempre introdotte per poter accedere al pannello di amministrazione di XAMPP. Dopo aver fatto clic su Rendi sicura la directory XAMPP, quindi tornando su Sicurezza, il browser dovrebbe richiedere l’autenticazione:

In corrispondenza delle tre voci nelle quali ci si era imbattuti in precedenza, adesso XAMPP dovrebbe correttamente visualizzare l’indicazione “Sicuro“:

È tutto pronto per eseguire la prima applicazione PHP.

Eseguire uno script PHP con il server XAMPP

Si provi ad accedere alla cartella C:\xampp\htdocs ed a crearvi una sottocartella prova.
All’interno di tale directory si provi a creare un file di testo ponendovi al suo interno solo le righe che seguono:

<?php
echo "Benvenuto ". $_SERVER['REMOTE_ADDR'];
?>

Collegandosi con l’indirizzo http://192.168.1.33/prova o http://vm7/prova, verrà esposta una pagina web bianca con il messaggio Benvenuto, seguito dall’indirizzo IP della macchina locale.

Tutte le applicazioni web che si desidera siano accessibili da remoto, debbono essere inserite nella sottocartella htdocs creando delle subdirectory “ad hoc”.

Condividere un album fotografico utilizzando il server XAMPP

Abile com’è XAMPP ad eseguire applicazioni PHP di qualunque genere, perché non utilizzare il server web appena allestito, ad esempio, per condividere online un album fotografico?

Suggeriamo di scaricare ZenPhoto un prodotto che consente di creare in pochi minuti un album fotografico a partire da file d’immagine in diversi formati e da video realizzati in Flash, QuickTime e 3GP.
ZenPhoto permette la gestione di un gran numero di “gallerie fotografie” e si fa carico di tutte le operazioni di ridimensionamento delle foto e della creazione delle corrispondenti miniature. Gli album fotografici di ZenPhoto, grazie a XAMPP, saranno “navigabili” utilizzando un qualunque browser web.

La prima operazione da compiere consiste nell’estrarre tutti i file presenti all’interno dell’archivio Zip di ZenPhoto, scaricabile gratuitamente da questa pagina, nella cartella C:\xampp\htdocs. All’interno della sottocartella htdocs di XAMPP dovrebbe comparire esclusivamente la subdirectory zenphoto che rinomineremo, più semplicemente, in foto.

ZenPhoto, per poter funzionare correttamente, prevede – come requisito essenziale – la creazione di un nuovo database MySQL. Per procedere, bisogna accedere – dal browser Internet – all’indirizzo http://localhost/phpmyadmin ed introdurre la password precedentemente associata all’account utente root:

Con un clic su Database quindi digitando foto in corrispondenza di Crea un nuovo database e selezionando utf8_general_ci come set di caratteri per la base dati, si potrà preparare il database che accoglierà l’archivio di ZenPhoto.

Un clic sul pulsante Crea consentirà di produrre la nuova base dati MySQL.

Visitando la pagina http://localhost/foto si avvierà la procedura di configurazione di ZenPhoto:

Per portare a termine l’installazione dell’applicazione web ZenPhoto, è sufficiente seguire le indicazioni. In particolare, è generalmente necessario impostare i permessi per i file su restrittivi (0644) cliccando quindi su Applica.
Poco più sotto è indispensabile indicare i dati di autenticazione per l’accesso al server MySQL ed il nome della base dati precedentemente creata (foto):

Qualora dovesse apparire il messaggio “Setup non ha eseguito un test sul set di caratteri del filesystem (…)“, suggeriamo di aprire la cartella c:\xampp\htdocs\foto\zp-data e crearvi un file vuoto dal nome charset-tést.txt (si noti la presenza della lettera “e” accentata; con accento acuto). Ricaricando da browser la pagina http://localhost/foto, il messaggio di avviso dovrebbe scomparire.

Dopo aver fatto clic su Vai, si dovrà selezionare il pulsante Elimina i file di installazione e cliccare su impostare il nome utente e la password dell’amministratore.
Da ultimo, si dovranno accettare i termini di licenza d’uso cliccando su Accetta questi termini e condizioni e scegliere nome utente e password per l’account amministrativo di ZenPhoto:

Una volta fatto clic su Applica, si potrà effettuare il primo login, con l’account dell’amministratore, utilizzando le credenziali appena impostate:

A questo punto, facendo clic sulla linguetta Opzioni quindi sulla scheda Galleria, si può impostare il nome della galleria fotografica, una descrizione e stabilire quali account utente possono accedervi. È anche possibile definire una password per l’accesso alla galleria, uguale per tutti gli utenti.

Caricamento delle foto e protezione della cartella di ZenPhoto

Facendo clic sulla scheda Carica, in alto, è possibile aggiungere delle foto all’archivio gestito con ZenPhoto. Cliccando su Aggiungi file, si possono indicare singole foto, video, gruppi di foto e/o video oppure file Zip contenenti materiale multimediale. La dimensione massima degli archivi è regolata nel file php.ini coi parametri upload_max_filesize e post_max_size. Tali preferenze possono essere modificate, in modo che ZenPhoto possa gestire file di dimensioni maggiori, intervenendo sul contenuto del file c:\xampp\php\php.ini con un normale editor di testo.

Dall’interfaccia web di ZenPhoto, cliccando dapprima su Aggiungi file quindi su Avvia caricamento, l’applicazione provvederà ad esaminare i file indicati e ad aggiungerli nell’album fotografico in corso di creazione.

Ciò che appare collegandosi con la home di ZenPhoto:

Ogni fotografia digitale può essere ingrandita e può essere visualizzata insieme con una descrizione.

Qualora si volesse proteggere a livello server l’intera cartella di ZenPhoto, richiedendo nome utente e password ad ogni tentativo di connessione, si dovrà aprire il prompt dei comandi e digitare quanto segue:
cd\xampp\apache\bin
htpasswd -b -c -m "C:\xampp\security\.zenpwd" foto password

Al posto di foto dev’essere indicato il nome utente mentre al posto di password, la parola chiave scelta per l’autenticazione.

Dopo aver tolto l’attributo di sola lettura al file .htaccess (tasto destro, Proprietà, togliere il segno di spunta dalla casella Sola lettura) contenuto nella cartella c:\xampp\htdocs\foto, si dovrà aprirlo con un editor di testo aggiungendovi, in calce, quanto segue:
AuthName "album foto"
AuthType Basic
AuthUserFile "C:\xampp\security\.zenpwd"
require valid-user

Ogniqualvolta si desideri fermare il server XAMPP interrompendo la condivisione di tutte le informazioni, basterà portarsi nella directory del software e fare doppio clic sul file xampp_stop.exe.

Importante! Affinché il server web configurato con l’aiuto di XAMPP sia raggiungibile dall’esterno della Rete locale ossia da qualunque computer remoto, si dovrà aver cura di modificare le regole di inoltro dei pacchetti dati. Sul router utilizzato in ambito aziendale o domestico, si dovrà fare in modo che il traffico in arrivo diretto sulla porta 80 (HTTP), si automaticamente girato al client della LAN ove è in esecuzione XAMPP. Nel nostro caso, ad esempio, si dovrà configurare sul router una regola che accetti le connessioni in ingresso sulla porta TCP 80 e “giri” i pacchetti dati verso l’IP 192.168.1.33.

Ti consigliamo anche

Link copiato negli appunti