Modifications entre les versions 2 et 6 (s'étendant sur 4 versions)
Version 2 à la date du 2015-09-29 19:10:37
Taille: 7333
Éditeur: PatrickHétu
Commentaire: typo
Version 6 à la date du 2016-10-18 14:13:52
Taille: 10470
Éditeur: PatrickHétu
Commentaire: procedure nettoyage des utilisateurs owncloud
Texte supprimé. Texte ajouté.
Ligne 25: Ligne 25:
:: .. code-block:: sh
Ligne 35: Ligne 35:
::

    VERSION=$(wget https://owncloud.org/changelog -O - |\
              grep -o "Version \([0-9.]\+\)" |\
              head -n
1 |\
              sed -e "s
/Version //")
.. code-block:: sh

    VERSION=`wget https://owncloud.org/changelog -O - |\
               sed -n '/Version [0-9\.]\+/{s/^.*Version \([0-9\.]\+\).*$/\1/p;q}'`
Ligne 45: Ligne 43:
:: .. code-block:: sh
Ligne 52: Ligne 50:
:: .. code-block:: sh
Ligne 58: Ligne 56:
:: .. code-block:: sh
Ligne 64: Ligne 62:
:: .. code-block:: sh
Ligne 71: Ligne 69:
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 <https://software.opensuse.org/download/package?project=isv:ownCloud:community&package=owncloud>`_
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 <https://software.opensuse.org/download/package?project=isv:ownCloud:community&package=owncloud>`_
Ligne 76: Ligne 75:
:: .. code-block:: sh
Ligne 89: Ligne 88:
:: .. code-block:: sh
Ligne 100: Ligne 99:
:: .. code-block:: php
Ligne 115: Ligne 114:
::

    <VirtualHost default:80>
.. code-block:: xml

    <VirtualHost _default_:80>
Ligne 119: Ligne 118:
            Redirect permanent / `https://nuage.auf.org <https://nuage.auf.org>`_             Redirect permanent / https://nuage.auf.org
Ligne 122: Ligne 121:
    <IfModule mod\_ssl.c>
    <VirtualHost default:443>
    <IfModule mod_ssl.c>
    <VirtualHost _default_:443>
Ligne 137: Ligne 136:
    ErrorLog ${APACHE\_LOG\_DIR}/nuage.auf.org\_error.log
    CustomLog ${APACHE\_LOG\_DIR}/nuage.auf.org\_access.log combined

    LogLevel warn
<FilesMatch "\\.(cgi|shtml|phtml|php)$">
            SSLOptions +StdEnvVars
    </FilesMatch>
    <Directory /usr/lib/cgi-bin>
            SSLOptions +StdEnvVars
    </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>
Ligne 153: Ligne 154:
:: .. code-block:: sh
Ligne 177: Ligne 178:
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]
Ligne 183: Ligne 214:
:: .. code-block:: html
Ligne 193: Ligne 224:
Ensuite, les templates de courriels doivent être traduits.

- Notification d'activité

.. code-block:: php

    <?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");
Ligne 196: Ligne 262:
Pour rendre disponible le modmellon depuis owncloud vous devez Installer le plugin suivant::
  `https://apps.owncloud.com/content/show.php/user_servervars?content=158863 <https://apps.owncloud.com/content/show.php/user_servervars?content=158863>`_
Pour rendre disponible le modmellon depuis owncloud vous devez Installer le plugin suivant:

-
`https://apps.owncloud.com/content/show.php/user_servervars?content=158863 <https://apps.owncloud.com/content/show.php/user_servervars?content=158863>`_
Ligne 200: Ligne 268:
:: .. code-block:: sh
Ligne 211: Ligne 279:
:: .. code-block:: sh
Ligne 219: Ligne 287:
Faire les mêmes étapes que lors de l'installation pour le téléchargement. 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`_.
Ligne 222: Ligne 298:
:: .. code-block:: sh
Ligne 228: Ligne 304:
:: .. code-block:: sh
Ligne 235: Ligne 311:
:: .. code-block:: sh
Ligne 241: Ligne 317:
:: .. code-block:: sh
Ligne 250: Ligne 326:
:: .. code-block:: sh
Ligne 256: Ligne 332:
:: .. code-block:: sh
Ligne 266: Ligne 342:
:: .. code-block:: sh
Ligne 282: Ligne 358:
::

    mysql owncloud -e "select * from oc_appconfig where appid='user_ldap';"
.. code-block:: sh

    mysql owncloud -e "select configkey, configvalue from oc_appconfig where appid='user_ldap';"
Ligne 288: Ligne 364:
:: .. code-block:: sh

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;"

Projet/NuageAuF/MaintenanceServeur (dernière édition le 2016-10-18 14:13:52 par PatrickHétu)