OwnCloud Installation

De EjnTricks

Cet article présente l'installation de OwnCloud sur une machine Ubuntu et en mode autonome.


Hand-icon.png Votre avis

Nobody voted on this yet

 You need to enable JavaScript to vote


Icon-database.png Configuration MySql

Command-icon.png Mise en place instance

Dependencies.gif Pré requis

L'installation d'OwnCloud s'effectue uniquement en déployant le paquet officiel et l'exposer sous un serveur Web comme Apache, nécessitant l'activation de plusieurs modules requis.

  • ctype : vient avec libapache2-mod-php5
  • dom : vient avec ibapache2-mod-php5
  • GD : php5-gd
  • iconv : vient avec libapache2-mod-php5
  • JSON : php5-json
  • libxml : vient avec libapache2-mod-php5
  • mb multibyte : vient avec libapache2-mod-php5
  • posix : vient avec libapache2-mod-php5
  • SimpleXML : vient avec libapache2-mod-php5
  • XMLWriter : vient avec libapache2-mod-php5
  • zip : vient avec libapache2-mod-php5
  • zlib : vient avec libapache2-mod-php5

Mais également des modules recommandés.

  • module curl : php5-curl
  • fileinfo : disponible par défaut dans la version de php installée.
  • bz2 : disponible par défaut.
  • intl : php5-intl
  • mcrypt : php5-mcrypt
  • openssl : disponible par défaut.

Comme indiqué sur la documentation officielle, les paquets sont installés avec apt-get.

#sudo apt-get install php5-gd php5-json php5-mysql php5-curl php5-intl php5-mcrypt php5-imagick

Warning-icon.png Upgrade Ubuntu

Attention, lors de la mise à jour d'Ubuntu 16.04, la version de php a été modifiée. Il est nécessaire de réinstaller les différents modules des pré requis.

#sudo apt-get install php-gd php-json php-mysql php-curl php-intl php-mcrypt php-imagick

Folder-icon.png Initialisation

L'application va être installée sous /var/opt/ avec une organisation qui doit permettre de faciliter les montées de version. Un répertoire commun est mis en place /var/opt/owncloud dans lequel les binaires sont installés.

#sudo mkdir -p /var/opt/owncloud
#sudo chown www-data:www-data /var/opt/owncloud

Download-icon.png Téléchargement

L'application est téléchargée dans le répertoire /var/opt/owncloud.

System-Install-icon.png Installation

Attention, l'archive téléchargée est au format bz2. Elle est décompressée dans le nouveau répertoire, avec modification de l'emplacement racine pour être 8.1.3.

#sudo tar --transform 's/^owncloud/8.1.3/' -C /var/opt/owncloud -xjvf /var/opt/owncloud/owncloud-8.1.3.tar.bz2

Le fichier téléchargé peut être supprimé.

#sudo rm /var/opt/owncloud/owncloud-8.1.3.tar.bz2

Puis le lien /var/opt/owncloud/installed est mis en place pour référencer la version active. Ainsi, il sera facile de préparer les mises à jours, il suffira de modifier le lien.

#sudo ln -s /var/opt/owncloud/8.1.3 /var/opt/owncloud/installed

Icon File Owner.png Propriétaire fichiers

L'installation a été réalisée avec le compte root. Il est préférable de donner la propriété au compte de démarrage du serveur web, soit www-data dans le cadre de cette installation.

#sudo chown -R www-data:www-data /var/opt/owncloud
#sudo chown -h www-data:www-data /var/opt/owncloud/installed

Icon ACL.png Sécurisation

Après avoir modifier le propriétaire des fichiers, il est conseillé de positionner des droits restrictifs afin que seul le propriétaire puisse accéder à ceux-ci.

#sudo chmod -R go-rwx /var/opt/owncloud

Folder-icon.png Répertoire de données

Lors de l'initialisation, un emplacement va être spécifié pour la sauvegarde des fichiers. Or, cet emplacement doit être disponible lors du paramétrage. Pour cette installation, cet emplacement sera /var/datas/owncloud.

#sudo mkdir -p /var/datas/owncloud
#sudo chmod 700 /var/datas/owncloud
#sudo chown www-data:www-data /var/datas/owncloud

Le propriétaire est modifié avec le compte d'exécution du serveur web.

Cependant, ceci n'est pas suffisant afin de sécuriser le répertoire de données. En effet, lors de l'utilisation de l'application, les données sont créés dans ce répertoire avec les permissions par défaut du compte d'exécution. Par défaut, sur une machine Ubuntu, cela va donner les droits de modifications pour le propriétaire, et de lecture pour le groupe et les utilisateurs, comme l'exemple suivant.

total 28
drwx------ 5 www-data www-data 4096 nov.  15 21:55 ./
drwxr-xr-x 9 root     root     4096 nov.  15 17:02 ../
drwxr-xr-x 6 www-data www-data 4096 oct.  31 18:49 admin/
-rw-r--r-- 1 www-data www-data  284 nov.  12 00:57 .htaccess
-rw-r--r-- 1 www-data www-data    0 nov.  12 00:57 index.html
drwxr-xr-x 2 www-data www-data 4096 oct.  10 02:49 .locks/
-rw-r----- 1 www-data www-data  631 nov.   1 00:47 mount.json
-rw-r--r-- 1 www-data www-data    0 nov.  12 00:57 .ocdata
drwxr-xr-x 2 www-data www-data 4096 oct.  10 02:06 updater_backup/

Afin de spécialisation les permissions, la commande setfacl est utilisée pour forcer les permissions pour les fichiers et répertoires créés sous le répertoire de données.

#sudo setfacl -dm g::0,o::0 /var/datas/owncloud

Celle-ci permet de supprimer les droits d'accès pour l'ensemble des utilisateurs. Les permissions affectées au propriétaire, lecture sur fichiers et lecture + exécution sur répertoires, sont suffisantes dans ce cas.

Ainsi, les permissions sont spécifiées comme tel.

#sudo getfacl /var/datas/owncloud
getfacl : suppression du premier « / » des noms de chemins absolus
# file: var/datas/owncloud
# owner: www-data
# group: www-data
user::rwx
group::---
other::---
default:user::rwx
default:group::---
default:other::---

Dans le cas où des données sont déjà générées dans ce répertoire, il est possible d'affecter les droits à toute la hiérarchie.

#sudo setfacl -Rdm g::0,o::0 /var/datas/owncloud

Il peut également être nécessaire de remettre à jour les permissions.

#sudo chmod -R go-rwx /var/datas/owncloud

Icon-log.png Fichier log

Configuration-icon.png Publication sous Apache

Network Admin.png Initialisation

Icon-Configuration-Settings.png Configurations complémentaires

Sur l'interface d'administration, les configurations sont validées. Si toutes les configurations sont validées, le message Tous les tests ont réussi.


Sinon, les points de vigilences sont présentés.

Icon-memory.png Configuration cache

Après installation, un avertissement est affiché sur la page d'administration.


L'un de celui-ci mentionne l'absence de configuration pour le cache de la mémoire et qu'il est recommandé d'en configurer un. Plusieurs méthodes sont possibles comme décrit dans la procédure officielle, https://doc.owncloud.org/server/8.2/admin_manual/configuration_server/caching_configuration.html

Dans un premier temps, l'option APCu est utilisée. Il faut donc installé le module php php5-apcu. Dans le cadre de cette installation sur Ubuntu, ceci est effectué avec la commande apt-get.

#sudo apt-get install php5-apcu

Une fois installé et le serveur Apache redémarré, il faut modifier le fichier de configuration config.php, qui est externalisé à l'emplacement /var/opt/owncloud/common/config.php comme décrit dans cet article. Le paramètre memcache.local est rajouté

<?php
$CONFIG = array (
  .
  .
  .
  'maintenance' => false,
  'memcache.local' => 'OC\Memcache\APC',
  'theme' => '',
  'trashbin_retention_obligation' => 'auto',
);

Cette mise en place fonctionne pour cette installation personnel et de légère. Pour des volumes plus conséquent, d'autre implémentation doivent être mises en place.

Icon-keys.png Sécurité HTTPS

Comme dans le cas de la configuration du cache, un avertissement est affiché pour la configuration du HTTPS.

L'en-tête HTTP "Strict-Transport-Security" n'est pas configurée à "15768000" secondes.
Pour renforcer la sécurité nous recommandons d'activer HSTS comme décrit dans notre Guide pour le renforcement et la sécurité.

Il est nécessaire de modifier la configuration du site comme décrit dans la procédure officielle, https://doc.owncloud.org/server/8.2/admin_manual/configuration_server/harden_server.html#enable-http-strict-transport-security

La mise en place nécessite la disponibilité du module mod_headers. Pour une installation sous Ubuntu avec activation de HTTPS, ce module peut être présent. il suffit de vérifier sa présence dans le répertoire /etc/apache2/mods-available.

#ll /etc/apache2/mods-available/headers.load
-rw-r--r-- 1 root root 66 nov.  18  2010 /etc/apache2/mods-available/headers.load

Dans ce cas, le module est installé et il faut s'assurer qu'il est activé, en vérifiant la présence du lien dans /etc/apache2/mods-enabled.

#ll /etc/apache2/mods-enabled/headers.load
lrwxrwxrwx 1 root root 30 oct.  10 01:22 /etc/apache2/mods-enabled/headers.load -> ../mods-available/headers.load

Si tel n'est pas le cas, il faut l'activer avec la commande a2enmod, et redémarrer l'instance Apache.

#sudo a2enmod headers
#sudo apache2 -k graceful

Une fois activer, il faut modifier la configuration du site, fichier .conf dans le répertoire /etc/apache2/sites-enabled, en ajoutant le ces instructions suivantes.

        <IfModule mod_headers.c>
                Header always set Strict-Transport-Security "max-age=15768000;"
        </IfModule>

Dans la documentation, le paramètre includeSubDomains; preload est ajouté.

        <IfModule mod_headers.c>
                Header always set Strict-Transport-Security "max-age=15768000; includeSubDomains; preload"
        </IfModule>

Cependant, cette instance ne met pas en place les sous domaine, et le paramètre peut être omis.

Process-icon.png Fichier de configuration

OwnCloud est configuré avec le fichier config/config.php dans le répertoire d'installation. Or lors d'une montée de version, il sera nécessaire de reprendre ce fichier dans la nouvelle installation. Afin de faciliter ces opérations, le répertoire config est déplacé dans le répertoire common mis en place précédement.

Une copie est réalisée dans un premier temps.

#sudo cp -R -p /var/opt/owncloud/installed/config /var/opt/owncloud/common
#sudo find /var/opt/owncloud/common/config -type f -exec chmod 600 {} \;
#sudo chmod 700 /var/opt/owncloud/common/config

Puis le répertoire standard est remplacé par un lien vers cette externalisation.

#sudo rm -rf /var/opt/owncloud/installed/config
#sudo ln -s /var/opt/owncloud/common/config /var/opt/owncloud/installed/config
#sudo chown -h www-data:www-data /var/opt/owncloud/installed/config

Plugin-icon.png Emplacements applications tierces

Les applications tierces sont externalisées afin de ne pas avoir à les recopier dans le répertoire de l'instance à chaque montée de version, comme décrit dans l'article d'ajout d'applications.

L'environnement est construit dans un répertoire common.

#sudo mkdir -p /var/opt/owncloud/common/apps-available
#sudo mkdir -p /var/opt/owncloud/common/apps-enabled
#sudo chown -R www-data:www-data /var/opt/owncloud/common
#sudo chmod -R 700 /var/opt/owncloud/common

Le répertoire apps-available sera utilisé pour installer les applications. Elles seront activées en plaçant un lien sous apps-enabled, pour lequel un lien est créé dans le répertoire d'installation de l'instance, comme décrit dans le paragraphe d'activation des applications tierces.

#sudo ln -s /var/opt/owncloud/common/apps-enabled /var/opt/owncloud/installed/exapps
#sudo chown -h www-data:www-data /var/opt/owncloud/installed/exapps

Copy-icon.png Déclaration types mimes

Dans le cadre de l'utilisation de l'application GPX Viewer, le type mime GPX doit être ajouté afin de déclencher les fonctionnalité.

Version 8.2.0

Pour cette version, la déclaration a été déplacée dans le fichier resources/config/mimetypemapping.dist.json. Le même style de modification est mise en place à savoir.

  • Externalisation du fichier;
#sudo mkdir -p /var/opt/owncloud/common/resources/config
#sudo chown -R www-data:www-data /var/opt/owncloud/common/resources
#sudo chmod -R 700 /var/opt/owncloud/common/resources
#sudo cp -p /var/opt/owncloud/installed/resources/config/mimetypemapping.dist.json /var/opt/owncloud/common/resources/config/mimetypemapping.dist.json

La copie est effectuée en préservant les attributs du fichier. Cependant, il est possible d'exécuter les commandes suivantes pour s'assurer des bonnes permissions.

#sudo chown www-data:www-data /var/opt/owncloud/common/resources/config/mimetypemapping.dist.json
#sudo chmod 600 /var/opt/owncloud/common/resources/config/mimetypemapping.dist.json
  • Modification du fichier, en ajoutant l'entrée "gpx": ["application/gpx"],;
        "gif": ["image/gif"],
        "gpx": ["application/gpx"],
        "gz": ["application/x-gzip"],
  • Mise en place de lien dans l'instance vers le fichier externalisé.
#sudo rm /var/opt/owncloud/installed/resources/config/mimetypemapping.dist.json
#sudo ln -s /var/opt/owncloud/common/resources/config/mimetypemapping.dist.json /var/opt/owncloud/installed/resources/config/mimetypemapping.dist.json
#sudo chown -h www-data:www-data /var/opt/owncloud/installed/resources/config/mimetypemapping.dist.json

Version 8.1.3 & 8.1.4

Pour cette version, la déclaration a été déplacée dans le fichier lib/private/mimetypes.list.php. Le fichier est externalisé, modifié pour référencé dans l'instance installée.

  • Externalisation du fichier;
#sudo mkdir -p /var/opt/owncloud/common/lib/private
#sudo chown -R www-data:www-data /var/opt/owncloud/common/lib
#sudo chmod -R 700 /var/opt/owncloud/common/lib
#sudo cp -p /var/opt/owncloud/installed/lib/private/mimetypes.list.php /var/opt/owncloud/common/lib/private/mimetypes.list.php

La copie est effectuée en préservant les attributs du fichier. Cependant, il est possible d'exécuter les commandes suivantes pour s'assurer des bonnes permissions.

#sudo chown www-data:www-data /var/opt/owncloud/common/lib/private/mimetypes.list.php
#sudo chmod 600 /var/opt/owncloud/common/lib/private/mimetypes.list.php
  • Modification du fichier, en ajoutant l'entrée 'gpx' => array('application/gpx', null),;
        'gif' => array('image/gif', null),
        'gpx' => array('application/gpx', null),
        'gz' => array('application/x-gzip', null),
  • Mise en place de lien dans l'instance vers le fichier externalisé.
#sudo rm /var/opt/owncloud/8.1.3/lib/private/mimetypes.list.php
#sudo ln -s /var/opt/owncloud/common/lib/private/mimetypes.list.php /var/opt/owncloud/installed/lib/private/mimetypes.list.php
#sudo chown -h www-data:www-data /var/opt/owncloud/installed/lib/private/mimetypes.list.php


Viewer icon.png Voir aussi

Documentation officielle: https://doc.owncloud.org/server/8.1/admin_manual/installation/source_installation.html

https://doc.owncloud.org/server/8.1/admin_manual/configuration_database/linux_database_configuration.html

https://doc.owncloud.org/server/8.1/admin_manual/installation/installation_wizard.html