Un cloud personnel sur le Raspberry-PI : OwnCloud (2/2)

Suite du premier article sur la mise en place d’une solution de Cloud personnel. Nous allons voir ici comment configurer plus en détail Owncloud.

Dans ce billet nous verrons donc comment faire pour :

1. Utiliser un disque dur externe : Permet de gérer plus efficacement la solution. Vous pouvez ainsi transférer un plus grand nombre de médias.

2. Améliorer le temps de chargement : Méthode permettant de gagner de précieuses secondes lors de votre navigation sur owncloud.

3. Se connecter en HTTPS (Protocole SSL) : Méthode pour « forcer » la connexion en HTTPS à Owncloud. Ceci dans le but de sécuriser la connexion à Owncloud.

Utiliser un disque dur externe

l’intérêt de mettre en place une solution de « Cloud » et notamment de pouvoir stocker et d’accéder facilement à un nombre conséquent de données. Pour ce faire, il peut-être intéressant de couplés notre solution avec un disque dur externe.

J’ai réalisé cette partie avec un disque dur de 500Go. Cependant, il faut ajouter une autre source d’alimentation (HUB USB) pour alimenter à la fois le Raspberry-Pi et le disque dur.

Avant de commercer, formater votre disque dur au format ext3 ou ext4.

Comment formater un disque sous linux ?

On crée un répertoire qui va nous servir à « ouvrir » le disque :

sudo mkdir /media/owncloud

On branche maintenant le Disque dur au Raspberry-Pi, et on lance la commande suivante :

sudo blkid

Vous devriez alors avoir à l’écran les informations sur votre disque dur.

Garder alors précieusement les informations du disque. Soit dans mon cas :

/dev/sda1: UUID="1a91d804-2635-4a9c-bc57-d90f5ca0cac6" SEC_TYPE="ext2" TYPE="ext3"

On édite maintenant le fichiers qui spécifie à quel endroit et monté notre disque :

sudo nano /etc/fstab

Modifier le UUID selon votre cas :

proc            /proc           proc    defaults          0       0
/dev/mmcblk0p1  /boot           vfat    defaults          0       2
/dev/mmcblk0p2  /               ext4    defaults,noatime  0       1
UUID="96f64567-c459-4d3d-9f52-e6aabee544d2"     /media/owncloud         ext4    defaults    0       2
# a swapfile is not a swap partition, so no using swapon|off from here on, use  dphys-swapfile swap[on|off]  for that

Ensuite on redémarre notre petite machine et on vérifie si le disque se monte correctement :

sudo reboot

cd /media/owncloud
ls -al

Maintenant nous allons déplacer le chemin d’accès à Owncloud et créer quelques liens symboliques pour que l’on sache toujours où chercher les données.

On commence par stopper le service apache2 :

sudo service apache2 stop
[encart coul=’info’]Dans ce tutoriel le répertoire owncloud et présent dans Apache soit « /var/www/owncloud ». Vous pouvez si vous le souhaitez transférer le contenu directement à la racine.

Mais dans ce cas, n’oubliez pas de modifier les commandes suivantes en conséquence.

Commande pour déplacer le contenu à la racine :

cd /var/www/
sudo find owncloud -maxdepth 1 -mindepth 1 -exec mv {} . \;
sudo rmdir owncloud
[/encart]

Déplacement de « /var/www/owncloud/data » vers « /media/owncloud » et création d’un nouveau lien symbolique :

sudo mv /var/www/owncloud/data /media/owncloud/data
sudo ln -s /media/owncloud/data /var/www/owncloud/data

On applique la même modification au dossier « config » :

sudo mv /var/www/owncloud/config /media/owncloud/config
sudo ln -s /media/owncloud/config /var/www/owncloud/config

Puis on modifie les attribut des fichiers, et on relance Apache :

sudo chown -R www-data:www-data /media/owncloud
sudo service apache2 start

Toutes les données que vous transférez à partir d’Owncloud iront maintenant sur votre disque dur externe.

Améliorer le temps de chargement

Lors de l’utilisation d’owncloud, il se peut que le temps de chargement soit assez long… Notamment parce que lorsque l’on demande une page sur le serveur, le serveur doit compiler la page de la source de PHP et comme l’alimentation du RPi et basse, cela peut provoquer des ralentissements.

Ainsi pour améliorer le temps de chargement, nous avons la possibilité mettre en place un système de « cache » PHP.

Ceci permettant de passer de 20 secondes (lors de la première visualisation de la page) à 7-8 secondes par la suite !

Mémoire cache : mémoire qui enregistre temporairement des copies de données provenant d’une autre source de donnée, afin de diminuer le temps d’accès (en lecture ou en écriture).

En savoir plus…

Passons donc à l’installation et au redémarrage du service :

sudo apt-get install php-apc
sudo service apache2 restart

Évidemment, suite à l’installation la première fois que vous accéderez à une page cela risque d’être lent (20-25 secondes), mais lorsque vous reviendrez vous devriez remarquer une amélioration significative.

Se connecter en HTTPS (Protocole SSL)

Dans cette partie, nous allons améliorer la sécurisation de notre  accès à ownCloud à travers une couche SSL en transformant les échanges HTTP en une session sécurisée HTTPS.

HTTPS permet au visiteur de vérifier l’identité du site web auquel il accède, grâce à un certificat d’authentification émis par une autorité tierce, réputée fiable (utilisé pour des transactions bancaires).

En savoir plus : SSL, HTTPS.

Pour commencer, on va modifier le fichier « virtual hosts » d’apache.

On se dirige alors dans le répertoire suivant :

cd /etc/apache2/sites-available/

On accède au fichier, puis dans la section « Directory », on modifie le paramètre « AllowOverride » comme ci-dessous :

sudo nano default-ssl

#on modifie la ligne :
AllowOverride None
#Par :
AllowOverride All

AllowOverride :

  • Lorsque cette directive est définie à « None », les fichiers « .htaccess » sont totalement ignorés. Dans ce cas, le serveur n’essaiera même pas de lire les fichiers « .htaccess » du système de fichiers.
  • Lorsque cette directive est définie à « All », toute directive valable dans le « Contexte » .htaccess sera autorisée dans les fichiers « .htaccess ».

En savoir plus…

Avant de fermer le fichier, vérifier que vous disposez d’une ligne avec « SSLEngine on », et que vos certificats SSLCertificateFile et SSLCertificateKeyFile sont bien à l’emplacement noté.

On active ensuite les modules et on relance le service Apache :

sudo a2enmod ssl
sudo a2ensite default-ssl
sudo service apache2 reload

Maintenant, on se dirige vers notre navigateur web et on se connecte à Owncloud en HTTPS > https:://@IP_du_RPi/owncloud.

On passe ensuite par le menu d’administration comme l’image suivante :

Admin > Administration

Admin > Administration

Et on coche la casse Enforce HTTPS :

Sécurité > Forcer HTTPS

Sécurité > Forcer HTTPS

Pour terminer, on vérifie que notre modification et valide.

Pour se faire, on se déconnecte et on tente de se reconnecter en HTTP > http:://@IP_du_RPi/owncloud.

Si tout se passe bien, l’accès devrait passer de HTTP en HTTPS !

Maintenant toutes vos communications entre les machines de client et votre serveur seront cryptées. 🙂

Si vous n’avez pas déjà de certificat SSL, vous pouvez vouloir produire votre propre et le faire signer par CACERT gratuitement.

En savoir plus…

Conclusion partie (2/2)

J’espère que ce tutoriel vous aura permet de mieux appréhender cette solution de Cloud personnel.

N’hésitez pas à me faire part de vos retours d’expérience sur la solution ou d’éventuel problème pour la mettre en œuvre.

A Très vite !

Ce tutoriel est valide à 100% avec la version 7 de owncloud. Cependant il est possible que certains paramètres soient à revoir selon les versions (précédentes ou futures).


Sources : Owncloud, Owncloud.forum, Linux-france, Ubuntu-fr.org, coagul, samhobbs.

Partager l'article >Share on FacebookShare on Google+Tweet about this on TwitterShare on LinkedInEmail this to someone

7 Comments

  • Edwin

    Reply Reply 14 mai 2015

    Bonjour,

    Le tutoriel est génial, ca marche très bien mais dès que je me déconnecte de owncloud, je ne peux plus me reconnecter!
    J’ai le message suivant:

    « Le répertoire (/var/www/owncloud/data) est lisible par les autres utilisateurs
    Veuillez changer les permissions du répertoire en mode 0770 afin que son contenu puisse être listé par les autres utilisateurs. »

    Est que vous avez une idée de la manière de résoudre ce pb?
    Merci!!

    • Régis

      Régis

      Reply Reply 15 mai 2015

      Bonjour Edwin,

      Est-ce que tu as essayé de changer les droits du répertoire comme le précise le message ?
      Tu as directement ce message en essayant d’accéder à la page de login ou c’est lorsque tu te connecte ?
      Bon courage et tiens moi au courant de l’évolution! 🙂

  • korniac

    Reply Reply 21 mai 2015

    Bonjour, j’ai installé ceci, puis j’ai préféré utiliser samba pour les données sur mon disque dur externe, mais lorsque j’écris sur le dossier (du DDE), la mémoire du raspberry pi (carte sd) se réduit en même temps, et il y a donc écriture sur la carte… Une idée? merci

  • Le Tchoa

    Reply Reply 2 octobre 2015

    Bonjour,
    j’ai suivi le tuto à la lettre très bien.
    en local owncloud se lance tres bien.

    mais avec mon adresse ippublic j’ai le message it work
    ….
    owncloud the web server software is running but no content has been added, yet

    je suis novice, mais je pense qu’un lien n’a pas été fait.

    pouvez vous m’aider
    Merci

  • Jules

    Reply Reply 20 octobre 2016

    Bonjour
    lors de la commande
    sudo find owncloud -maxdepth 1 -mindepth 1 -exec mv {} . \;

    il me dit qu’il ne peut pas deplacer les fichier car les dossiers ne sont pas vide
    je fais quoi SOS
    Jules

  • Thibaut

    Reply Reply 21 décembre 2016

    Bonjour,

    Pouvez-vous me dire comment faire avec php pour diminuer les temps de chargement ?

    Cordialement

  • Pierre

    Reply Reply 20 mars 2017

    Bonjour,

    Je viens d’avoir quelque chose de vraiment bizarre. Je me suis déconnecté pour utiliser un deuxième compte (jusque la tout est normal) mais à la connexion, impossible de me reconnecter sur les 2 comptes.

    J’ai comme erreur depuis mon fichier error.log dans mon serveur apache :

    PHP Warning : Unknown : POST Content-Lenght of 12 bytes exceeds the limit of 10 bytes in Unknown on line 0.

    Ce que je ne comprend pas c’est que la version pc/smartphone marchent, c’est uniquement via le navigateur que rien ne marche …

Leave A Response

* Denotes Required Field