Table des matières

OwnCloud Client

Voici quelques pistes pour bien vous servir d'owncloud :

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

Pour les autres

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.

Installation 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 :

  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 contenu :-D) soit ouvert aux quatres vents. Pour éviter ça, 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 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ées …

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 future version car les mises à jours étaient 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ées se fait dans le fichier /var/www/owncloud/config/config.php Pour l'instant la base de données 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 configure 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:

sudo -u apache php occ upgrade