Owncloud nécessite un gestionnaire de base de données pour enregistrer les données, et peut utiliser SQLite ou MySQL/MariaDB.

AVERTISSEMENT : le manuel de l'utilisateur de Owncloud avertit : « Comme SQLite ne gère pas bien de grands jeux de données ou de grands nombres d'utilisateurs, nous recommandons de ne l'utiliser que pour un seul utilisateur ou pour des configurations de test ». De plus, si vous utilisez quand même SQLite, vous verrez que dans son compte administrateur, owncloud affichera « SQLite est actuellement utilisé comme gestionnaire de base de données. Pour des installations plus volumineuses, nous vous conseillons d'utiliser un autre gestionnaire de base de données. L'utilisation de SQLite est particulièrement déconseillée si vous utilisez le client de bureau pour synchroniser vos données. »

Bon, maintenant que vous êtes averti, faites le bon choix en fonction de votre besoin ! Les deux possibilités SQLite ou MySQL/MariaDB sont détaillées plus bas.

Pour mémoire, je rappelle que l'on a configuré le Raspberry comme suit (mais cela peut être différent chez vous) :
mot de passe de l'utilisateur pi : « raspberry », ou de préférence votre propre mot de passe
nom de l'hôte : framboise
adresse réseau : 192.168.1.0
adresse passerelle : 192.168.1.1
adresse IP : 192.168.1.5
port SSH : 5544

1 Installation de owncloud avec SQlite, SI CELA CORRESPOND BIEN À VOTRE BESOIN (voir l'avertissement plus haut)

Voir aussi le site http://unixetc.co.uk/2015/02/21/simple-owncloud-installation-on-raspberry-pi-2/

Si vous avez choisi SQLite comme gestionnaire de base de données, c'est que vous n'aurez qu'un seul utilisateur, que vous n'aurez pas de grands jeux de données, que vous n'utiliserez pas de client de bureau pour synchroniser vos données, et enfin que vous n'utiliserez que des configurations de test.

Si vous satisfaites à tous ces cas à la fois, continuez ici :

$ sudo apt-get install php5 php5-gd sqlite php5-sqlite php5-curl

Pour mémoire, au cas où vous voudriez désinstaller SQLite plus tard : les paquets supplémentaires suivants seront installés :

 bsd-mailx exim4 exim4-base exim4-config exim4-daemon-light fonts-font-awesome fonts-liberation fonts-linuxlibertine fonts-lohit-deva
 fonts-wqy-microhei libao-common libao4 libapache2-mod-php5 libjs-chosen libjs-dojo-core libjs-dojo-dijit libjs-dojo-dojox libjs-jcrop
 libjs-jquery-metadata libjs-jquery-minicolors libjs-jquery-mousewheel libjs-jquery-tablesorter libjs-jquery-timepicker libjs-jquery-ui
 libjs-mediaelement libjs-pdf libjs-sphinxdoc libjs-twitter-bootstrap libjs-underscore libmcrypt4 libmysqlclient18 libonig2
 libperl4-corelibs-perl libphp-phpmailer libqdbm14 lsof mysql-common owncloud-doc pdf.js-common php-assetic php-aws-sdk
 php-crypt-blowfish php-doctrine-annotations php-doctrine-cache php-doctrine-collections php-doctrine-common php-doctrine-dbal
 php-doctrine-inflector php-doctrine-lexer php-dropbox php-getid3 php-google-api-php-client php-guzzle php-opencloud php-opencloud-doc
 php-patchwork-utf8 php-pear php-pimple php-sabre-dav php-sabre-vobject php-seclib php-symfony-class-loader php-symfony-classloader
 php-symfony-console php-symfony-event-dispatcher php-symfony-eventdispatcher php-symfony-process php-symfony-routing php5 php5-apcu
 php5-cli php5-common php5-curl php5-gd php5-intl php5-json php5-ldap php5-mcrypt php5-mysql php5-oauth php5-readline smbclient
 vorbis-tools zendframework

Redémarrez apache2 :
$ sudo service apache2 restart

1.1 Vérification de fonctionnement de php5 :

Renommez le fichier /var/www/html/index.html ( par exemple en index.html.origin ) ; ainsi, vous ne le perdez pas :
$ sudo mv /var/www/html/index.html /var/www/html/index.html.origin

Créez un fichier « index.php » dans ce répertoire :
$ sudo nano /var/www/html/index.php
et copiez-y la ligne :
<?php phpinfo(); ?>
puis enregistrez ce fichier. Notez qu'il pourrait vous servir plus tard pour tester le site par défaut, à condition de le rétablir (lien de /etc/apache2/sites-enabled/ vers /etc/apache2/sites-available/000-default.conf, ce fichier contient la directive « DocumentRoot /var/www/html »), c'est à dire de faire l'inverse de ce qui a été décrit dans la section 4 « Déplacement des hôtes virtuels dans /home » du billet « Installation d'un serveur Apache de base avec hôtes virtuels localisés dans /home sous Raspberry Pi 2 ».

Redémarrez le serveur :
$ sudo service apache2 restart

Pour une vérification sur votre PC par votre réseau local, dans son navigateur, entrez l'URL :
http://192.168.1.5/

Pour une vérification sur votre Raspberry en local, dans son navigateur, entrez l'URL :
http://localhost

La page d'accueil de php5 s'affiche, montrant un tableau titré « PHP Version xxx » : php5 fonctionne correctement.

Attention : il se peut qu'une autre page s'affiche à la place : c'est que l'adresse URL a déjà été visitée et avait un autre contenu, et elle a été enregistrée dans le cache du navigateur, qui la rappellera à chaque fois que cette adresse sera demandée. Pour ignorer le cache, tapez CTRL-F5 sur Firefox (pour les autres navigateurs, consultez leur documentation).

1.2 Vérification du fonctionnement de php5 avec votre hôte monsitejl.fr :

Copiez le fichier index.php dans votre hôte monsitejl.fr :
$ sudo cp /var/www/html/index.php /home/zaba/monsitejl.fr/
puis changez ses permissions :
$ sudo chown www-data:www-data /home/zaba/monsitejl.fr/index.php

Renommez le fichier index.php qui se trouve encore dans /var/www/html/ ; ainsi, vous ne le perdez pas :
$ sudo mv /var/www/html/index.php /var/www/html/index.php.origin

Renommez aussi le fichier /home/zaba/monsitejl.fr/index.html ( par exemple en index.html.origin ) ; ainsi, vous ne le perdez pas :
$ sudo mv /home/zaba/monsitejl.fr/index.html /home/zaba/monsitejl.fr/index.html.origin

Pour une vérification sur votre PC par votre réseau local, dans son navigateur, entrez l'URL :
http://monsitejl.fr

Pour une vérification sur votre Raspberry en local, dans son navigateur, entrez l'URL :
http://monsitejl.fr

La page d'accueil de php5 s'affiche, montrant un tableau titré « PHP Version xxx » : php5 fonctionne correctement sur votre hôte virtuel.

Attention : si une autre page s'affiche à la place, tapez CTRL-F5 sur Firefox pour ignorer le cache (pour les autres navigateurs, consultez leur documentation).

Renommez le fichier index.php ; ainsi, vous ne le perdez pas :
$ sudo mv /home/zaba/monsitejl.fr/index.php /home/zaba/monsitejl.fr/index.php.origin

2 Installation de MySQL, SI CELA CORRESPOND BIEN À VOTRE BESOIN (voir l'avertissement plus haut)

Voir le site http://raspbian-france.fr/owncloud-cloud-raspberry-pi/

Installez mySQL par :
$ sudo apt-get install mysql-server

Pour mémoire, les nouveaux paquets suivants seront installés :
libaio1 libdbd-mysql-perl libdbi-perl libhtml-template-perl libterm-readkey-perl mysql-client-5.5 mysql-server mysql-server-5.5 mysql-server-core-5.5

L'installeur vous demande alors un mot de passe pour l'administrateur de MySQL. Choisissez-le solide !

2.1 Configuration de MySQL pour owncloud

Voir ( http://raspbian-france.fr/owncloud-cloud-raspberry-pi/ )

Pour des raisons de sécurité, nous devons créer un utilisateur dédié à OwnCloud, qui ne pourra utiliser que la base de OwnCloud.

Tout d’abord, connectez vous à MySQL en mode administrateur par la commande suivante :
$ mysql -u root -p<votre_password>
<votre_password> étant celui de l’utilisateur « root » de MySQL, que vous venez de définir ; vous ne devez pas mettre d’espace entre l’argument « -p » et le mot de passe.

Vous obtenez un message de bienvenue, le numéro de version du serveur MySQL, et l'invite mysql>.

2.2 Création de la base de données pour owncloud :

Maintenant que nous sommes connectés à MysQL, nous allons créer la base de données « classeur » avec la commande ci-dessous :

mysql> create database classeur;
qui retourne :
Query OK, 1 row affected (0.00 sec)

Nous avons choisis de nommer la base du même nom que l’application afin vous ne se soyez pas perdu, mais vous pouvez la nommer comme bon vous semble (dans ce cas, vous devrez adapter la suite du tutoriel à votre choix).

2.3 Création de l’utilisateur

Nous allons maintenant ajouter un utilisateur et lui donner tous les droits sur la base de données « classeur ». Pour cela, il vous suffit d’exécuter la commande suivante :

mysql> GRANT ALL PRIVILEGES ON owncloud.* TO <le_nom_du_user>@localhost IDENTIFIED BY '<le_password_du_user>';

Détaillons les arguments :

  • « owncloud » correspond à la base de données que vous venez de créer ;
  • la partie « .* » permet de préciser que nous souhaitons donner l’accès à toutes les tables contenues dans la base owncloud;
  • <le_nom_du_user> doit-être remplacé par le nom que vous souhaitez donner à l’utilisateur que nous allons créer ;
  • <le_password_du_user> est le mot de passe que vous souhaitez donner à ce nouvel utilisateur.

Nous vous conseillons de choisir un utilisateur au nom clair (« Base_owncloud » par exemple) avec un password complexe !

Ces informations nous serons demandées lors de notre première connexion au site owncloud.

La configuration de MySQL est terminée, vous pouvez quitter MySQL avec un simple CTR-D ou la commande « exit » :
mysql> exit

3 Premier démarrage de owncloud avec MySQL

Pour démarrer owncloud, sur votre PC par votre réseau local ou sur votre Raspberry en local, dans le navigateur, entrez l'URL :
http://192.168.1.31/owncloud

La page de connexion et de création de l'administrateur s'affiche, avec un nuage blanc sur fond bleu foncé.

Dans les deux premiers champs, créez un compte administrateur en entrant un identifiant (par exemple owncloud_admin) et son mot de passe. Owncloud va être exposé sur le web, donc prenez les précautions nécessaires : il faut que ce soit un mot de passe fort.

La ligne juste en-dessous indique alors si le mot de passe est fort (Strong password).

Le champ « Répertoire des données » est pré-rempli par « /usr/share/owncloud/data », c'est le répertoire par défaut où seront stockés les fichiers. Ce répertoire a d'office les droits correctement configurés (utilisateur www-data et groupe www-data). Si vous entrez un autre répertoire que celui par défaut, assurez vous d'abord qu'il est bien créé, et vérifiez que son utilisateur et son groupe sont bien « www-data » avec les permissions en lecture et en écriture par la commande :
$ sudo ls -l /le_chemin_complet_vers_data

En-dessous, pour « Configurer la base de données » est indiqué « MySQL/MariaDB disponible uniquement.. ». Il n'y a pas de choix possible, puisque aucune autre base de données n'est installée. De ce fait, vous avez quatre champs à remplir en-dessous :

  • Utilisateur pour la base de données : c'est le nom du compte que vous avez créé dans la section INSTALLATION DE MySQL-Création de l’utilisateur METTRE LE LIEN ;
  • Mot de passe de la base de données : c'est celui du compte ci-dessus ;
  • Nom de la base de données : c'est le nom que vous avez choisi dans la section INSTALLATION DE MySQL-create database METTRE LE LIEN ;
  • Adresse de la base : pour l'instant, ce sera localhost, car la base est bien sur le Raspberry.

Quand ces champs sont remplis, cliquez sur « Terminer l’installation ». Après quelques instants ( si une fenêtre « Bienvenue sur Owncloud » s'affiche, fermez-la avec sa croix dans le coin haut et à droite ), la page de Owncloud s'affiche, avec « Fichiers » dans le bandeau noir en haut. En dessous sont affichés quelques répertoires et fichiers. Votre cloud est opérationnel.

Pour l'instant, vous n'utilisez pas d'hôte virtuel, car l'installation dans Debian n'en a pas besoin : owncloud est installé, comme tout autre paquet Debian, dans toute l'arborescence du système de fichiers. Par contre, nous modifierons plus loin l'emplacement du répertoire data, pour le mettre dans le répertoire /home. Actuellement, il se trouve, à travers un lien dans /usr/share/owncloud, dans /var/lib/owncloud/.

Pour information, le fichier de configuration de owncloud dans apache2 est /etc/apache2/conf-available/owncloud.conf

4 Premiers essais de owncloud (sous administrateur) :

Téléchargez un fichier : cliquez sur le bouton carré contenant une flèche, en haut de la page. Un gestionnaire de fichiers s'affiche ; sélectionnez un fichier puis cliquez sur « Ouvrir » ; le fichier apparaît dans la liste des fichiers après quelques secondes.

Supprimez ce fichier : placez le pointeur de souris sur l'icône du fichier, une petite case y apparaît ; cochez cette case, la poubelle « Supprimer » apparaît en haut et à droite de la page ; cliquez dessus, le fichier disparaît. En fait il se trouve encore accessible dans owncloud, dans la page « Fichiers supprimés » en bas et à gauche de la fenêtre. Pour le supprimer définitivement de owncloud, réitérez-y la même opération.

Si le fichier excède la taille limite ( 512 Mo pour cette version de owncloud ), il ne sera pas téléchargé ; un message d'erreur sur fond jaune apparaîtra en haut de la page : « La taille totale du fichier xxx MB excède la taille maximale d'envoi ». Vous pouvez ajuster cette limite en changeant la valeur des paramètres « php_value upload_max_filesize » et « php_value post_max_size » dans le fichier /usr/share/owncloud/.htaccess (pour la présente version). Il se peut que leur emplacement change avec les versions futures, aussi consultez le Manuel de l'Administrateur de Owncloud.

Vous pouvez modifier les valeurs de ces deux paramètres par :
$ sudo nano /usr/share/owncloud/.htaccess

Redémarrez apache2 par :
$ sudo service apache2 restart

Puis déconnectez-vous de owncloud et reconnectez-vous. Rechargez la page owncloud du navigateur. Vous pouvez faire de nouveaux essais pour vérifier que la nouvelle limite a bien changé.

5 Déplacement des données de owncloud dans /home

Par défaut, le répertoire /usr/share/owncloud/data pointe par un lien symbolique vers /var/lib/owncloud/data ; là se trouvent les répertoires qui portent le nom des comptes utilisateurs dans owncloud, par exemple le répertoire de l'administrateur, et dans lesquels se trouvent les données de ces comptes. Il ne faut pas essayer de changer le lien symbolique, car le répertoire des données de owncloud est défini simplement par le paramètre « datadirectory » dans le fichier /etc/owncloud/config.php.

Pour changer le répertoire par défaut, créez un répertoire dans votre /home :
$ sudo mkdir /home/votre_chemin/owncloud
$ sudo mkdir /home/votre_chemin/owncloud/data
et modifiez les permissions :
$ sudo chown -R www-data:www-data /home/votre_chemin/owncloud

Puis modifiez le paramètre « datadirectory » par :
$ sudo nano /etc/owncloud/config.php
et, dans la ligne « datadirectory », remplacez
/usr/share/owncloud/data
par :
/home/votre_chemin/owncloud/data

Enfin déplacez toutes les données du répertoire par défaut vers votre répertoire de données dans /home par :
sudo mv /var/lib/owncloud/data /home/votre_chemin/owncloud/data

Notez que le fichier index.html et les fichiers cachés .htaccess et .ocdata doivent aussi être déplacés ( entrez la commande sudo ls -al pour voir aussi les fichiers cachés).

Vérifiez que l'utilisateur et le groupe sont bien tous « www-data » par :
$ sudo ls -al /home/votre_chemin/owncloud/data
sinon, entrez :
$ sudo chown -R www-data:www-data /home/votre_chemin/owncloud/data

Puis redémarrez le serveur :
$ sudo service apache2 restart

Vous pouvez vous assurer que tout s'est bien passé en reprenant les essais de la section 4 Premiers essais de owncloud (sous administrateur) ci-dessus.

Voilà, l'installation de owncloud est terminée, et vous disposez maintenant d'un serveur de fichiers entièrement fonctionnel et bien à vous ! D'autres fonctionnalités peuvent être ajoutées, par exemple la synchronisation avec votre PC ou avec votre smartphone, que nous verrons dans le tutoriel suivant Owncloud sur Raspberry PI 2 : synchronisation avec un PC et connexion par Webdav

ATTENTION : à ce stade de l'installation, ce serveur Owncloud n'est pas encore sécurisé, ainsi que le serveur Apache. IL NE DOIT DONC ABSOLUMENT PAS ÊTRE VISIBLE DEPUIS L'INTERNET. Pour cela, vérifiez que le routeur de votre réseau local ne contient AUCUNE règle de translation d'adresse (NAT) relative à l'adresse de votre Raspberry dans votre réseau local (ici, 192.168.1.5, à moins que vous en ayez défini une autre).

Ceci vérifié, il n'est pas nécessaire de configurer les options de la page « Administration » de votre owncloud , mais vous pouvez en prendre connaissance : cliquez, dans le bandeau noir en haut et à droite, sur dans le menu personnel de l'utilisateur, puis sélectionnez « Administration ».

La sécurisation correcte des serveurs Apache et Owncloud sera traitée dans un billet futur. En attendant, vous pouvez toujours utiliser Owncloud, en interne dans votre réseau local, pour sauvegarder vos données.