Guide d'installation, configuration et mise-à-jour de Owncloud
Author: Patrick Hetu
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
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:
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:
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:
sha256sum -c owncloud-$VERSION.tar.bz2.sha256 < owncloud-$VERSION.tar.bz2
Si la somme est correcte, extraire l'archive dans le dossier courant:
tar jxvf owncloud-$VERSION.tar.bz2
Rendre l'outil en ligne de commande exécutable.
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:
Puis installer le paquet:
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:
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:
'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:
<VirtualHost _default_:80> ServerName nuage.auf.org Redirect permanent / https://nuage.auf.org </VirtualHost> <IfModule mod_ssl.c> <VirtualHost _default_:443> ServerName nuage.auf.org DocumentRoot /var/www/owncloud <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/owncloud> Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all </Directory> 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 <FilesMatch "\.(cgi|shtml|phtml|php)$"> SSLOptions +StdEnvVars </FilesMatch> <Directory /usr/lib/cgi-bin> SSLOptions +StdEnvVars </Directory> </VirtualHost> </IfModule>
Puis les modules ssl et rewrite doivent être activés:
a2enmod ssl a2enmod rewrite service apache2 reload
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)
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
./occ ldap:show-remnants
Supprimer les utilisateurs partis avec la commande (faire de multiple fois aussi)
./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:
<a href="/mellon/login?ReturnTo=https%3A%2F%2F<?php p($_SERVER['HTTP_HOST']); ?>%2F%3Fapp%3Duser_servervars" onMouseOver="document.idauf_bouton.src='/themes/auf/core/img/idauf_bouton_survol.png';" onMouseOut="document.idauf_bouton.src='/themes/auf/core/img/idauf_bouton.png';"> <img id="idauf_bouton" width="200" height="32" src="/themes/auf/core/img/idauf_bouton.png" /> </a>
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é
<?php /** @var OC_L10N $l */ /** @var array $_ */ $l = $_['overwriteL10N']; print_unescaped($l->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:
dans le dossier apps/ et l'activer avec la commande:
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:
owncloud/occ app:enable user_ldap owncloud/occ app:enable activity
1.3 Mise-à-jour
Pour vérifier la version courante utilisez la commande:
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":
owncloud/occ maintenance:mode
Puis faire une sauvegarde de la base de données en cas de problème:
NOW=$(date +"%m_%d_%Y") mysqldump owncloud > owncloud_backup_$NOW.sql
Corriger les permissions du répertoire:
chown www-data:www-data owncloud/
Copier les fichiers aux bons endroits:
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:
owncloud/occ upgrade
Mettre le dossier en production et fermer le mode "Maintenance":
mv owncloud owncloud-prod/ owncloud-prod/occ maintenance:mode
1.4 Vérification
Des applications activées:
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
mysql owncloud -e "select configkey, configvalue from oc_appconfig where appid='user_ldap';"
Vérification de la configuration de user_servervars
mysql owncloud -e "select * from oc_appconfig where appid='user_servervars;"