WikiMiNET

La documentation technique et administrative

Outils pour utilisateurs

Outils du site


wiki:services:owncloud

Ceci est une ancienne révision du document !


OwnCloud Client

Voici quelques pistes pour bien vous servir d'owncloud :

  • La version Web d'OwnCloud est assez lente. Vous risquez de vous arracher les cheveux. Préférez utiliser le client.
  • L'installation du client est simpliste :

(sous debian) apt-get install owncloud-client.

Pour les autres

  • Vous avez alors à votre racine :
    1. Votre dossier synchronisé avec votre client
    2. Le dossier partagé de MiNET
  • Pour synchroniser le dossier partagé de MiNET, ajoutez le dossier Shared à vos dossier à synchroniser sur votre client. Pour cela :
    1. Sur votre client ajoutez un dossier …
    2. Sélectionnez le dossier local
    3. Cliquez sur suivant
    4. Selectionnez ensuite l'option Vers votre owncloud
    5. Entrez le repertoire Shared
    6. Cliquez sur Terminer

Bravo vous avez maintenant accès au owncloud MiNET ;-)

Éditer l'agenda MiNET

Pour celà créez un évenement dans le calendrier et partagez le avec le groupe Fichier_Minet.

Attention, vous devez être dans le groupe MiNET pour pouvoir voir l'agenda MiNET.

Instalation du serveur

Pour installer owncloud,

  apt-get install apache2 php5 php5-common php5-gd
  apt-get install php5-sqlite curl libcurl3 libcurl3-dev php5-curl

On installe ainsi apache2, php5 et SQLite.

  apt-get install owncloud

Ce qui permet d'obtenir le Owncloud à configurer (http://ADRESSE_IP_VM/owncloud). Tuto avec des trucs inutiles en plus : http://www.it-connect.fr/installation-downcloud-sous-debian/

Il est alors important de donner l'accés aux répertoires utiles d'Owncloud (…/owncloud) au groupe www-data, groupe par défaut d'apache

  cd /var/www/
  chown www-data:www-data -R owncloud/

Remarques :

  • Ces lignes de commandes partent du principe qu'Owncloud est installé dans /var/www/owncloud (on pourra par exemple éditer le virtual host afin de le faire pointer vers le chemin désiré). Cependant il est probable que le dossier où s'installera Owncloud soit /usr/share/owncloud.
  • Penser à changer les droits d'accès aux dossiers importants
  chmod 770 -R owncloud/

Reste alors à s'assurer que les modules Rewrite (permettant la réécriture d'URL) et Headers (gérant les en-têtes des requêtes et réponses HTTP) d'Apache sont bien démarrés :

  a2enmod rewrite
  a2enmod headers

Vous pouvez désormais accéder à votre espace de stockage Owncloud à l'adresse http://ADRESSE_IP_VM/owncloud Si vous souhaitez y accéder directement avec http://ADRESSE_IP_VM, il suffit d'écrire dans le fichier /var/www/html/index.html :

  <meta http-equiv="REFRESH" content="0; url=http://ADRESSE_IP_VM/owncloud" />

Mais c'est moche comme adresse, un nom propre tel que pipo.minet.net serait plus joli. On va donc bidouiller encore un peu. Il faut réserver un nom de domaine (pipo.minet.net) et configurer le DNS et le revProxy. Maintenant il faut configurer le serveur Apache pour que quand vous tapez http://pipo.minet.net, vous tombiez sur le /owncloud et pas sur Apache.

Parlons un peu sécurité maintenant : il serait dommage que le dossier data (et son précieux contenus :-D) soit ouvert aux quatres vents. Pour ce faire, il faut définir la directive AllowOverride de “None” vers “ALL” dans le fichier de configuration d'Apache(/etc/apache2/sites-enabled/votre_fichier_de_conf.conf). Il faut d'abord s'assurer qu'un fichier .conf (cf apache2) adapté au nom de domaine associé (c'est plus propre, mais il faudra configurer le serveur Serveur DNS en conséquence) existe.

Modifier le fichier config.php dans le dossier /config d'Owncloud (/usr/share/owncloud/config /config.php) :

  'trusted_domains' =>
  array (
     0 => 'site-pipo.minet.net',
  ),

Ainsi que changer le data directory si besoin :

  'datadirectory' => '[mettre le chemin absolu ici]'
  (ex : 'datadirectory' => '/usr/share/owncloud/data')
  

Et enfin, changer l'adressage direct via IP, en passage par un DNS :

  'overwrite.cli.url' => http://site-pipeau.minet.net/owncloud',

Une fois toutes ces modifications appliquées, il est grand temps de relancer le serveur Apache :

  service apache2 restart

L'accès depuis un navigateur de votre serveur Owncloud peut alors se faire via (selon si passe par le DNS ou pas) :

https://site-pipeau.minet.net/owncloud ou bien http://[IP publique de la vm]/owncloud

Et finaliser les derniers paramétrages en créant un compte administrateur.

Si vous utilisez MySQL, il faudra se rendre en ligne de commande sur l'interface MySQL pour y saisir les lignes de commande qui permettront de créer une base de données et un utilisateur dédié à OwnCloud :

  CREATE USER "owncloud"@"localhost" IDENTIFIED BY "password";
  CREATE DATABASE owncloud;

Reste à donner à l'utilisateur les droits sur la base de données :

  GRANT ALL PRIVILEGES ON owncloud.* TO "owncloud"@"localhost";
  FLUSH PRIVILEGES ;

Ca se fait aussi très bien sur l'interface Web.

interfacer avec le LDAP

  apt-get install php5-ldap

Puis activez le module “LDAP user and group backend”.

Renseignez correctement le module ( chez nous par l'ip, en spécifiant le numéro de port ).

Accélération des performances

Réinstallation et migration vers un nouveau owncloud

L'ancien Owncloud était pourri à cause de nombreuses migrations effectuées, des modifications à la main de la base de donnée …

On a décidé de créer un nouveau CT (Debian Jessie) et d'utiliser le dépôt Owncloud stable. En effet, l'équipe Debian a annoncé le drop du support de Owncloud dans la futur version car les mises à jours était ingérables.

La démarche peut être trouvée icihttps://download.owncloud.org/download/repositories/stable/owncloud/

On a décidé d'utiliser Nginx par soucis de performance. Il suffit d'installer les paquets suivants:

apt-get install nginx php5 php5-fpm php5-ldap php5-mysql

Voici la config de /etc/nginx/nginx.conf :

upstream php-handler {
  #server 127.0.0.1:9000;
  server unix:/var/run/php5-fpm.sock;
}

#server {
#  listen 80;
#  server_name 192.168.103.173;
  # enforce https
  #return 301 https://$server_name$request_uri;
#}

server {
  listen 80;
  server_name 192.168.103.173;

  #ssl_certificate /etc/ssl/nginx/cloud.example.com.crt;
  #ssl_certificate_key /etc/ssl/nginx/cloud.example.com.key;

  # Path to the root of your installation
  root /var/www/owncloud/;
  # set max upload size
  client_max_body_size 10G;
  fastcgi_buffers 64 4K;

  # Disable gzip to avoid the removal of the ETag header
  gzip off;

  # Uncomment if your server is build with the ngx_pagespeed module
  # This module is currently not supported.
  #pagespeed off;

  rewrite ^/caldav(.*)$ /remote.php/caldav$1 redirect;
  rewrite ^/carddav(.*)$ /remote.php/carddav$1 redirect;
  rewrite ^/webdav(.*)$ /remote.php/webdav$1 redirect;

  index index.php;
  error_page 403 /core/templates/403.php;
  error_page 404 /core/templates/404.php;

  location = /robots.txt {
    allow all;
    log_not_found off;
    access_log off;
  }

  location ~ ^/(?:\.htaccess|data|config|db_structure\.xml|README){
    deny all;
  }

  location / {
    # The following 2 rules are only needed with webfinger
    rewrite ^/.well-known/host-meta /public.php?service=host-meta last;
    rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json last;

    rewrite ^/.well-known/carddav /remote.php/carddav/ redirect;
    rewrite ^/.well-known/caldav /remote.php/caldav/ redirect;

    rewrite ^(/core/doc/[^\/]+/)$ $1/index.html;

    try_files $uri $uri/ =404;
  }

  location ~ \.php(?:$|/) {
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    include fastcgi_params;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_param PATH_INFO $fastcgi_path_info;
    #fastcgi_param HTTPS on;
    fastcgi_pass php-handler;
    fastcgi_intercept_errors on;
  }

  # Adding the cache control header for js and css files
  # Make sure it is BELOW the location ~ \.php(?:$|/) { block
  location ~* \.(?:css|js)$ {
    add_header Cache-Control "public, max-age=7200";
    # Add headers to serve security related headers
    add_header Strict-Transport-Security "max-age=15768000; includeSubDomains; preload;";
    add_header X-Content-Type-Options nosniff;
    add_header X-Frame-Options "SAMEORIGIN";
    add_header X-XSS-Protection "1; mode=block";
    add_header X-Robots-Tag none;
    # Optional: Don't log access to assets
    access_log off;
  }

  # Optional: Don't log access to other assets
  location ~* \.(?:jpg|jpeg|gif|bmp|ico|png|swf)$ {
    access_log off;
  }
}

La configuration de la base de donnée se fait dans le fichier /var/www/owncloud/config/config.php Pour l'instant la base de donnée est locale, mais elle sera rapidement migrée sur sql.minet.net

Il faut donner les droits à l'utilisateur www-data sur les fichiers du serveur:

chown www-data:www-data -R /etc/www/owncloud

La configuration du LDAP se fait depuis l'interface web. Il faut au préalable activer l'application “Connection au LDAP”. Dans la partie administration, on configurer de cette manière la connection:

Host: ldap-master.minet.net
Port : 389
Base DN: ou=equipe,dc=minet,dc=net

On peut facilement configurer les autres onglets. Dans l'onglet Avancé:

Champ "nom d'affichage" de l'utilisateur : cn
DN racine de l'arbre utilisateurs : ou=equipe,dc=minet,dc=net
Champ "nom d'affichage" du groupe : cn
DN racine de l'arbre groupes : ou=groups,dc=minet,dc=net

Pour uploader des fichiers de taille importante, il faut regarder les fichiers de configuration de nginx et de php-fpm. Dans /etc/php5/fpm/php.ini

post_max_size = 1G
upload_max_size = 1G

Dans /etc/nginx/nginx.conf :

client_max_body_size = 1G

Il faut faire la même configuration sur le revproxy s'il est utilisé pour l'accès au site.

Migration Owncloud vers une nouvelle machine

La migration se fait en 3 étapes:

  • Copie du fichier owncloud/data sur la nouvelle machine
  • Export de la base de donnée et import sur le nouveau serveur mysql
  • Mise à jour de la base de donnée par Owncloud:
sudo -u apache php occ upgrade
wiki/services/owncloud.1459805786.txt.gz · Dernière modification: 2020/06/27 18:15 (modification externe)