Installation de OwnCloud sur un Raspberry Pi

Chap 1. Prise en main du RPi et installation de Mate sur un Raspbian
Chap 2. Installation de OwnCloud sur un Raspberry Pi
Chap 3. Sécuriser votre RPi
Chap 4. Accès au serveur Web server à partir de son nom de domaine
Chap 5. Connection SSH
Chap 6. Les fichiers journaux
Chap 7. Let’s Encrypt (LE)
Chap 8. Ajout d’un disque dur externe et migration de données
Chap 9. Suppression et ajout d’une interface graphique
Chap 10. Rappel sur les différentes étapes pour mettre en place un server dédié à Owncloud

Chap 2. Installation de OwnCloud sur un Raspberry Pi

I. Installation de OwnCloud

Pour l’installation de OwnCloud, il nous faut trois choses:

  • Un système de gestion de base de données (MariDB)
  • Un serveur PHP
  • Un serveur Web (Apache HTTP Server, ou tout simplement Apache).

Avant d’aller plus loin, je tiens à préciser que j’ai préféré MariaDB à MySQL, de la même manière que je préfère libreOffice à OpenOffice. Ensuite, mon choix d’installer un serveur Apache à la place d’un serveur Nginx, est plutôt par commodité.

Ce tutoriel se base sur un système Raspbian 8.0, avec pour but d’installer la version 8.x de Owncloud.
Deux méthodes au choix, mais je vais en favoriser une:

  • Installation à partir des dépots officielles de Debian, que je vais qualifier d’installation “automatique”
  • Installation de type manuelle, puisqu’il nous faut installer un par un, tout ce dont on aura besoin pour une utilisation fonctionnelle de notre OwnCloud.

La méthode manuelle est celle qui est vivement conseillée au vue de la correction des problèmes de sécurité, mais aussi pour une facilitée de migration du dossier OwnCloud vers un autre support, sans casser le système.

Je tiens à préciser qu’il ne faut pas appliquer ces deux méthodes à la fois. Soit vous faites une installation manuelle, soit une en automatique sinon, bonjour les dégats. Ci-dessous un example où je ne pouvais pas du tout accéder à mon serveur tant que j’ai pas résolu ce problème.

downgrading

Downgrading is not supported and is likely to cause unpredictable issues (from 8.2.1 to 8.1.5.2)
Traduction: Le downgrade n’est pas pris en charge et est susceptible de provoquer des problèmes imprévisibles (de 8.2.1 à 8.1.5.2)

Ceci est certainement du au fait que la version du dépôt dans Debian est moins récent.

Méthode automatique, installation à partir des dépots

Vérifions les informations concernant les paquets ownClouds disponibles

# apt-cache search owncloud
# apt-cache show owncloud

133804

Configurer un dépôt Debian pour ownCloud

1. Ajouter le dépôt ownCloud dans /etc/apt/sources.d/

Parmi toutes les méthodes, je préconise l’utilisation de la console, sans avoir à utiliser un éditeur de texte.

$ sudo su
# echo 'deb http://download.opensuse.org/repositories/isv:/ownCloud:/community/Debian_8.0/ /' >> /etc/apt/sources.list.d/owncloud.list

Une autre option, sans avoir à se connecter comme super utilisateur:

$ echo “deb http://download.opensuse.org/repositories/isv:/ownCloud:/community/Debian_8.0/ /” |sudo tee -a /etc/apt/sources.list.d/owncloud.list

2. Installation de la clef du dépôt officiel de Owncloud

$ cd /tmp
$ wget http://download.opensuse.org/repositories/isv:ownCloud:community/Debian_8.0/Release.key
$ sudo apt-key add - < Release.key

3. Installation de ownCloud

$ sudo apt-get update
$ sudo apt-get install owncloud

Le paquet Owncloud sera installé avec toutes ces dépendances (apache2, mysql, php-*, etc…).

Méthode manuelle, installation paquet par paquet

Pour plus de détails concernant l’installation des differents serveurs, je vous réfère au manuel de l’administrateur Owncloud.

Etape 1. Installation du serveur Web Apache

$ sudo apt-get install apache2

Dans un navigateur, taper l’adresse IP (ou http://localhost) de l’appareil sur lequel vous faites l’installation. Si vous voyez une page sur laquelle est affichée “It Works !”, alors le serveur Apache fonctionne correctement.

141525

Etape 2. Installation de MySQL/MariaDB

$ sudo apt-get install mariadb-server

Il vous sera demandé d’entrer un mot de passe pour l’utilisateur root de MariaDB, puis de le reconfirmer. Notez bien votre mot de passe puisqu’on n’en aura besoin pour plus tard.

142049

# service mysql status

Si le service n’apparaît pas actif, il faut le démarrer avec la commande,

# service mysql start

Etape 3. Installation de PHP5

Les paquets suivants sont les paquets principaux pour un bon fonctionnement de ownCloud. En rouge, quelques paquets qui peuvent être très utiles par la suite.

$ sudo apt-get install php5 php5-gd php5-mysql curl libcurl3-dev php5-curl php5-intl php5-mcrypt php5-imagick

Pour vérifier que le serveur PHP fonctionne correctement, il faut créer un fichier phpinfo.php dans le dossier /var/www/html, avec les informations suivantes:


Ne supprimer pas ce fichier, même si vous pensez que vous n’en avez plus besoin. Il nous sera toujours utile par la suite.

Dans un navigateur internet, entrer l’adresse localhost/phpinfo.php. Vous devriez avoir les informations concernant le serveur PHP.

php-version

Etape 4. Installation de Owncloud

Ici, on ne va pas parler d’installation à proprement parler, puisqu’il nous faut copier la version en tarball de Owncloud à partir du site officiel, que l’on va placer dans notre dossier /var/www/html.

Je ne vais pas surcharger ce blog d’étapes supplémentaires, pour une explication sur le comment et pourquoi placer le tarball dans un dossier autre que celui par défaut. Cependant, je tiens à préciser que c’est un excellent choix de le faire, en plus de modifier le nom du dossier owncloud par un autre, pour donner un peu plus de mal aux pirates qui essayent de subtiliser des informations de vos serveurs.

Récupérons la version stable actuelle disponible de owncloud (version 8.2.2), que l’on va placer dans le dossier /var/www/html.

$ sudo wget https://download.owncloud.org/community/owncloud-8.2.2.tar.bz2

$ sudo tar -xvf owncloud-8.2.2.tar.bz2
$ ls -l
total 28256
 drwxr-xr-x 13 nobody nogroup 4096 Dec 21 12:50 owncloud
 -rw-r--r-- 1 root root 28922075 Dec 21 13:00 owncloud-8.2.2.tar.bz2

Modifier les permissions pour le dossier owncloud, en changeant le propriétaire par l’utilisateur HTTP (www-data).

pi@raspberrypi:~ $ sudo chown -R www-data:www-data /var/www/html/owncloud/
pi@raspberrypi:~ $ ls -l /var/www/html
total 28260
 drwxr-xr-x 2 root root 4096 Dec 27 10:36 html
 drwxr-xr-x 15 www-data www-data 4096 Dec 27 10:54 owncloud
 -rw-r--r-- 1 root root 28922075 Dec 21 13:00 owncloud-8.2.2.tar.bz2
pi@raspberrypi:~ $

Maintenant qu’on a tout ce qu’il nous faut pour l’utilisation de Owncloud, il nous reste encore quelques paramètres à configurer.

II. Configuration des différents serveurs de OwnCloud

Configuration du serveur Web Apache

Nous allons nous intéresser particulièrement à deux fichiers de configuration du serveur Apache:
/etc/apache2/apache2.conf
/etc/apache2/sites-available/owncloud.conf
Le deuxième fichier n’existant pas, il va falloir le créer, et doit avoir les informations suivantes:

$ sudo vim /etc/apache2/sites-available/owncloud.conf
/var/www/html/owncloud/>
  Options +FollowSymlinks
  AllowOverride All

 
  Dav off
 

 SetEnv HOME /var/www/html/owncloud
 SetEnv HTTP_HOME /var/www/html/owncloud

Si vous n’avez pas installé owncloud dans /var/www/html/owncloud/, ou que vous avez modifié le nom du dossier, je vous propose de suivre les instructions proposées dans le manuel officiel pour les différentes configurations à prendre en compte.

Activer ensuite votre page Owncloud. Pour ce faire, on vous proposera généralement de créer directement un lien symbolique avec « ln -s ». Cependant, Debian a sa propre outil pour le faire.

$ sudo a2ensite owncloud.conf

De même, pour désactiver le site (vous n’en avez pas besoin dans l’immédiat)

$ sudo a2dissite owncloud.

Lors de votre accès à Owncloud à partir de votre navigateur internet, et que vous rencontrez un message du type: “.htaccess does not work”, c’est que .htaccess n’est pas activé.

095106

Je tiens à préciser qu’il est recommandé d’activer .htaccess pour bénéficier d’une meilleure sécurité pour votre serveur. Par défaut, .htaccess est désactivée sur les serveurs Apaches.
Pour le faire, remplacer ‘AllowOverride None’ par ‘AllowOverride All’ dans du fichier /etc/apache2/apache2.conf.

N’oubliez surtout pas d’effectuer des sauvegardes de vos fichiers de configuration avant toutes modifications.

$ sudo cp /etc/apache2/sites-available/owncloud.conf /etc/apache2/sites-available/owncloud.conf.bak

$ sudo cp -p /etc/apache2/apache2.conf /etc/apache2/apache2.conf.bak
$ vim /etc/apache2/apache2.conf
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted

Pour que ownCloud fonctionne correctement, il faut activer le module mod_rewrite.

$ sudo a2enmod rewrite

Il est aussi recommandé d’activer les différents modules ci-dessous.

$ sudo a2enmod headers
$ sudo a2enmod env
$ sudo a2enmod dir
$ sudo a2enmod mime

Les trois derniers modules devraient être déjà activés par défaut.

Configuration de php.ini

Ce qu’il faut savoir, vu qu’on veut utiliser ce serveur avec pour objectif d’échanger des fichiers, c’est qu’il faut modifier manuellement soit dans /var/www/html/owncloud/.htaccess du fichier fourni avec ownCloud, soit le fichier /etc/php5/apach2/php.ini, la taille maximale des fichiers à faire passer sur le server.
Pour savoir lequel des ses deux fichiers il faut modifier, ouvrez dans un navigateur localhost/phpinfo.php, puis retrouver la ligne “Loaded Configuration File”.

phpini

A partir de cette page, ou dans le fichier /etc/php5/apache2/php.ini, vous devriez retrouver les informations ci-dessous, que vous pouvez modifier à votre souhait. Les valeurs par défaut étant,

upload_max_filesize = 2M #Maximum allowed size for uploaded files
post_max_size = 8M #Must be greater than or equal to upload_max_filesize

N’oubliez pas d’effectuer une copie de ce fichier avant modification.

$ sudo cp /etc/php5/apache2/php.ini /etc/php5/apache2/php.ini.bak

$ sudo vim /etc/php5/apache2/php.ini

Vous pouvez augmenter cette limite, avec pour example une valeur de 2GB comme taille maximale de fichier à échanger, comme ci-dessous:

upload_max_filesize = 2G
post_max_size = 2G

Une fois les modifications effectuées, sauvegarder le fichier php.ini, puis vérifier de nouveaux que vous avez les bonnes informations dans localhost/phpinfo.ini après redémarrage du serveur Apache.

Si vous souhaitez savoir comment faire la même chose en modifiant le fichier .htaccess, je vous renvoie à ce lien.

Redémarrer apache2

$ sudo service apache2 restart

Création de la base de donnée MySQL/MariaDB

Commençons par modifier les options de sécurité de MySQL/MariaDB.

$ sudo mysql_secure_installation
Enter current pasword for root, taper le mot de passe root de MariaDB, qui devrait être le même que celui lors de l'installation du service
Change root password, taper “n” pour NON
Remove anonymous users, taper “y” pour OUI
Disallow root login remotely, taper “y” pour OUI
Remove test database and access to it, taper “y” pour OUI
Reload privilege tables no, taper “y” pour OUI

Entrez maintenant dans MySQL/MariaDB pour gérer la base de donnée.

$ sudo mysql -u root -p
Enter password: (taper le mot de passe root de MariaDB)

MariaDB [(none)]> CREATE USER 'ownclouduser'@'localhost' IDENTIFIED BY 'password';
MariaDB [(none)]> CREATE DATABASE IF NOT EXISTS owncloud;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON owncloud.* TO 'ownclouduser'@'localhost' IDENTIFIED BY 'password';
MariaDB [(none)]> quit

Les valeurs en couleurs peuvent être personnalisées.

Voici quelques commandes utiles pour MySQL/MariaDB:

Show Database Users: SELECT User,Host FROM mysql.user;
Show available Databases: SHOW DATABASES;
Show ownCloud Tables in Database: USE owncloud; SHOW TABLES;
Quit Database: quit

Petite précision, il n’y a rien à modifier dans ces commandes. Entrez les directement telle qu’elles.

III. Accès à OwnCloud

On est presqu’au bout du chemin. Il ne reste plus qu’à entrer les informations ci-dessous, lorsque vous rentrez dans la page localhost/owncloud (ou encore adresse_IP/owncloud).

Create an admin account
* Username: choisissez de préférence un nom, autre que « admin, administrateur, etc. »
* Password: choissisez un mot de passe complexe

Storage & database
* Data folder: ne pas modifier, sauf si owncloud est installé ailleurs
* Configure database: MySQL/MariaDB est la seule option disponible
* Database user: ownclouduser
* Database password: le mot de passe de ownclouduser
* Database name: owncloud
* Hostname: localhost

095652

Et pour finir, activons le SSL/TLS pour sécuriser les traffics entre notre serveur et les différents ordinateurs distants.

Pour ce faire, il suffit d’activer les deux modes ci-dessous:

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

Et voilà, nous pouvons avoir une connection sécurisée vers le serveur Owncloud.

110650   110738
Référence:
ownCloud 8.2 Server Administration Manual
Manual Installation on Linux
Installing ownCloud From the Command Line
Database Configuration