Installare owncloud su Debian 7

owncloud è una soluzione per la condivisione di file e informazioni sul web e può essere, senza molti problemi, un eccellente sostituto di Dropbox, la cui differenza principale è che ownCloud è gratuito e open-source.
Non ci sono particolari limiti perché con ownCloud i file condivisi possono essere fruiti sia da PC sia da smartphone installando un’app gratuita. Non è più necessario creare una casella di posta ad-hoc, per ottenere 500 MB in più.

ownCloud consente a chiunque di installare e utilizzare senza spendere altro denaro su un server privato (VPS), senza limiti di spazio di archiviazione (fatta eccezione per la capacità del disco rigido) o il numero di utenti collegati;
se avete un Raspberry Pi e una connessione ad Internet permanente non c’è neppure questa spesa.

In questo tutorial vediamo come installare la parte server, quella dove vengono memorizzati i file e le informazioni, di owncloud 7 su Debian 7 Wheezy.


Una nota aggiuntiva: in questo tutorial viene attivato HTTPS (SSL) per proteggere gli accessi alla propria cloud. Questo aspetto, sebbene non obbligatorio per far funzionare ownCloud, è fortemente incoraggiato in quanto per esempio le credenziali potrebbero essere intercettate da qualche utente e riutilizzate per rubare le informazioni memorizzate sulla cloud.
Per risparmiare un po’ di soldi, viene mostrato come attivare SSL (HTTPS) e utilizzare un certificato self signed. Se desiderate è possibile avere un certificato SSL gratuito emesso da una autority riconosciuta per un anno, andando sul sito di startssl.com.

In questa guida si suppone che si abbia già installato Debian 7, i passaggi per Raspbian sono simili.

Dunque la prima cosa da fare è lanciare un aggiornamento delle fonti e un aggiornamento dei pacchetti del sistema operativo. Attenzione, perché quest’ultima operazione potrebbe comportare il riavvio di alcuni servizi.

# apt-get update && apt-get upgrade

Se usate Raspbian, tutti i comandi root vanno lanciati dall’utente pi, anteponendo al comando la parola sudo. Esempio
# apt-get update && apt-get upgrade diventa $ sudo apt-get update && apt-get upgrade

Proseguiamo nella guida; se necessario impostare la time zone (fuso orario) del proprio server col comando:
# dpkg-reconfigure tzdata

Installare i seguenti pacchetti, se non già presenti, e le dipendenze richieste:

# apt-get install nano bzip2 bsdutils dialog apache2 mysql-server libapache2-mod-php5 php5-gd php5-json php5-mysql php5-curl php5-intl php5-mcrypt php5-imagick

Creiamo la cartella che conterrà il certificato self-signed che permetterà di utilizzare le connessioni sicure per accedere a ownCloud.

# mkdir /etc/apache2/ssl/

Generiamo il certificato e la chiave. Notare che la chiave non viene salvata in una sottocartella di Apache.

# openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/cloud.key -out /etc/apache2/ssl/cloud.crt

Restringiamo l’accesso al certificato e alla chiave.

# chmod 600 /etc/apache2/ssl/cloud.crt
# chmod 600 /etc/ssl/private/cloud.key

A questo punto occorre creare un database in myssql (o MariaDB) e relativo utente, accedendo a mysql con la password di root di mysql (non quella root di debian)

$ mysql -u root -p

Aperta la console di MySql, digitare le seguenti righe avendo cura di sostituire 1-PmAaRgOiLcAa con una password che verrà usata da ownCloud per accedere al database.

grant all privileges on owncloud.* to ‘clouduser’@’localhost’ identified by ‘1-PmAaRgOiLcAa’;
flush privileges;
quit

Vediamo ora la configurazione di Apache.

Creare una sottocartella nella directory dedicata alle pagine web:

# mkdir -p /var/www/cloud

Scaricare il pacchetto di owncloud dal sito. Al momento è disponibile la versione 7.0.2 di owncloud.

$ wget http://download.owncloud.org/community/owncloud-7.0.2.tar.bz2

Scompattare il pacchetto nella cartella web:

$ tar xvfj owncloud-7.0.2.tar.bz2 –strip 1 -C /var/www/cloud/

il flag –strip 1 permette di rimuovere la prima cartella e di estrarre i file.

Assegnare il proprietario dei file di owncloud all’utente utilizzato da Apache:

# chown -R www-data:www-data /var/www/cloud

Per permettere che si utilizzi soltanto una connessione cifrata verso il sito è opportuno forzare l’uso di https anziché http. Per fare questo verranno inserite alcune direttive, in particolare le prime 5 righe, nel file di configurazione del virtual host.

Creare un file di nome cloud.ssl.cfg e copiare il testo riportato, ricordandosi di sostituire cloud.example.com con il nome del proprio dominio e webmaster@localhost con una casella di posta del proprio dominio (esempio postmaster).

# nano /etc/apache2/sites-available/cloud.ssl.cfg

<VirtualHost *:80>
        RewriteEngine on
        ReWriteCond %{SERVER_PORT} !^443$
        RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [NC,R,L]
</VirtualHost>
<IfModule mod_ssl.c>
<VirtualHost _default_:443>
        ServerAdmin webmaster@localhost
        ServerName cloud.example.com
        DocumentRoot /var/www/cloud
        <Directory /var/www/cloud/>
                Options FollowSymLinks
                AllowOverride All
        </Directory>

ErrorLog ${APACHE_LOG_DIR}/cloud-error.log
CustomLog ${APACHE_LOG_DIR}/cloud-ssl_access.log combined

SSLEngine on

SSLCertificateFile    /etc/apache2/ssl/cloud.crt
SSLCertificateKeyFile /etc/ssl/private/cloud.key

<FilesMatch “\.(cgi|shtml|phtml|php)$”>
                SSLOptions +StdEnvVars
        </FilesMatch>

BrowserMatch “MSIE [2-6]” \
                nokeepalive ssl-unclean-shutdown \
                downgrade-1.0 force-response-1.0

BrowserMatch “MSIE [17-9]” ssl-unclean-shutdown

</VirtualHost>
</IfModule>

Se si utilizza nano, per salvare il file premere CTRL+O, poi Invio e quindi CRTL+X per uscire.

Qualora abbiate ottenuto un certificato da una certification authority esterna, come startssl occorre prima copiare il file PEM che contiene la Chain in /etc/apache2/ssl/, poi aggiungere nel file cloud.ssl.cfg sotto SSLCertificateKeyFile la seguente riga:

SSLCertificateChainFile /etc/apache2/ssl/sub.class1.server.ca.pem

Ora è necessario attivare il virtual host appena creato:
# a2ensite cloud.ssl.cfg

In seguito attivare il modulo di rewrite, che serve per forzare l’uso di https invece di http, di Apache e poi il modulo SSL (per HTTPS).
# a2enmod rewrite
# a2enmod ssl

Riavviare Apache:
# service apache2 restart

Lato sistema operativo e applicativo dovrebbe essere tutto ok. Ora apriamo la pagina web di ownCloud.
Nel caso di questo tutorial è:

https://cloud.example.com

Dovrebbe aprirsi una pagina che chiede alcune informazioni: nome utente, password, utente del database, password del DB e il nome del database. Questi ultimi tre dati sono stati specificati col comando mysql “grant all privileges on owncloud.* to ‘clouduser’@’localhost’ identified by ‘1-PmAaRgOiLcAa’;”

Per cui in questo caso il nome dell’utente è clouduser, la password è 1-PmAaRgOiLcAa e il nome del DB è owncloud.

credenziali owncloud

 

Inserite queste informazioni si accederà alla propria cloud via interfaccia web.

Immagino che preferite utilizzare un programma come il client dropbox per accedere ai propri file sia su Android sia su PC.

Per installare il client su Windows è tutto molto semplice basta andare su https://owncloud.org/install/, sezione “Install Desktop Clients” e scaricare il file eseguibile per Windows XP, Vista, 7 e 8.

Cliccare sul file scaricato e quando appare la seguente finesta:

Desktop Client for owncloud

inserire  il dominio del vostro dispositivo sul quale avete installato owncloud, ad esempio https://cloud.example.com

Se si utilizza un certificato self-signed, potrebbe apparire un messaggio simile:

ssl connessione certificato

Bisogna attivare la casella “Fidati comunque di questo certificato”. Poi premere Ok.

 

cloud

Articolo successivo

VMware ESXi 6