[Raspberry Pi 3] Installation (revision2) d’un serveur ownCloud

 

Installation (revision2) d’un serveur ownCloud sur Raspberry Pi 3
Version de l’OS Raspbian GNU/Linux 10.2 (buster)
Version d’Owncloud 10.3.2

 

Article original Publié le : 8 février 2020

Mise a jour le :

 

J’ai perdu ma vm de test, je profite donc pour rafraîchir ce tuto avec la dernière version de l’appli, de php ..
L’os passe également en version 10, Debian Buster qui embarque nativement la version php 7.3.

 

 

 

 

 

 

 

 

 

Pre-requis

  • Disposer du paquet sudo sur Debian
  • Si pas de serveur dns local, déclarer l’ip/nom dans le fichier hosts
  • Créer une entrée dns chez le registrar pour la génération du certificat
  • Ouvrir les ports 80/443 sur la box/fw pour la génération du certificat

 

 

Préparation de l’environnement

  • Mise a jour du système

 

  • Installation de PHP 7.3

Liste des extensions requises (page 69)
https://doc.owncloud.com/server/10.3/admin_manual/ownCloud_Admin_Manual.pdf

 

  • Installation de Mariadb 10

 

  • Installation de Certbot

Pour pouvoir générer le certificat https

 

  • Installation de Nginx

Par choix, préférence a Apache

 

  • Installation de quelques outils utiles

/!\ Pour ne pas galérer avec le copier/coller dans vim, voir cet article

 

 

Installation d’Owncloud

Ajoutez la clé GPG ownCloud au trousseau de clé d’apt, puis ajouter le dépôt au source.list

 

Avant d’installer le paquet ownCLoud, il faut installer le transport https.

 

Puis recharger les paquets et installer ownCloud

 

 

Conf de l’environnement

  • Sécuriser a minima Mariadb

 

Se connecter a l’aide du mot de passe préalablement crée

 

Créer la db, l’utilisateur, le mot de passe et allouer les privileges.

/!\ Dans l’exemple ci dessus
La base de données s’appelle db_owncloud
Tous les droits sont FULL sur la db db_owncloud pour l’utilisateur user_owncloud et son mot de passe est password_owncloud
Pour en savoir plus sur les droits Mysql: https://dev.mysql.com/doc/refman/5.7/en/privileges-provided.html

 

 

Configuration du vhost

Supprimer le vhost par défaut et son lien

 

Création du vhost ownCloud

 

Éditer le vhost et ajouter le contenu ci dessous, les parties en gras sont a adapter
/!\ Ce vhost est fonctionnel mais a peaufiner/adapter notamment sur les ciphers, tls, headers ..

 

Tester et recharger la conf

 

 

Génération du certificat Let’s Encrypt

/!\ Il faut que les ports 80 et 443 ne soit pas utilisés car ils sont nécessaires a Certbot pour la génération du certificat, pour cela stopper le service Nginx qui va libérer les ports.

/!\ Ne pas oublier comme ennoncer dans le pré-requis d’avoir créer en amont une entrée dns et d’avoir ouvert les ports sur la box/fw

 

Faire un dig pour verifier que le record renvoi bien sur l’ip public

 

Pour générer le certificat

 

Utiliser l’option 1

 

Renseigner un émail valide pour recevoir l’alerte d’expiration du certificat

 

Accepter le contrat pour continuer

 

Voulez vous partager votre émail ?

 

Entrer le nom de domaine pour la création du certificat

 

Une fois le certificat généré, les fichiers se trouve par défaut dans le répertoire /etc/letsencrypt/live/srv-owncloud.izero.fr/

Il faut ajouter le certificat et la clé privée dans le vhost précédemment crée dans la balise ssl server

 

Demarrer Nginx et profiter pour redemarrer le service php7.3-fpm

 

Normalement tout doit etre fonctionnel, un curl doit renvoyé un 200

 

/!\ Nota: pour des raisons de securité, on evite de faire apparaitre les versions des outils, des applis ..
Pour cacher la version d’Nginx, éditer le vhost et tout en bas ajouter la ligne ci dessous, puis recharger le service

 

Refaire un curl, la version a disparue

 

 

Lancement d’ownCloud

Lancer un navigateur et renseigner les champs

1 – Créer le compte administrateur et son mot de passe

2 – Le chemin par défaut des donnees utilisateurs /var/www/owncloud/data

3 – Renseigner les infos de la db préalablement crées
Je n’ai choisie que le module “php7.3-mysql” a l’installation, c’est donc la seul SGBD disponible.
Son port par défaut est 3306 (donc localhost:3306)

4 –Terminer l’installation

 

Iil ne reste plus qu’a se connecter avec le login/mdp crée

 

 

FAQ

php ne semble pas être configuré de manière à récupérer les valeurs des variables d’environnement. Le test de la commande getenv(“PATH”) retourne seulement une réponse vide. Veuillez consulter la documentation d’installation pour savoir comment configurer php sur votre serveur, en particulier en cas d’utilisation de php-fpm.

Pour la correction éditer le fichier www.conf et dé-commenter les lignes suivantes

Recharger php7.3-fpm

 

L’en-tête HTTP “Strict-Transport-Security” n’est pas configurée à “15552000” secondes. Pour renforcer la sécurité nous recommandons d’activer HSTS comme décrit dans notre Guide pour le renforcement et la sécurité.

Pour la correction éditer le vhost et dé-commenter la ligne Strict-Transport-Security

Recharger Nginx

 

 

Voila le serveur est operationnel,
Il y a un quelques liens et un peu d’administration detaillé sur l’ancienne doc

 

 

Rating: 5.0/5. From 4 votes.
Please wait...
Voting is currently disabled, data maintenance in progress.

31 thoughts to “[Raspberry Pi 3] Installation (revision2) d’un serveur ownCloud”

  1. Bonjour,
    Merci pour votre tuto, magnifique !

    Quand j’arrive à la fin du tuto et que j’appelle mon url, c’est la page “Welcome to nginx” qui s’affiche. Savez vous d’ou peut provenir le problème ?

    Merci

    No votes yet.
    Please wait...
    Voting is currently disabled, data maintenance in progress.
    1. Bonjour,

      Vérifier si le simlink du vhost est bien crée dans /etc/nginx/sites-enabled
      Vérifier le status du service php7.3-fpm et le restart
      Regarder les logs d’Nginx accès et errors il doit y avoir une trace

      Rating: 5.0/5. From 1 vote.
      Please wait...
      Voting is currently disabled, data maintenance in progress.
      1. Merci beaucoup pour votre réponse, j’ai une autre erreur mais je pense que j’ai du loupé quelque chose dès le début. Pour résumer, j’ai créé un dns auprès de mon OVH qui pointe vers mon ip publique. Aussi sur ma box j’ai fait rediriger les ports 80 et 443 sur mon raspberry.

        Est ce que je dois faire quelque chose d’autre sur ma box pour la partie DNS?

        No votes yet.
        Please wait...
        Voting is currently disabled, data maintenance in progress.
        1. Quel est ton erreur ?
          Tu peux renseigner ton fichiers hosts sur ta machine pour tester l’url de ton raspberry

          Rating: 5.0/5. From 1 vote.
          Please wait...
          Voting is currently disabled, data maintenance in progress.
          1. J’ai recommencé le tuto de A à Z et ça a fonctionné nickel !

            Merci beaucoup vous assurez !

            Rating: 5.0/5. From 1 vote.
            Please wait...
            Voting is currently disabled, data maintenance in progress.
          2. Top .. bonne continuation

            No votes yet.
            Please wait...
            Voting is currently disabled, data maintenance in progress.
  2. Bonjour,

    ca as l’air pas mal ce petit tuto, j’ai l’intention de mettre owncloud sur mon rpi4 avec cette procédure mais j’ai une question :

    – j’ai déjà un serveur jeedom sur un autre rpi4, vers lequel j’ai déjà fait une redirection du port 443 pour l’accès à la page web du serveur jeedom, est ce que je peux changer le port d’utilisation du serveur owncloud ?

    No votes yet.
    Please wait...
    Voting is currently disabled, data maintenance in progress.
    1. Bonjour,

      Rien d’impossible avec Nginx, dans le vhost suffit de changer le port ssl

      No votes yet.
      Please wait...
      Voting is currently disabled, data maintenance in progress.
      1. Très bien, je vais m’attaquer à cela

        merci !

        No votes yet.
        Please wait...
        Voting is currently disabled, data maintenance in progress.
  3. Bonjour BEF,
    Excellent tuto, je recommande.

    No votes yet.
    Please wait...
    Voting is currently disabled, data maintenance in progress.
    1. Merci

      No votes yet.
      Please wait...
      Voting is currently disabled, data maintenance in progress.
  4. Bonjour BEF,
    Aurais-tu une procédure permettant de stocker les données sur un disque dur externe (NTFS).
    Procédure de montage du disque et configuration du RPI pour qu’owncloud puisse stocker les données sur celui-ci?
    En te remerciant par avance.

    No votes yet.
    Please wait...
    Voting is currently disabled, data maintenance in progress.
    1. Bonjour,

      Non je n’ai pas eu le besoin d’utiliser un disque en ntfs.
      A l’occasion je testerais.

      No votes yet.
      Please wait...
      Voting is currently disabled, data maintenance in progress.
      1. Bonjour,
        Bravo pour le tuto ! Je l’ai suivi pas à pas, et ça marche à merveille, alors que je suis vraiment débutant sous Linux. Félicitations pour vos qualités pédagogiques !
        J’ai juste une question, liée à celle ci-dessus : je souhaiterais pouvoir relier un disque externe (voire plusieurs à mon raspbian, plutôt en ntfs, et y accéder depuis le cloud. Quelle serait la procédure ?
        Merci et encore bravo !

        No votes yet.
        Please wait...
        Voting is currently disabled, data maintenance in progress.
        1. Bonjour,
          Merci, je n’ai pas encore eu besoin de brancher un disque externe, c’est quelque chose que je dois voir prochainement
          rester en ligne !

          No votes yet.
          Please wait...
          Voting is currently disabled, data maintenance in progress.
  5. Bonjour,
    j’ai un soucis lors de l’installation (dernière phase…)

    1 – Créer le compte administrateur et son mot de passe
    Je mets ici un nom (truc_machin) et un mot de passe (mdp1) par exemple

    2 – Vérifier le chemin de la db, par défaut /var/www/owncloud/data
    Je mets : /var/www/owncloud/data

    3 – Renseigner les infos de la db préalablement crées
    user_owncloud
    mdp1
    db_owncloud
    localhost:3306

    Lors de la validation, j’ai un message d’erreur :
    Error while trying to create admin user: Failed to connect to the database: An exception occurred in driver: SQLSTATE[HY000] [1045] Access denied for user ‘user_owncloud’@’localhost’ (using password: YES)

    Où est-ce que je me plante ???
    Merci pour votre aide !

    No votes yet.
    Please wait...
    Voting is currently disabled, data maintenance in progress.
    1. ok j’ai trouvé…
      Je n’avais pas changé le nom d’utilisateur et le mot de passe lors de la création de la base, enfin surtout l’attribution des droits…

      En tout cas merci pour ce bon tuto !!!

      No votes yet.
      Please wait...
      Voting is currently disabled, data maintenance in progress.
      1. bien vu

        No votes yet.
        Please wait...
        Voting is currently disabled, data maintenance in progress.
  6. salut, j’ai suivit le tuto a la lettre mais quand j’essaye de relancer nguix après avoir utiliser certbot ça met le message
    ob for nginx.service failed because the control systemctl status nginx.service
    exited with error code.
    See “systemctl status nginx.service” and “journalctl -xe” for details.
    Je tape donc la commande systemctl status nginx.service
    ● nginx.service – A high performance web server and a reverse proxy server
    Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
    Active: failed (Result: exit-code) since Fri 2020-04-17 15:31:05 CEST; 23s ago
    Docs: man:nginx(8)
    Process: 16597 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=1/FAILURE)

    avril 17 15:31:04 raspberrypi systemd[1]: Starting A high performance web server and a reverse proxy server…
    avril 17 15:31:05 raspberrypi nginx[16597]: nginx: [emerg] BIO_new_file(“/etc/letsencrypt/live/srv-owncloud.izero.fr/fullchain.pem”) failed (SSL: error:02001002:system
    avril 17 15:31:05 raspberrypi nginx[16597]: nginx: configuration file /etc/nginx/nginx.conf test failed
    avril 17 15:31:05 raspberrypi systemd[1]: nginx.service: Control process exited, code=exited, status=1/FAILURE
    avril 17 15:31:05 raspberrypi systemd[1]: nginx.service: Failed with result ‘exit-code’.
    avril 17 15:31:05 raspberrypi systemd[1]: Failed to start A high performance web server and a reverse proxy server.
    lines 1-12/12 (END)
    savez vous d’ou viens ce problème?
    sinon super tuto

    No votes yet.
    Please wait...
    Voting is currently disabled, data maintenance in progress.
    1. Hello
      l’erreur est dans la conf Nginx, tu cherches le certificat avec mon hostname
      avril 17 15:31:05 raspberrypi nginx[16597]: nginx: [emerg] BIO_new_file(“/etc/letsencrypt/live/srv-owncloud.izero.fr/fullchain.pem”)
      Dans la conf Nginx cela devrait être /etc/letsencrypt/live/ta_machine.ton_domaine/fullchain.pem
      il faut posséder son propre nom de domaine pour pouvoir générer son certificat et donc le renseigner

      No votes yet.
      Please wait...
      Voting is currently disabled, data maintenance in progress.
  7. tuto d’une clarté exceptionnelle, merci infiniement !

    No votes yet.
    Please wait...
    Voting is currently disabled, data maintenance in progress.
    1. Merci pour ton retour 🙂

      No votes yet.
      Please wait...
      Voting is currently disabled, data maintenance in progress.
  8. Salut, j’ai une erreur avec cerbot. Quand je veux faire le certificat cela ne fonctionne pas.

    Domain: nicoseedbox.fr
    Type: unauthorized
    Detail: Invalid response from
    http://nicoseedbox.fr/.well-known/acme-challenge/jAbHwVmabBIj_YvUVYUM5vupqV1-rT5TiAt4DVOlaHY
    [2001:8d8:100f:f000::218]: 204

    To fix these errors, please make sure that your domain name was
    entered correctly and the DNS A/AAAA record(s) for that domain
    contain(s) the right IP address.

    J’ai pourtant suivie le tuto à la lettre :/

    Merci

    No votes yet.
    Please wait...
    Voting is currently disabled, data maintenance in progress.
    1. hello
      Un dig ne me renvoi pas d’adresse IP derrière le ndd, peut être une piste
      Sinon voir le forum de Let’s encrypt, divers solution sont apportés. https://www.google.com/search?q=certbot+unauthorizedDetail%3A+Invalid+response+from

      No votes yet.
      Please wait...
      Voting is currently disabled, data maintenance in progress.
  9. Bonjour,
    J’ai un souci dans la configuration.
    Je n’ai pas de nom de domaine donc j’ai mis mon raspberry en DMZ et j’essaie d’y accéder par mon IP publique.
    J’ai fait la redirection du 443 vers mon raspberry.
    Bien entendu, c’est un échec.
    Mon navigateur m’indique bien la redirection vers localhost mais “localhost refuse la connexion”
    Bien sur, n’ayant pas de nom de domaine, j’ai du sauter toute la partie Certificat.

    Une idée de mon erreur ?

    No votes yet.
    Please wait...
    Voting is currently disabled, data maintenance in progress.
    1. Bonjour,

      Cela fonctionne avec l’ip sans certificat,
      voir dans le vhost ou si il n’y a pas un fw sur la box
      forcer l’ip public/nom dans le fichier hosts peut etre

      No votes yet.
      Please wait...
      Voting is currently disabled, data maintenance in progress.
  10. Salut !

    Petit souci avec ton tuto : sudo apt install owncloud-file ne donne rien

    Avec apt install owncloud ca me renvoie ca :

    pi@site:~ $ sudo apt-get install owncloud
    Lecture des listes de paquets… Fait
    Construction de l’arbre des dépendances
    Lecture des informations d’état… Fait
    Certains paquets ne peuvent être installés. Ceci peut signifier
    que vous avez demandé l’impossible, ou bien, si vous utilisez
    la distribution unstable, que certains paquets n’ont pas encore
    été créés ou ne sont pas sortis d’Incoming.
    L’information suivante devrait vous aider à résoudre la situation :

    Les paquets suivants contiennent des dépendances non satisfaites :
    owncloud : Dépend: libjs-jcrop mais il n’est pas installable
    Dépend: libjs-jquery-minicolors (< 2~) mais ne sera pas installé
    Dépend: php-assetic mais ne sera pas installé
    Dépend: php-doctrine-dbal (< 2.5) mais 2.9.2-1 devra être installé
    Dépend: php-opencloud mais il n'est pas installable
    Dépend: php-pimple (= 5.3.8) mais il n’est pas installable
    Dépend: php5-cli mais il n’est pas installable
    Dépend: php5-gd mais il n’est pas installable
    Dépend: php5-json mais il n’est pas installable
    Dépend: php5-mysql mais il n’est pas installable ou
    php5-pgsql mais il n’est pas installable ou
    php5-sqlite mais il n’est pas installable
    Recommande: exim4 mais ne sera pas installé ou
    mail-transport-agent
    Recommande: php-aws-sdk (= 1.1.0~RC2-2~) mais ne sera pas installé
    Recommande: php-dropbox mais ne sera pas installé
    Recommande: php-google-api-php-client (< 1) mais ne sera pas installé
    Recommande: php5-apcu mais il n'est pas installable ou
    php5-xcache mais il n'est pas installable
    Recommande: php5-curl mais il n'est pas installable
    Recommande: php5-imap mais il n'est pas installable
    Recommande: php5-intl mais il n'est pas installable
    Recommande: php5-ldap mais il n'est pas installable
    Recommande: php5-mcrypt mais il n'est pas installable
    Recommande: smbclient mais ne sera pas installé
    E: Impossible de corriger les problèmes, des paquets défectueux sont en mode « garder en l'état ».

    No votes yet.
    Please wait...
    Voting is currently disabled, data maintenance in progress.
  11. Je me reponds tout seul !

    Il faut utiliser sudo apt-get intall owncloud-complete-files

    No votes yet.
    Please wait...
    Voting is currently disabled, data maintenance in progress.
    1. merci pour le retour

      No votes yet.
      Please wait...
      Voting is currently disabled, data maintenance in progress.
  12. bon je crois que j’ai réussi à arriver jusqu’au lancement d’owncloud et là, gros fail : j’ai oublié de configurer le répertoir et la base de donnée !
    Je ne retrouve pas ces paramètres ensuite….
    qu’est que je dois faire svp ?
    Je suis ultra débutant, je suis juste arrivé ici avec des copié coller et de la patience !
    Merci, le tuto a l’air top !

    No votes yet.
    Please wait...
    Voting is currently disabled, data maintenance in progress.
    1. Bonjour
      j’ai oublié de configurer le répertoir et la base de donnée !
      le mieux est de tout refaire

      No votes yet.
      Please wait...
      Voting is currently disabled, data maintenance in progress.

Laisser un commentaire

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

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.