OwnCloud Installation
Cet article présente l'installation de OwnCloud sur une machine Ubuntu et en mode autonome.
Sommaire
Votre avis
Nobody voted on this yet
|
|
Configuration MySql
Mise en place instance
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
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
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
Téléchargement
L'application est téléchargée dans le répertoire /var/opt/owncloud
.
#sudo wget -P /var/opt/owncloud https://download.owncloud.org/community/owncloud-8.1.3.tar.bz2
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
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
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
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
Fichier log
Publication sous Apache
Initialisation
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.
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.
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.
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
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
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
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/installation/installation_wizard.html