2

Installer un serveur Owncloud 7 sur Debian Wheezy avec Nginx & MariaDB

OwnCloud est un logiciel libre sous licence AGPLv3, qui permet de stocker et partager des fichiers dans les « nuages ».

L’avantage d’Owncloud par rapport à d’autre solution propriétaire clé en main comme Dropbox ou Drive de google est le contrôle total des données dans le « cloud ».

Le prix à payer est de configurer entièrement son propre serveur, ce qui implique d’avoir un minimum requis de connaissances en administration système.

Pré-requis pour l’installation de Owncloud

Le premier pré-requis est de disposer d’un serveur opérationnel et à jour sous Debian 7 avec le couple Nginx/MariaDB installés et configurés, avoir créé un certificat SSL auto-signé.

L’article est décomposé comme suit :

  • Préparation du serveur : Configuration de Nginx et MariaDB,
  • Installation de Owncloud,
  • Installation d’un client(Android et GNU/linux) pour se connecter au serveur Owncloud.

Préparation du serveur

nb : toutes les commandes sont exécutées en tant que root.

Configuration de Nginx

Fichier d’exemple du wiki owncloud :

  • Création d’un virtualhost pour Nginx :
  • nano /etc/nginx/site-enabled/owncloud
    
            server 127.0.0.1:9000;
            #server unix:/var/run/php5-fpm.sock;
    }
     
    server {
            listen 80;
            server_name cloud.example.com;
            return 301 https://$server_name$request_uri;  # enforce https
    }
     
    server {
            listen 443 ssl;
            server_name cloud.example.com;
     
            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/;
     
            client_max_body_size 10G; # set max upload size
            fastcgi_buffers 64 4K;
     
            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/ index.php;
            }
     
            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;
            }
     
            # Optional: set long EXPIRES header on static assets
            location ~* \.(?:jpg|jpeg|gif|bmp|ico|png|css|js|swf)$ {
                    expires 30d;
                    # Optional: Don't log access to assets
                    access_log off;
            }
     
    }
    
  • Modification du fichier php.ini pour accepter de « gros » fichiers
  • nano /etc/php5/fpm/php.ini
    

    A adapter suivant les besoins :

    allow_url_fopen = on
    allow_url_include = on
    memory_limit = 2048M
    post_max_size = 10000M
    upload_max_filesize = 10000M
    max_input_time = -1
    max_execution_time = 0
    

Création de la base de données

  • Connexion au serveur MariaDB :
  • mysql -u user -p
    

    (remplacer user par le votre.)

  • Création de la base de données avec un utilisateur associé :
  • CREATE DATABASE exemplebase;
    CREATE USER 'userbase'@'localhost' IDENTIFIED BY 'supermdpdelamort';
    GRANT ALL PRIVILEGES ON exemplebase.* TO 'userbase'@'localhost';
    FLUSH PRIVILEGES;
    

exemplebase : c’est le nom de la base de données pour owncloud.
userbase : c’est le nom de l’utilisateur associé à la base.
supermdpdelamort : c’est le mot de passe pour l’utilisateur associé à la base.

Installation de Owncloud

Le site de Owncloud propose un script d’installation automatique.

  • Téléchargement du script d’installation :
  • cd /var/www/
    mkdir cloud
    cd cloud
    wget https://download.owncloud.org/community/owncloud-7.0.4.tar.bz2
    tar -xvjf owncloud-7.0.4.tar.bz2
    chown -R www-data:www-data ./cloud/
    
  • Relance du serveur Nginx pour les prendre en compte le nouveau virtualhost :
  • service nginx restart
    
  • Se connecter au serveur via un navigateur web, saisir l’url du serveur suivie de setup-owncloud.php: https://domaine.tld/setup-owncloud.php
  • Accepter le certificat :
    cloud-01

    Cliquer sur « Next »
    cloud-02

    Au choix, créer un répertoire de destination ou installer dans le répertoire courant :
    cloud-03

    Remplir les champs et cliquer sur « Finish Setup » :
    cloud-07

    Installation terminée, le système propose de télécharger des clients (cliquer sur la petite croix en haut à droite) :
    cloud-08

Installation Client Ownclound

  • Pour Android
  • Version 1.6.2 – Added on 2014-12-04

    wget https://f-droid.org/repo/com.owncloud.android_10600200.apk
    

    Puis transférer et installer l’apk sur le smartphone.

  • Pour GNU/linux
  • ArchLinux / Manjaro :

    yaourt -S owncloud-client
    

    Autres distributions : voir ce lien

Configuration du client Owncloud

La configuration et l’utilisation du client sous Android est très simple :

  • Saisir l’url du serveur Owncloud et les identifiants :
  • Screenshot_2014-12-29-13-05-12

  • Accepter le certificat :
  • Screenshot_2014-12-29-13-07-54

  • Fini :
  • Screenshot_2014-12-29-13-18-14

Idem avec le client sous GNU/Linux :

  • Ouvrir le client :
  • owncloud-client-linux

  • Saisir l’url du serveur Owncloud :
  • cloud-client-01

  • Accepter le certificat :
  • cloud-client-02

  • Saisir les identifiants pour se connecter :
  • cloud-client-03

  • Synchroniser avec le serveur :
  • cloud-client-04

  • Choisir le contenu à synchroniser :
  • cloud-client-05

  • Terminé !
  • cloud-client-06

Partager l'article :





fred

"Dire que l'on s'en fiche du droit à la vie privée sous prétexte qu'on a rien à cacher, c'est comme déclarer que l'on se fiche du droit à la liberté d'expression sous prétexte qu'on a rien à dire." Edward Snowden

2 commentaires

  1. Petite erreur: après le wget, il faut décompresser l’archive avant de faire un chown

  2. Merci Barikad !
    petit oubli de ma part, qui a toute son importance :-)

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *