[TUTO] Installation d’un serveur OwnCloud sous Debian 7
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 :
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 :
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!