[TUTO] Installation d’un serveur OwnCloud sous Debian 7

owncloud-logo

Quand on veut se créer son propre Cloud, la solution OwnCloud nous est souvent présentée. Je vous ai déjà parlé du produit mais celui-ci en version 6 a particulièrement évolué. De façon très positive d’ailleurs. Son installation aussi a évoluée, d’où le présent tuto.

Pour cette documentation, j’utilise OwnCloud 6 sur une Debian 7 stable installée (image netinstall i386) sur une VM. Si vous avez besoin d’aide pour la netinstall, vous pouvez consulter ce tuto, ou celui-ci (en PDF), ou encore demander de l’aide auprès d’un parrain-linux.

A noter que je n’aborde ici que la partie DATA qui moi m’intéresse. OwnCloud gère aussi le CalDav et une multitude d’options qui nécessiteront sans doute une configuration supplémentaire non abordée ici. La doc se veut simple est abordable par les moins initiés mais si je suis sûr que Cyrille trouvera à y redire.

Configuration de la VM :

Pour un fonctionnement optimum de OwnCloud, la machine virtuelle qui gère le serveur est paramétrée comme suit :

  • 2Go de RAM
  • 2 disques dur virtuels (40Go pour le système – 100Go pour la DATA)
  • 2 processeurs virtuels

Installation et configuration de Debian

Après installation classique d’une Debian 7 (en veillant à installer les outils système et serveur SSH pour pouvoir accéder à la machine à distance), j’effectue toutes les mises à jour. Pour configurer ma machine, je m’y connecte en SSH avec le soft Putty.

En terme d’adressage,on pensera à utiliser une adresse ip statique.  Par exemple, pour mon serveur, j’utilise cette configuration (fichier interfaces éditable avec la commande nano /etc/network/interfaces) :

# The primary network interface
allow-hotplug eth0
iface eth0 inet static
address 192.168.1.235
netmask 255.255.0.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1
# dns-* options are implemented by the resolvconf package, if installed
dns-nameservers 208.67.222.222

Maintenant, on va installer les dépendances de OwnCloud:

Apt-get install apache2 php5-curl php5-sqlite libapache2-mod-php5

 

Ma VM utilisant 2 disques, je crée la deuxième partition qui hébergera les données users sur ce disque. Tout d’abord, on l’identifie :

fdisk –l

 

Dans mon cas, le disque est /dev/sdb. Il est sans partition, on va donc en créer une :

fdisk /dev/sdb

Commande (m pour l’aide): n

Type de partition :

p   primaire (0 primaire(s), 0 étendue(s), 4 libre(s))

e   étendue

Sélection (p par défaut) : p

Numéro de partition (1-4, par défaut 1): 1

Premier secteur (2048-209715199, par défaut 2048):

Utilisation de la valeur par défaut 2048

Dernier secteur, +secteurs or +taille{K,M,G} (2048-209715199, par défaut 209715199):

Utilisation de la valeur par défaut 209715199

Commande (m pour l’aide): w

La table de partitions a été altérée.

 

La partition créée est maintenant visible avec fdisk –l :

Périphérique Amorce  Début        Fin      Blocs     Id  Système

/dev/sdb1            2048   209715199   104856576   83  Linux

 

Il ne reste plus qu’à la formater :

mkfs.ext3 /dev/sdb1

 

Enfin, on va paramétrer la fstab pour que le disque soit monté au boot :

mkdir /mnt/data

nano /etc/fstab

On rajoute la ligne :

/dev/sdb1       /mnt/data        ext4    errors=remount-ro 0       1

 

Après avoir monté ce disque (mount-a), on y crée un dossier ownclouddata et on lui donne les bons droits :

mkdir /mnt/data/ownclouddata

chown www-data:www-data /mnt/data/ownclouddata

 

Maintenant, on modifie le  fichier sites-avaible/default (nano /etc/apache2/sites-available/default) pour y ajouter :

<Directory /mnt/data/ownclouddata>

Options Indexes FollowSymLinks MultiViews

AllowOverride All

Order allow,deny

allow from all

</Directory>

 

Enfin, on active le  module rewrite de Apache et les sites available:

a2enmod rewrite

a2ensite

Installation de OwnCloud

OwnCloud peut s’installer depuis git ou via un depo, méthode qu’on utilisera ici. On va dans un premier temps ajouter le dépôt OwnCloud puis installer les paquets :

echo ‘deb http://download.opensuse.org/repositories/isv:/ownCloud:/community/Debian_7.0/ /’ >> /etc/apt/sources.list.d/owncloud.list

wget http://download.opensuse.org/repositories/isv:ownCloud:community/Debian_7.0/Release.key

apt-key add – < Release.key 

apt-get update

apt-get install owncloud

 

Maintenant, on va pouvoir se connecter en http sur son serveur (http://192.168.1.235/owncloud dans notre cas). La WebInstall de OwnCloud peut alors commencer. Dans mon cas, j’ai choisi la facilité et reste sur une base de données SQLite. Il est tout à fait envisageable d’opter pour du MySQL ou Postgre SQL, mais dans ce cas il faudra l’installer sur le serveur et indiquer un compte SQL durant la WebInstall.

On veillera à bien faire pointer son installation OwnCloud sur son dossier owncloudata :

webinstall

Il se peut que comme moi au terme de cette installation, vous ayez une erreur relative au WebDav, elle ne pose aucunement problème pour le bon fonctionnement de OwnCloud, l’erreur renvoie sur le Wiki OwnCloud qui comme le WIKI de 80% des projets open source est particulièrement indigeste, loin d’être clair et incapable d’être chronologique dans ses informations (oui, je troll)…

Augmentation des capacités en upload

Pour pouvoir uploader des fichiers de plus de 2Mo, il est nécessaire d’augmenter les capacités d’upload d’Apache. On modifie le fichier php.ini (nano /etc/php5/apache2/php.ini) et on y recherche les valeurs post_max_size et upload_max_filesize que l’on définira à 200M (200Mo dans mon cas suffit mais vous pouvez indiquer plus si vous le voulez).

L’upload de gros fichier étant plus long, on définit max_execution_time à 600 (voir plus selon votre connexion).

L’application des paramètres se faite en redémarrant Apache (/etc/init.d/apache2 restart).

 

Activation de l’HTTPS (SSL)

Pour accéder à OwnCloud en https, notamment si vous désirez y accéder depuis l’extérieur sans balancer votre mot  de passe en clair dans la nature, on modifie du fichier sites-avaible/default-ssl (nano /etc/apache2/sites-available/default-ssl) pour y ajouter  :

<Directory /mnt/data/ownclouddata>

Options Indexes FollowSymLinks MultiViews

AllowOverride All

Order allow,deny

allow from all

</Directory>

 

Puis on active le  ssl :

a2enmod ssl

 

Enfin, dans les pages d’admin de OwnCloud, on force le SSL :

https

Voila, vous avez maintenant un magnifique Cloud opérationnel et accessible en https. Pensez maintenant à créer une règle de NAT sur votre routeur/box pour y accéder de l’extérieur et pensez à y ajouter une protection via Fail to Ban (cf. cet article à ce sujet).

Pour ma part, je me connecte via les clients OwnCloud pour Windows et Linux. J’attends avec impatience la sortie d’un client Windows Phone (besoin d’un collègue) et cherche à compiler l’apk Android depuis les sources (je ne veux pas inscrire ma carte bancaire sur mon compte gmail, ma fille joue trop souvent avec ma tablette et les jeux pour gamin sont bourré de liens vers du contenu payant). Si d’ailleurs quelqu’un pourrait m’orienter sur la méthode à suivre pour cette compilation, ce serait bien sympa!

Vus : 3610
Publié par Geek de France : 203