• Passer à la navigation principale
  • Passer au contenu principal
  • Passer à la barre latérale principale
  • Passer au pied de page
Hotfirenet

Hotfirenet

le blog d'un papa Geek

  • Actualités info
  • Domotique
    • Jeedom
  • Catégories
    • Comment faire
    • Développement
    • Edito
    • Multimédia
    • Retour d’expérience

Installer et configurer Owncloud 7 Debian ou Raspbian sous Nginx

On ne présente plus Owncloud, qui est une alternative a dropbox, google drive et microsoft onedrive. Voici un peu résumé de l’installation de cette outil sur votre raspberry-pi, vps ou dédié tournant sous Debian avec le serveur Nginx, PHP5-FPM et Mariadb.

Petite nouveauté, vous pouvez retrouver un sondage en bas de page, si vous avez 30 secondes a perdre n’hésitez pas !

Installation

Les pré-requis

  • Avoir une machine linux avec Debian ou Raspbian,
  • avoir mis en place un serveur web avec PHP,
  • une base de données,
  • un certificat ssl

Avoir installer les paquets suivants:

sudo apt-get update
sudo apt-get install php5-gd php5-json php5-mysql php5-curl php5-intl php5-mcrypt php5-imagick

Récupérer les sources

Je ne parlerai pas de l’installation depuis un paquet Debian car il nous aurait fallut un serveur web apache et non Nginx, je vous laisse faire une recherche sur Google pour trouver la procédure.

Première possibilité

Le tout automatique, oui c’est possible !! mais il faut avoir configurer le virtualhost et la base de données. je l’explique un peu plus bas.

se placer dans le répertoire /var/www/ et lancer la seule et unique commande:

wget -N "https://download.owncloud.com/download/community/setup-owncloud.php"

Il vous est possible de créer un répertoire au préalable, mais ce n’est pas obligé car le setup vous proposera si vous le souhaitez car celui-ci le fera à votre place.

[fusion_builder_container hundred_percent= »yes » overflow= »visible »][fusion_builder_row][fusion_builder_column type= »1_1″ background_position= »left top » background_color= » » border_size= » » border_color= » » border_style= »solid » spacing= »yes » background_image= » » background_repeat= »no-repeat » padding= » » margin_top= »0px » margin_bottom= »0px » class= » » id= » » animation_type= » » animation_speed= »0.3″ animation_direction= »left » hide_on_mobile= »no » center_content= »no » min_height= »none »]

Welcom

Petite erreur de droits sur le répertoire

Définition du répertoire courant

Download des sources Ok prochaine étape l'installation

Seconde possibilité

Le faire à la main, mais si c’est facile tout est plutôt bien expliqué la documentation.

L’url pour télécharger se trouve sur cette page.

sudo wget https://download.owncloud.org/community/owncloud-7.0.2.tar.bz2

Nous avons donc une archive qu’il va falloir extraire:

sudo tar -xjf owncloud-7.0.2.tar.bz2

Voila rien de plus pour le moment.

Troisième possibilité

Nous allons utiliser Git ce qui permet de mettre à jour les sources plus régulièrement. Avez vous Git ?

Non alors un simple:

sudo apt-get update
sudo apt-get install git

et utiliser ces commandes pour obtenir le même résultat que l’archive ci-dessus:

sudo git clone -b stable7 https://github.com/owncloud/core.git owncloud
sudo git clone -b stable7 https://github.com/owncloud/3rdparty.git owncloud/3rdparty
sudo git clone -b stable7 https://github.com/owncloud/documents.git owncloud/apps/documents
sudo git clone -b stable7 https://github.com/owncloud/contacts.git owncloud/apps/contacts
sudo git clone -b stable7 https://github.com/owncloud/bookmarks.git owncloud/apps/bookmarks
sudo git clone -b stable7 https://github.com/owncloud/calendar.git owncloud/apps/calendar
sudo git clone -b stable7 https://github.com/owncloud/gallery.git owncloud/apps/gallery
sudo git clone -b stable7 https://github.com/owncloud/updater.git owncloud/apps/updater
sudo git clone -b stable7 https://github.com/owncloud/apps.git owncloud/apps2
sudo git clone https://github.com/owncloud/news.git owncloud/apps2/news
sudo git clone https://github.com/owncloud/maps.git owncloud/apps2/maps
sudo git clone https://github.com/owncloud/mozilla_sync.git owncloud/apps2/mozilla_sync
sudo git clone https://github.com/owncloud/notes.git owncloud/apps2/notes

nous avons donc les sources de Owncloud dans le répertoire /var/www/ , si vous suivez cette solution ou la se seconde solution il ne reste plus qu’a:

  • Créer un répertoire qui contiendra toute les données,
  • donner les droits 770 au répertoire data,
  • donner les droits d’écriture au groupe,
  • changer le user et le groupe de chaque fichier et dossier de Owncloud.
sudo mkdir owncloud/data
sudo chmod 770 owncloud/data
sudo chmod g+w owncloud/config
sudo chown -R www-data:www-data ./

[poll id= »2″]

Mise en place de owncloud sur le serveur

Cette étape est valable pour les 3 solutions décrites ci-dessus.

Virtualhost de Nginx

Toujours sur la même page d’instruction d’installation l’équipe de Owncloud nous mets à disposition la configuration d’un virtualhost pour Nginx:

upstream php-handler {
        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;
        }

}

On pense au lien symbolique:

sudo ln -s /etc/nginx/sites-available/cloud.example.com /etc/nginx/sites-enabled/cloud.example.com

 PHP

Nous allons faire une petite du php.ini pour autoriser l’upload de gros gros fichiers sur notre cloud.

Les paramètres à modifier sont:

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

 La base de données

nous allons créer une base, un utilisateur, lui affecter tous les droits sur cette base et recharger les privilèges.

CREATE DATABASE example_cloud;
CREATE USER 'user_examplecloud'@'localhost' IDENTIFIED BY 'fdsfedserez54r4ezr7ez';
GRANT ALL PRIVILEGES ON example_cloud.* TO 'user_examplecloud'@'localhost';
FLUSH PRIVILEGES;

 La fin de l’installation

Cette partie est commune a toutes les solutions présentées ci-dessus.

Welcome to install

Les renseignements habituels

L'installation est OK

Bienvenue sur votre nuage

 

Les fichiers et page pricipale

Les applis mises à dispos

Vos documents

Compatible avec Word

Un calendrier avec ajout d'événement

Vos albums photos

Les photos de l'album

Vos contacts

Ajout d'un contact

Vos favoris

Les applications disponnibles

Le panel utilisateur avec le lien pour l'administration

Les utilisateurs et droits

le panel admin un peu plus bas

Configuration

Le cron

configuration-le-cron

un petit :

sudo crontab -e

 

# minute heure jour mois jour de la semaine
# +---------minute (0-59)
# | +-------heure (0-23)
# | | +-----jour du mois (1-31)
# | | | +---mois (1-12)
# | | | | +-jour de la semaine (0-7) sunday=0 or 7
# | | | | |
# - - - - -
# m h d m d
# 
*/5 * * * *	/usr/bin/php /var/www/owncloud/cron.php

 Les mails

J’ai eu ce message d’erreur lorsque j’ai essayé de m’envoyer un mail pour vérifier que tout fonctionne:

Could not instantiate mail function.

Deux jours pour trouver la solution !!! Et ça vient d’une petite bêtise.

En effet lors de l’install de Nginx avec PHP-FPM je n’avais pas renseigné dans le php.ini le smtp, du coup j’ai tenté les différentes possibilités dans Owncloud pour l’envoie de mail (mail fonction PHP, Sendmail et SMTP).

Le truc c’est qu’Owncloud a gardé dans le config.php des valeurs !! Donc même après avoir le php.ini j’avais l’erreur. la solution a été de virer tout ce qui touchait à la config du mail dans le fichier config/config.php.

Voila voila, il ne reste plus qu’a vous amusez, ne vous inquiétez pas d’ici peu il y aura de nouveaux articles sur Owncloud.[/fusion_builder_column][/fusion_builder_row][/fusion_builder_container]

À propos Djo

Autodidacte, curieux et motivé.

Interactions du lecteur

Commentaires

  1. enr37 dit

    1 septembre 2014 à 14 h 22 min

    merci et sympa comme tuto car pas commun. j’avais essayé entre iphone et owncloud sur xpenology mais j’ai super galéré et suis alors parti vers synobox/dropbox dommage car owncloud me paraissait plus sécurisé et directement chez moi.
    aujourdhui sous android, je devrais peut etre retenter mais synobox est tellement facile d’accès … ^^

    Répondre
    • Djo dit

      1 septembre 2014 à 15 h 27 min

      Je ferais un tuto prochainement pas avec un syno avec une distrib tu verras …

      Répondre
      • Enr37 dit

        2 septembre 2014 à 22 h 24 min

        J ai hate. Merci

        Répondre
  2. enr37 dit

    1 septembre 2014 à 14 h 22 min

    merci et sympa comme tuto car pas commun. j’avais essayé entre iphone et owncloud sur xpenology mais j’ai super galéré et suis alors parti vers synobox/dropbox dommage car owncloud me paraissait plus sécurisé et directement chez moi.
    aujourdhui sous android, je devrais peut etre retenter mais synobox est tellement facile d’accès … ^^

    Répondre
    • Djo dit

      1 septembre 2014 à 15 h 27 min

      Je ferais un tuto prochainement pas avec un syno avec une distrib tu verras …

      Répondre
      • Enr37 dit

        2 septembre 2014 à 22 h 24 min

        J ai hate. Merci

        Répondre
  3. Owned dit

    22 janvier 2015 à 0 h 31 min

    Merci pour cet excellent tutoriel cependant une question car je ne trouve pas la solution….

    Je suis sous Nginx et comment résoudre :
    Votre dossier de données et vos fichiers sont probablement accessibles depuis internet. Le fichier .htaccess ne fonctionne pas. Nous vous recommandons vivement de configurer votre serveur web de façon à ce que ce dossier de données ne soit plus accessible, ou bien de le déplacer à l’extérieur de la racine du serveur web.

    Cordialement,

    Répondre
    • Djo dit

      22 janvier 2015 à 8 h 15 min

      Merci, je ne suis pas sur d’avoir tout compris.
      sur Nginx il n’y a pas de .htaccess, ce fichier est destiné au serveur Apache.
      Et en gros si j’essaie de traduire, je pense qu’ils veulent que tu déplaces le répertoire data hors de l’environnement web.

      Répondre
      • Owned dit

        22 janvier 2015 à 11 h 19 min

        Bonjour,

        vu que rien n’est expliqué, difficile de savoir ce qu’il faut faire….

        Cependant, une joli page blanche au réveil…..

        Répondre
        • Jul dit

          26 janvier 2015 à 0 h 15 min

          Yo !

          Si tu as bien la définition de ce bloc « location » dans la config d’nginx normalement ça craint rien (il est inclut dans la conf nginx proposée par owncloud) :

          location ~ ^/(data|config|.ht|db_structure.xml|README) {
          deny all;
          }

          Avec apache je suppose que c’est un .htaccess généré par owncloud qui empêche l’accès a /data, le problème c’est que pour nginx il faut le définir dans la conf du vhost or owncloud n’a aucun contrôle dessus. Du coup ils te préviennent que tu exposes potentiellement ton dossier data/ (en sachant que si tu utilises leur config pour nginx ça craint rien). Le mieux ça reste tout de même de suivre leur conseil et celui de Djo en le déplaçant hors du webroot.

          Répondre
          • Djo dit

            27 janvier 2015 à 8 h 35 min

            Exactement, Jul, mais je ne sais pas si c’est que Owned cherche comme réponse.
            Ce qui est sur c’est que dans la config Nginx que j’ai mis dans l’article le répertoire data est inaccessible.

          • Owned dit

            27 janvier 2015 à 10 h 01 min

            Yo, sauf que la documentation est HS ayant eu un support de leur pars lol

            J’ai du refait le vhost…

            Tout fonctionne bien, j’ai déplacé le répertoire data pour finir.

            Juste les applications qui bugs, celles qu’on veut activer, aucune ne fonctionne à partir du pannel chez moi…. J’ai refait 5 fois l’installation et toujours pareil donc ? 😡

  4. Owned dit

    22 janvier 2015 à 0 h 31 min

    Merci pour cet excellent tutoriel cependant une question car je ne trouve pas la solution….

    Je suis sous Nginx et comment résoudre :
    Votre dossier de données et vos fichiers sont probablement accessibles depuis internet. Le fichier .htaccess ne fonctionne pas. Nous vous recommandons vivement de configurer votre serveur web de façon à ce que ce dossier de données ne soit plus accessible, ou bien de le déplacer à l’extérieur de la racine du serveur web.

    Cordialement,

    Répondre
    • Djo dit

      22 janvier 2015 à 8 h 15 min

      Merci, je ne suis pas sur d’avoir tout compris.
      sur Nginx il n’y a pas de .htaccess, ce fichier est destiné au serveur Apache.
      Et en gros si j’essaie de traduire, je pense qu’ils veulent que tu déplaces le répertoire data hors de l’environnement web.

      Répondre
      • Owned dit

        22 janvier 2015 à 11 h 19 min

        Bonjour,

        vu que rien n’est expliqué, difficile de savoir ce qu’il faut faire….

        Cependant, une joli page blanche au réveil…..

        Répondre
        • Jul dit

          26 janvier 2015 à 0 h 15 min

          Yo !

          Si tu as bien la définition de ce bloc « location » dans la config d’nginx normalement ça craint rien (il est inclut dans la conf nginx proposée par owncloud) :

          location ~ ^/(data|config|.ht|db_structure.xml|README) {
          deny all;
          }

          Avec apache je suppose que c’est un .htaccess généré par owncloud qui empêche l’accès a /data, le problème c’est que pour nginx il faut le définir dans la conf du vhost or owncloud n’a aucun contrôle dessus. Du coup ils te préviennent que tu exposes potentiellement ton dossier data/ (en sachant que si tu utilises leur config pour nginx ça craint rien). Le mieux ça reste tout de même de suivre leur conseil et celui de Djo en le déplaçant hors du webroot.

          Répondre
          • Djo dit

            27 janvier 2015 à 8 h 35 min

            Exactement, Jul, mais je ne sais pas si c’est que Owned cherche comme réponse.
            Ce qui est sur c’est que dans la config Nginx que j’ai mis dans l’article le répertoire data est inaccessible.

          • Owned dit

            27 janvier 2015 à 10 h 01 min

            Yo, sauf que la documentation est HS ayant eu un support de leur pars lol

            J’ai du refait le vhost…

            Tout fonctionne bien, j’ai déplacé le répertoire data pour finir.

            Juste les applications qui bugs, celles qu’on veut activer, aucune ne fonctionne à partir du pannel chez moi…. J’ai refait 5 fois l’installation et toujours pareil donc ? 😡

Laisser un commentaire Annuler la réponse

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

Barre latérale principale

Catégories

  • Actualités info
  • At-Home
  • Bon plan
  • Comment faire
  • Développement
  • Domotique
  • Edito
  • High-Tech
  • Jeedom
  • Multimédia
  • Open-Source
  • Retour d’expérience
Infomaniak, l'hebergeur vert

Footer

A PROPOS

Hotfirenet.Com est un blog Geek et High-Tech qui touche au développement informatique, nouvelles technologies, Web, domotique, drones, impression 3D .... En savoir plus…

Djo: Afficher mes articles de blog

PSSST, et si on bossait ensemble ?

Mes compétences ? Le web et le développement informatique. Besoin d’un développement de sites web ? de rédaction de contenu web, d’une expertise en SEO et médias sociaux ? Ou bien vous souhaitez me proposer un partenariat ?

Tous droits réservés © 2021

  • Mentions légales
  • Contact