WikiMiNET

La documentation technique et administrative

Outils pour utilisateurs

Outils du site


wiki:services:owncloud

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
wiki:services:owncloud [2016/04/04 20:21]
thunder [Migration Owncloud vers une nouvelle machine]
wiki:services:owncloud [2018/05/18 22:36]
abracastoral supprimée
Ligne 1: Ligne 1:
 +======= 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''
 +
 +[[http://owncloud.org/sync-clients/|Pour les autres]]
 +
 +  * Pour la configuration, l'URL est simplement : ''https://owncloud.minet.net''. Votre login/mots de passes sont ceux du LDAP.
 +
 +  * Vous avez alors à votre racine :
 +     - Votre dossier synchronisé avec votre client
 +     - Le dossier partagé de MiNET
 +
 +  * Pour synchroniser le dossier partagé de MiNET, ajoutez le dossier ''Shared'' à vos dossier à synchroniser sur votre client. Pour cela :
 +     - Sur votre client ''ajoutez un dossier ...''
 +     - Sélectionnez le dossier local
 +     - Cliquez sur //suivant//
 +     - Selectionnez ensuite l'option ''Vers votre owncloud''
 +     - Entrez le repertoire ''Shared''
 +     - 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 [[wiki:hebergement:apache2|]]) **adapté au nom de domaine associé** (c'est plus propre, mais il faudra configurer le serveur [[wiki:services:dns|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|https://site-pipeau.minet.net/owncloud]] ou bien [[http://[IP publique de la vm]/owncloud|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 =====
 +
 +  * [[ http://forum.owncloud.org/viewtopic.php?f=8&t=10692 | consultez ce lien ]]
 +
 +
 +===== 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 ici[[https://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:
 +<code>
 +apt-get install nginx php5 php5-fpm php5-ldap php5-mysql
 +</code>
 +
 +Voici la config de /etc/nginx/nginx.conf :
 +
 +<code>
 +
 +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;
 +  }
 +}
 +
 +</code>
 +
 +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:
 +<code>
 +chown www-data:www-data -R /etc/www/owncloud
 +</code>
 +
 +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:
 +<code>
 +Host: ldap-master.minet.net
 +Port : 389
 +Base DN: ou=equipe,dc=minet,dc=net
 +</code>
 +On peut facilement configurer les autres onglets. Dans l'onglet Avancé:
 +<code>
 +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
 +</code>
 +
 +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
 +<code>
 +post_max_size = 1G
 +upload_max_size = 1G
 +</code>
 +Dans /etc/nginx/nginx.conf :
 +<code>
 +client_max_body_size = 1G
 +</code>
 +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:
 +<code>
 +sudo -u apache php occ upgrade
 +</code>