{{{#!rst ============================================================== Guide d'installation, configuration et mise-à-jour de Owncloud ============================================================== :Author: Patrick Hetu .. contents:: 1 Serveur --------- 1.1 Installation ~~~~~~~~~~~~~~~~ Notez que l'ensemble des commandes doivent être exécutées en tant que super utilisateur. 1.1.1 Via le code source ^^^^^^^^^^^^^^^^^^^^^^^^ 1.1.1.1 Dépendances ::::::::::::::::::: .. code-block:: sh apt-get update apt-get install mysql-server apache2 php5 php5-gd php5-imagick php5-ldap php5-mcrypt php5-curl git bzip2 1.1.1.2 Installation :::::::::::::::::::: Vérification de la dernière version disponible et sauvegarde dans la variable ``VERSION``: .. code-block:: sh VERSION=`wget https://owncloud.org/changelog -O - |\ sed -n '/Version [0-9\.]\+/{s/^.*Version \([0-9\.]\+\).*$/\1/p;q}'` echo $VERSION Télécharger l'archive compressé du code source et sa somme sha256: .. code-block:: sh wget https://download.owncloud.org/community/owncloud-$VERSION.tar.bz2 wget https://download.owncloud.org/community/owncloud-$VERSION.tar.bz2.sha256 Vérifier la somme: .. code-block:: sh sha256sum -c owncloud-$VERSION.tar.bz2.sha256 < owncloud-$VERSION.tar.bz2 Si la somme est correcte, extraire l'archive dans le dossier courant: .. code-block:: sh tar jxvf owncloud-$VERSION.tar.bz2 Rendre l'outil en ligne de commande exécutable. .. code-block:: sh chmod a+x owncloud/occ 1.1.2 ou via le dépôt Deb ^^^^^^^^^^^^^^^^^^^^^^^^^ Pour installer owncloud depuis un dépôt Debian/Ubuntu, veuillez suivre les instructions à la page: - `https://software.opensuse.org/download/package?project=isv:ownCloud:community&package=owncloud `_ Puis installer le paquet: .. code-block:: sh apt-get update apt-get install owncloud 1.2 Configuration ~~~~~~~~~~~~~~~~~ 1.2.1 Mysql ^^^^^^^^^^^ Première étape, création de la base de données et d'un utilisateur avec les commandes: .. code-block:: sh mysql -e "create database owncloud;" mysql -e "grant usage on *.* to owncloud@localhost identified by 'VOTRE_MOT_DE_PASSE';" 1.2.2 Owncloud ^^^^^^^^^^^^^^ Les données de configuration de owncloud spécifique à l'AUF suivantes doivent être ajouter dans le fichier ``owncloud/config/config.php``: .. code-block:: php 'datadirectory' => '/srv/data', 'ldapIgnoreNamingRules' => false, 'mail_domain' => 'auf.org', 'trusted_domains' => array ( 0 => 'nuage.auf.org', ), 1.2.3 Apache ^^^^^^^^^^^^ Apache doit être configurer avec les VirtualHost suivant: .. code-block:: xml ServerName nuage.auf.org Redirect permanent / https://nuage.auf.org ServerName nuage.auf.org DocumentRoot /var/www/owncloud Options FollowSymLinks AllowOverride None Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all ErrorLog ${APACHE_LOG_DIR}/nuage.auf.org_error.log CustomLog ${APACHE_LOG_DIR}/nuage.auf.org_access.log combined # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn SSLOptions +StdEnvVars SSLOptions +StdEnvVars Puis les modules ``ssl`` et ``rewrite`` doivent être activés: .. code-block:: sh a2enmod ssl a2enmod rewrite service apache2 reload 1.2.3.1 ModSSL :::::::::::::: voir: `https://wiki.auf.org/wikiteki/PKI/Cr%C3%A9ationCertificatServeurSSL `_ 1.2.3.2 ModMellon ::::::::::::::::: voir: `https://redmine.auf.org/projects/auth/wiki/MiseEnPlaceSP `_ 1.2.4 AUF ^^^^^^^^^ 1.2.4.1 LDAP :::::::::::: Configurer ldap dans l'interface d'administration: `https://nuage.auf.org/index.php/settings/admin `_ Nettoyage de la liste des utilisateurs ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Le nettoyage doit être fait lors du départ d'un utilisateur car les partages d'un utilisateur absent bloquent la visualisation des dossiers Owncloud dans l'interface web pour les utilisateurs avec qui il a partagé. Cette procédure n'est pas idéale car elle néccesite de faire les commandes plusieurs fois et ne garantie pas que tous les utilisateurs absents seront supprimés. Ceci est possiblement causé par un bug de concurrence entre la recherche LDAP et la recherche dans le cache des utilisateurs de Owncloud. Pour faire le nettoyage déplacez-vous dans le dossier **/var/www/owncloud/**: Rouler cette commande un bon nombre de fois (10-15) .. code-block:: sh for i in $(./occ ldap:search --limit 9999 "" | sed "s/.*(\(.*\))/\1/"); do ./occ ldap:check-user $i; done Ensuite, afficher la liste des utilisateurs à supprimer .. code-block:: sh ./occ ldap:show-remnants Supprimer les utilisateurs partis avec la commande (faire de multiple fois aussi) .. code-block:: sh ./occ user:delete [courriel de l'utilisateur] 1.2.4.2 Theme ::::::::::::: Le fichier ``owncloud/core/templates/login.php`` doit être copié vers ``owncloud/themes/auf/core/templates/`` et la ligne suivante doit être ajouter avant le formulaire de connexion: .. code-block:: html Puis les fichiers images doivent être téléchargés dans leurs répertoires respectifs. Ensuite, les templates de courriels doivent être traduits. - Notification d'activité .. code-block:: php t('Bonjour %s,', array($_['username']))); p("\n"); p("\n"); if ((int) $_['timeframe'] === \OCA\Activity\UserSettings::EMAIL_SEND_HOURLY) { print_unescaped($l->t('Vous recevez ce courriel car dans la dernière heure les activités suivantes ont eu lieu à %s', array($_['owncloud_installation']))); } else if ((int) $_['timeframe'] === \OCA\Activity\UserSettings::EMAIL_SEND_DAILY) { print_unescaped($l->t('Vous recevez ce courriel car depuis hier les activités suivantes ont eu lieu à %s', array($_['owncloud_installation']))); } else { print_unescaped($l->t('Vous recevez ce courriel car dans la dernière semaine les activités suivantes ont eu lieu à %s', array($_['owncloud_installation']))); } p("\n"); p("\n"); foreach ($_['activities'] as $activityData) { print_unescaped($l->t('* %1$s - %2$s', $activityData)); p("\n"); } if ($_['skippedCount']) { print_unescaped($l->n('* et %n de plus ', '* et %n de plus ', $_['skippedCount'])); p("\n"); } p("\n"); 1.2.4.3 SSO ::::::::::: Pour rendre disponible le modmellon depuis owncloud vous devez Installer le plugin suivant: - `https://apps.owncloud.com/content/show.php/user_servervars?content=158863 `_ dans le dossier ``apps/`` et l'activer avec la commande: .. code-block:: sh owncloud/occ app:enable user_servervars et finir sa configuration dans l'interface d'administration. 1.2.4.4 Apps :::::::::::: Les applications suivantes doivent aussi être activées: .. code-block:: sh owncloud/occ app:enable user_ldap owncloud/occ app:enable activity 1.3 Mise-à-jour ~~~~~~~~~~~~~~~ Pour vérifier la version courante utilisez la commande: .. code-block:: sh owncloud/occ status Pour télécharger la dernière version, suivre les mêmes étapes décrite dans la section `1.1 Installation`_. Démarrer le mode "Maintenance": .. code-block:: sh owncloud/occ maintenance:mode Puis faire une sauvegarde de la base de données en cas de problème: .. code-block:: sh NOW=$(date +"%m_%d_%Y") mysqldump owncloud > owncloud_backup_$NOW.sql Corriger les permissions du répertoire: .. code-block:: sh chown www-data:www-data owncloud/ Copier les fichiers aux bons endroits: .. code-block:: sh cp -rf $OLD/config/ owncloud cp -rf $OLD/theme/ owncloud/ cp -r $OLD/apps/user_servervars owncloud/apps/ cp $OLD/data owncloud/ Lancer le script de mise-à-jour de owncloud: .. code-block:: sh owncloud/occ upgrade Mettre le dossier en production et fermer le mode "Maintenance": .. code-block:: sh mv owncloud owncloud-prod/ owncloud-prod/occ maintenance:mode 1.4 Vérification ~~~~~~~~~~~~~~~~ Des applications activées: .. code-block:: sh owncloud/occ app:list Il faut vérifier que les modules suivantes sont bien activés: - activity - files\_pdfviewer - user\_ldap - user\_servervars Vérification de la configuration LDAP .. code-block:: sh mysql owncloud -e "select configkey, configvalue from oc_appconfig where appid='user_ldap';" Vérification de la configuration de user\_servervars .. code-block:: sh mysql owncloud -e "select * from oc_appconfig where appid='user_servervars;" }}}