Réglage de Nextcloud 12

Nextcloud 12 et Raspberry Pi

Réglages de Nextcloud 12

Finalisation de Nextcloud

Dans un navigateur web, aller à :
nextcloud-myweb.duckdns.org (remplacer par l'adresse de votre serveur web)

qui va alors ouvrir la fenêtre suivante :

configuration nextcloud

Remplir les différentes cartouches :

Username : définir le nom de l'utilisateur principal qui sera administrateur

Password : rentrer un mot de passe complexe (il faudra le taper à chaque connexion sur nextcloud)

Storage & database : cliquer sur la flèche à droite et dans Data folder, remplacer par /var/www/data si l'on a modifié le répertoire des données comme indiqué dans la page précédente. Sinon laisser le chemin par défaut.

Si plusieurs modèles de database sont proposés, choisir MySQL/MariaDB

Database user : l'utilisateur de la base de données nextcloud défini précédemment (ici adminmyweb)

Database password : le mot de passe donnée lors de la création de la base de données nextcloud (ici password)

Database name : le nom de la base de données précédemment définie (ici nextcloud).

Terminer en cliquant sur "Finish setup".

En cas d'installation interrompue

Il peut arriver que votre installation s'interrompe avant de terminer et affiche une page "Access forbidden".

Dans ce cas, arrêter complètement le Pi (sudo halt).

Redémarrer le Pi et revenir dans un navigateur sur votre page Nextcloud (ici nextcloud-myweb.duckdns.org).

Si vous avez la page de connexion, vous pouvez rentrer votre nom d'administrateur (main_user) et son mot de passe.

Si vous avez de nouveau l'écran de configuration, donner un nouveau nom (Username) sur la cartouche du haut (Create an admin account), puis remplissez à nouveau les autres cartouches normalement.

L'installation devrait maintenant se terminer correctement.

Vérification des paramètres de sécurité

Après l'installation, Nextcloud s'ouvre sur la page d'accueil.

En haut à droite de la fenêtre, cliquer sur la roue dentée des paramètres puis sur Admin.

nextcloud administration

Sur la page qui s'ouvre, vérifier qu'il n'y a pas d'alertes de sécurité. Nextcloud devrait uniquement afficher qu'il n'y a ni cache mémoire configuré, ni cache PHP (OPcache).

Nous remédierons à ces anomalies après.

stretchnov17-03

Cliquer de nouveau sur la roue dentée des paramètres et choisir l'option Personal.

nextcloud 12 onglet personal

Entrer une adresse mail valide (le mot de passe de l'utilisateur principal de nextcloud va nous être demandé). Cette adresse mail servira pour ré-initialiser le mot de passe de nextcloud si nous l'avons perdu.

On change ensuite la langue de l'interface.

nextcloud adresse mail

Modification du fichier de configuration de Nextcloud

Cette manipulation a pour but de s'assurer que les logs de Nextcloud soient bien pris en compte par fail2ban et d'activer la protection contre les attaques de force brute. Par ailleurs, on en profite pour activer un cache mémoire (php-apcu).

lambda_user@myweb:~ $ sudo su 
root@myweb:~ # nano /var/www/nextcloud/config/config.php

 

A la fin du fichier, on rajoute les lignes suivantes avant la ligne contenant la parenthèse finale :


'installed' => true,
'logtimezone' => 'Europe/Paris',
'logfile' => '/var/www/data/nextcloud.log',
'loglevel' => 2,
'log_authfailip' => true,
'memcache.local' => '\OC\Memcache\APCu',
'auth.bruteforce.protection.enabled' => true,
);

 

Après avoir enregistré les modifications :

root@myweb:~ # exit

 

Configuration du cache php (OPcache)

On va modifier le fichier php.ini pour cette configuration (après en avoir fait une copie de sauvegarde)

lambda_user@myweb:~ $  sudo cp /etc/php/7.0/apache2/php.ini /etc/php/7.0/apache2/php.ini.bak
lambda_user@myweb:~ $  sudo nano /etc/php/7.0/apache2/php.ini

 

Dans l'éditeur, aller à la section concernant [opcache] (on peut utiliser Ctrl-w pour faire une recherche sur le terme opcache) et rajouter les lignes indiquées ici en gras :

[opcache]
; Determines if Zend OPCache is enabled
;opcache.enable=0
opcache.enable=1

; Determines if Zend OPCache is enabled for the CLI version of PHP
;opcache.enable_cli=0
opcache.enable_cli=1

; The OPcache shared memory storage size.
;opcache.memory_consumption=64
opcache.memory_consumption=128

; The amount of memory for interned strings in Mbytes.
;opcache.interned_strings_buffer=4 
opcache.interned_strings_buffer=8

; The maximum number of keys (scripts) in the OPcache hash table.
; Only numbers between 200 and 100000 are allowed.
;opcache.max_accelerated_files=2000
opcache.max_accelerated_files=10000


(...)


; How often (in seconds) to check file timestamps for changes to the shared
; memory storage allocation. ("1" means validate once per second, but only
; once per request. "0" means always validate)
;opcache.revalidate_freq=2
opcache.revalidate_freq=1

; Enables or disables file search in include_path optimization
;opcache.revalidate_path=0

; If disabled, all PHPDoc comments are dropped from the code to reduce the
; size of the optimized code.
;opcache.save_comments=1 
opcache.save_comments=1

 

Ctrl-o, Ctrl-x pour enregistrer et quitter.

 

On recharge apache pour prendre en compte les changements :

lambda_user@myweb:~ $ sudo systemctl reload apache2

 

Dans le navigateur, on retourne sur la page Administration.

Il ne doit plus y avoir aucun message d'avertissement mais il est indiqué que Tous les tests ont réussi.

 

stretchnov17-04

Vérification de la sécurité de Nextcloud

Nextcloud propose un scanner de vulnérabilité des installations sur serveur.

Dans un navigateur web, se rendre à l'adresse : https://scan.nextcloud.com/

 

Indiquer l'adresse du serveur et appuyer sur Scan :

nextcloud scanner sécurité

 

On vérifie que l'on atteint la note A, voire A+.

 

 

L'installation de Nextcloud 12 sur Raspberry Pi est maintenant achevée.

105 réponses

  1. Emmanuel dit :

    Bonjour et un grand merci pour ce tuto très complet !

    Je l’ai suivi et tout s’est déroulé comme sur du velour (ou presque)

  2. F. dit :

    Bonjour.
    Je tiens à vous remercier pour ce remarquable Tuto très clair et très bien documenté. Vous avez dû y consacrer beaucoup de temps et cela mérite d’être salué.

    N’ayant aucun compétence dans la programmation de ligne de codes et juste de vagues notions sur linux j’avais passé beaucoup de nuits à essayer d’installer OWNCLOUD sur mon Raspberry Pi 3 avec les différents tuto que j’ai trouvés.
    J’ai fini par renoncer car aucun ne fonctionnait.

    Puis j’ai découvert votre tuto que j’ai scrupuleusement suivi pas à pas.
    Grace à vous je suis parvenu à installer Nextcloud sur mon Raspberry et tout fonctionne de manière semble-t-il sécurisée.
    Vos explications permettent également de commencer à s’initier aux subtilités des lignes de commande et à contrôler un serveur en ssh.
    Encore une fois merci et je vais poursuivre cette formation en découvrant vos autres tuto.
    Bien cordialement.

  3. Sébastien dit :

    Tuto au top ! structuré, limpide…
    Je vais m’en servir à titre perso avec un montage sur un NAS et aussi pour installer un cloud privé dans une école primaire.

    Merci pour votre travail

  4. Pierre dit :

    Bonjour et merci beaucoup !
    Au vu du temps passé, sur mon PI2, pour suivre vos explications, j’imagine le temps qu’il vous a fallu pour rendre un travail tel que celui-ci ! Quel courage, Bravo !
    En ce qui me concerne, j’ai essayé 4 fois (en recommençant chaque fois à zéro), mais toujours un KO qui s’inscrit à la place du OK tant attendu, dans la config. de Duckdns… peut être un conflit avec NO-IP inscrit sur ma box ?…
    Je ne baisse pas les bras 😉

    Merci encore pour ces tutos que vous partagez 🙂

    • SoozX dit :

      Bonjour Pierre,

      Si votre adresse no-ip a un suffixe inscrit sur cette liste :
      https://publicsuffix.org/list/public_suffix_list.dat

      (par exemple no-ip.net)

      dans ce cas, vous pouvez vous en servir pour Nextcloud (pas besoin de duckdns.org dans ce cas).

      Normalement, il ne devrait pas y avoir de problème pour utiliser deux services de DNS dynamiques sur la même adresse IP.

      Après, il faut bien vérifier que votre routeur (la box) dirige bien les accès du port 80 vers l’adresse IP interne du Raspberry Pi comme indiqué dans le chapitre Sécuriser SSH
      https://soozx.fr/nextcloud12-raspberry-stretch/stretch-securisation-du-pi/
      et que vous n’avez pas déjà une redirection de port sur les protocoles 80 et 443 pour un autre serveur web sur votre réseau.

      Enfin, vérifier que dans duck.sh, vous avez bien recopié toute la ligne donnée par duckdns.org

      echo url=”https://www.duckdns.org/update?domains=nextcloud-myweb&token=8(…)b&ip=” | curl -k -o ~/duckdns/duck.log -K –

      et que cela tient bien sur une seule ligne (pas de retour à la ligne dans l’instruction)

      • Pierre dit :

        Bonjour,
        Merci pour votre retour.
        L’erreur (plus exactement, les erreurs) était entièrement de ma faute, d’une part pour avoir été long avant de percuter que la ligne que j’inscrivais, pour DuckDns, était erronée, d’autre part pour avoir fait quelques erreurs de frappe…
        Nextcloud fonctionne maintenant parfaitement bien 🙂
        Seul HIC, si on peut appeler cela un hic, je ne peux pas faire le test de sécurité depuis le site de Nextcloud qui ne trouve pas mon cloud… je suis certain de bien taper l’URL.
        Le principal est que tout fonctionne bien 🙂
        Encore mille mercis à vous !

  5. Chris dit :

    Bonjour, je sèche sur mon pb.
    Je n’arrive pas a supprimer les avertissements opcache décrits dans le tuto ci dessus.J’ai recommencer, vérifier rien y fait!
    Le reboot du pi n’y change rien.
    ma page web administration me sort toujours la même erreur pour opcache.(même ne vidant l’historique et cache du navigateur)
    les modifs dans: /var/www/nextcloud/config/config.php et /etc/php/7.0/apache2/php.ini sont bien restée modifiées tel que demandé
    Les droits sur les dossiers sont:
    -rw-r–r– 1 root root 71214 sept. 28 21:08 php.ini
    -rw-r—– 1 www-data www-data 879 oct. 2 23:14 config.php
    Je ne vois rien dans le journal d’erreurs qui me choque.
    Si vous avez une petite idée je suis preneur, le reste fonctionne bien pour moi.
    Merci d’avance

    • SoozX dit :

      Bonjour,
      Essayez de vérifier que opcache est bien installé :

      $ dpkg -l php7.0-opcache

      ainsi que php-apcu

      $ dpkg -l php-apcu

      Vérifiez aussi ligne après ligne les modifications dans /etc/php/7.0/apache2/php.ini
      (au besoin, copiez les lignes depuis la page du site pour éviter toute faute de frappe)

      Dans Nextcloud, allez dans l’onglet Administration et regardez si il y a des erreurs dans le menu Journalisation à gauche.

      Vérifiez s’il y a des erreurs sur php7.0-fpm
      $ sudo systemctl status -l php7.0-fpm

      Bien relancer ensuite apache2
      $ sudo systemctl reload apache2

  6. Chris dit :

    Bonjour SoozX,
    Merci de vous y intéresser.
    voila ce que cela me donne:
    dpkg -l php7.0-opcache =>
    ii php7.0-opcache 7.0.19-1 armhf Zend OpCache module for PHP
    dpkg -l php-apcu =>
    ii php-apcu 5.1.8+4.0.11-1 armhf APC User Cache for PHP
    Ils semblent installés sans erreur.
    voici mon php.ini filtre sur les lignes commençant par “;”( a la rubrique [opcache] .J’avais utilisé les copier coller du tuto, je ne vois pas de retour chariot qui auraient pu posé problème)=>
    [opcache]
    opcache.enable=1
    opcache.enable_cli=1
    opcache.memory_consumption=128
    opcache.interned_strings_buffer=8
    opcache.max_accelerated_files=10000
    opcache.revalidate_freq=1
    opcache.save_comments=1

    Dans mon journal d’administration (j’ai des erreurs qui varient au fil des jours,ici les dernières):
    Error PHP Exception: The requested uri(/MyAdmin/scripts/setup.php) cannot be processed by the script ‘/core/templates/404.php’) at /var/www/nextcloud/lib/private/AppFramework/Http/Request.php#729 2017-10-03T02:39:39+0200
    Error PHP Exception: The requested uri(/myadmin/scripts/setup.php) cannot be processed by the script ‘/core/templates/404.php’) at /var/www/nextcloud/lib/private/AppFramework/Http/Request.php#729 2017-10-03T02:39:39+0200
    Error PHP Exception: The requested uri(/pma/scripts/setup.php) cannot be processed by the script ‘/core/templates/404.php’) at /var/www/nextcloud/lib/private/AppFramework/Http/Request.php#729 2017-10-03T02:39:38+0200
    Error PHP Exception: The requested uri(/phpmyadmin/scripts/setup.php) cannot be processed by the script ‘/core/templates/404.php’) at /var/www/nextcloud/lib/private/AppFramework/Http/Request.php#729 2017-10-03T02:39:38+0200
    Error PHP Exception: The requested uri(/phpMyAdmin/scripts/setup.php) cannot be processed by the script ‘/core/templates/404.php’) at /var/www/nextcloud/lib/private/AppFramework/Http/Request.php#729 2017-10-03T02:39:38+0200
    Error PHP Exception: The requested uri(/muieblackcat) cannot be processed by the script ‘/core/templates/404.php’) at /var/www/nextcloud/lib/private/AppFramework/Http/Request.php#729 2017-10-03T02:39:38+0200

    sudo systemctl status -l php7.0-fpm =>
    php7.0-fpm.service – The PHP 7.0 FastCGI Process Manager
    Loaded: loaded (/lib/systemd/system/php7.0-fpm.service; enabled; vendor preset: enabled)
    Active: active (running) since Mon 2017-10-02 23:23:29 CEST; 1 day 10h ago
    Docs: man:php-fpm7.0(8)
    Main PID: 488 (php-fpm7.0)
    Status: “Processes active: 0, idle: 3, Requests: 1277, slow: 0, Traffic: 0req/sec”
    CGroup: /system.slice/php7.0-fpm.service
    ├─ 488 php-fpm: master process (/etc/php/7.0/fpm/php-fpm.conf)
    ├─19050 php-fpm: pool www
    ├─19059 php-fpm: pool www
    └─19068 php-fpm: pool www
    sudo systemctl reload apache2 => Ne change rien et jamais vu de Msg d’erreur lors des cmd.
    Si cela peut vous aider. Je tourne sous raspian strech, netcloud v12.0.3 et le / installé sur un externe. Sinon cela me le faisait dès installation en v12.0.2 et / sur SDCARD
    Sinon, je pense à faire sudo apt purge php7.0-opcache php-apcu pour ensuite les réinstaller. Quand pensez-vous?
    Merci d’avance

  7. F. dit :

    Bonjour,

    Merci pour ce tuto très clair, j’ai un message d’erreur qui signale que htaccess ne fonctionne pas correctement, j’ai l’impression d’avoir bien vérifié le fichier conf.php pouvez vous me dire vers ou orienter mes recherches ?

    Merci

    • SoozX dit :

      Bonjour,

      Essayez déjà de vérifier votre nextcloud.conf (/etc/apache2/sites-available/nextcloud.conf)

      Il doit ressembler à ça à la fin de l’installation :


      DocumentRoot “/var/www/nextcloud”
      ServerName nextcloud-myweb.duckdns.org

      ErrorLog ${APACHE_LOG_DIR}/error.log
      CustomLog ${APACHE_LOG_DIR}/access.log combined


      Options +FollowSymlinks
      AllowOverride All


      Dav off

      SetEnv HOME /var/www/nextcloud
      SetEnv HTTP_HOME /var/www/nextcloud
      Satisfy Any

      RewriteEngine on
      RewriteCond %{SERVER_NAME} =nextcloud-myweb.duckdns.org
      RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,QSA,R=permanent]

      • ypose dit :

        Bonjour J’ai exactement le meme soucis. Le fichier nextcloud.conf est bien identique à celui ci.
        Merci pour votre aide

        • SoozX dit :

          Bonjour Ypose,
          Dans /etc/apache2/sites-available/nextcloud.conf, essayez de retirer la ligne :

          Satisfy Any

          pour voir si cela peut régler le problème.

          Cette directive n’est plus recommandée par défaut par Nextcloud et peut être à l’origine du message d’avertissement.

          Merci de me dire si cela change quelque chose.

          • ypose dit :

            Bonjour,
            Merci pour ta réponse.
            En fait tout était de ma faute j’avais oublié de changer l’emplacement par défaut du dossier data… après l’avoir modifié puis transféré dans /var/www/data tout a fonctionné correctement

          • SoozX dit :

            Bonjour,

            Merci d’avoir donné suite.
            Je vais quand même tester sans directive Satisfy Any sur une installation de base et je modifierai éventuellement le tuto en fonction.

  8. Chris dit :

    Bonjour,
    Problème insolvable pour moi. Je vois pas mon erreur concernant opcache.
    J’en profite pour repartir sur une installation vierge avec une sdcard plus petite vu que mon systeme sera sur un DD USB grâce au tuto spécifique sur ce site.
    Nextcloud est très intéressant. Je ferai un retour à l’issue;
    Merci Soozx

    • SoozX dit :

      Désolé,

      Je n’ai pas eu le temps de me pencher sur votre problème.
      Quoiqu’il en soit, les messages d’erreur dans le journal de Nextcloud ressemblent plus à des tentatives de connexion de robots sur votre serveur qu’au problème lié à opcache.
      J’espère que la réinstallation complète résoudra le problème.

  9. Chris dit :

    Bonjour SooxX
    réinstallation complète terminée.
    Ça fonctionne! plus d’avertissement (comme quoi parfois on gagne du temps a partir sur une base propre!).
    Pour info: problème durant l’install:
    _ J’ai migré le / est sur disque USB en suivant votre tuto après l’installation de base.
    SoozX, pour moi il y a une petite coquille dans ce dernier.
    faire plutôt : sudo nano /mnt/etc/fstab que sudo nano /etc/fstab pour modifier le bon fstab du / qui sera utilisé avec le media USB, ou alors faire le sudo rsync -avx / /mnt seulement après cette modif.
    _ Dans mon cas pour apache2, j’avais le status en erreur après l’install. Il n’aimait pas : sudo systemctl reload apache2 mais en faisant sudo systemctl stop apache2 puis sudo systemctl start apache2 après c’était OK pour le status.
    Un grand merci SooxZ, vos tutos sont très bien fait et c’est bien de partager ses connaissances même si cela prend beaucoup de temps. Cela m’a permis de découvrir nextcloud qui est génial. Je sais maintenant où se trouve physiquement les données de mon cloud!

    • SoozX dit :

      Bonjour Chris,

      Content que ça fonctionne. C’est vrai que des fois on a intérêt à repartir de zéro quand on commence à avoir des problèmes.
      Merci pour m’avoir signalé la ligne concernant le fstab dans le tuto sur le déplacement du système, j’ai rectifié !

      Bon Nextcloud.

  10. Mikaël dit :

    Bonjour! Merci pour ce tuto très bien fait!
    Pour ma part j’ai un problème avec MySQL. Au moment de taper “sudo mysql -u root”, ça me renvoie ” ERROR 1045 (28000): access denied for user ‘root’@’localhost’ (using password:NO).
    J’ai tenté une reinstall de mariadb-server, mais toujours le problème. Je sèche…

    • SoozX dit :

      Bonjour,

      Je suppose que c’est dans le tutoriel juste après l’installation de mariadb.

      Essaie dans ce cas de faire la commande :
      $ mysql -u root -p
      (sans sudo)
      Il faudra donner le mot de passe que tu as choisi pour mariadb.
      Si tu arrives dans la console de mariadb,
      (MariaDB [(none)]> )
      c’est que tout est bon et qu’il n’est pas nécessaire de faire cette partie là de la configuration.

      Pour sortir de la console mariadb, il suffit de taper “exit”.

      Il y a peut être eu une mise à jour de Stretch qui rend cette partie là du tuto inutile.

      Je vérifierai demain en faisant une nouvelle installation.

      Sinon, vérifie que mariadb fonctionne bien en faisant :
      $ sudo systemctl status mysql (cela devrait indiquer active: running)

      • Mikaël dit :

        Merci pour ta réactivité!
        Effectivement ça semble fonctionner sans sudo. Merci!
        Par contre ne t’embête pas à refaire une installation, j’aurai du préciser que je partais d’une installation “propre” sous Jessie, avec un upgrade vers Strectch… (et je viens de penser que je n’ai pas modifié mon fichiers “/etc/apt/sources.list”)
        Mon petit doigt me dit que le problème peut venir de là! 😉

  11. SoozX dit :

    Trop tard … J’ai juste refait l’installation de mariadb sur une raspbian stretch toute neuve.
    Il faut toujours faire la manipulation indiquée dans le tuto (ce qui n’était pas nécessaire avec Jessie).
    Ce qui explique pourquoi avec un upgrade depuis Jessie tu n’en ais pas eu besoin.

  12. Fabien dit :

    Hello,

    Merci pour ce tutoriel, sacré travail !
    A garder sous le coude, même pour la première partie en indépendante.
    J’ai en revanche un problème, une fois la création de l’admin fait sur la page d’accueil, je prends maintenant une erreur 503 quand j’essaie d’afficher la page, avec une redirection vers une drôle d’url: domain/nextcloud/index.php/apps/files/index.php/apps/files/index.php/apps/files/index.php/apps/files/index.php/apps/files/index.php/apps/files/index.php/apps/files/index.php/apps/files/index.php/apps/files/index.php/apps/files/index.php/apps/files/index.php/apps/files/index.php/apps/files/index.php/apps/files/index.php/apps/files/index.php/apps/files/index.php/apps/files/index.php/apps/files/index.php/apps/files/index.php/apps/files/index.php/apps/files/

    Si quelqu’un avait une idée, je suis preneur

    • SoozX dit :

      Bonjour Fabien,

      Regarde déjà si les modules nécessaires à Apache sont bien installés :
      $ sudo a2enmod rewrite headers env dir mime ssl
      (ils devraient indiquer already enabled)

      S’il y en a qui n’étaient pas activés, il faut après cette commande redémarrer apache2
      $ sudo systemctl restart apache2

      Il peut éventuellement y avoir une erreur dans le virtualhost (/etc/apache2/sites-available/nextcloud.conf). A vérifier en particulier s’il y a bien

      Options +FollowSymlinks
      AllowOverride All
      dans ce fichier.

      Si ce n’est pas ça, il va falloir creuser un peu plus…

      • Fabien dit :

        J’ai trouvé mon problème, c’était bel et bien une erreur de ma part.

        J’essayais d’accéder à mon install en faisant domain/nextcloud, avec pour espoir de targuetter l’instance toute fraiche. Je n’avais donc pas de vhosts.

        En créant un nouveau domaine nextcloud.domain avec un vhost targettant le répertoire nextcloud, le problème est résolu. Bizarrement, le reload d’apache ne suffit pas, je dois rebooter en revanche.
        php.
        Dernier problème, impossible de régler l’OP cache, j’ai modifié les fichiers php.ini dans:
        – /etc/php/7.0/cli
        – /etc/php/7.0/apache2
        – /etc/php/7.0/fpm

        Rien à faire =/

        • SoozX dit :

          Normalement, c’est le php.ini de /etc/php/7.0/apache2 qui doit être configuré.

          Vérifie déjà que opcache et apcu sont correctement installés :

          $ dpkg -l php7.0-opcache
          $ dpkg -l php-apcu

          Vérifie les réglages d’apache en recréant un fichier info.php dans /var/www/nextcloud/

          < ?php

            phpinfo();
            ?>

            Tu te rends sur ton nextcloud/info.php
            (par exemple : https://nextcloud-myweb.duckdns.org/info.php
            et vérifie en particulier le statut d’apcu et de zend.opcache

            Pour avoir plus d’infos sur le statut d’opcache sur ton nextcloud, crée un autre script php
            $ sudo nano /var/www/nextcloud/opcache.php

            < ?php

              var_dump(opcache_get_configuration());

              ?>

              Dans un navigateur, tu vas à l’adresse de ton nextcloud suivi de /opcache.php
              https://nextcloud-myweb.duckdns.org/opcache.php

              et tu vérifies déjà si opcache fonctionne
              array(30) { [“opcache.enable”]=> bool(true)(…)
              puis que les modifications dans php.ini sont bien présentes

              Enlève ensuite les deux scripts php

              J’espère que cela va te donner des pistes

  13. Mikaël dit :

    Salut chef!
    Excuse-moi de t’embêter à nouveau. Juste pour te dire que je suis reparti de zéro avec Raspbian Stretch (plutôt que de faire la MàJ depuis Jessie) et que tout fonctionne parfaitement en local en suivant ton tuto. 😉
    Bon, je dit “en local” car j’ai zappé volontairement la partie “Routeur, Box et Ports” et du coup “Nom de domaine”, car faute d’ADSL on utilise chez moi la 4G d’un vieil Android Nexus5 en guise de connexion, et je n’ai pas trouvé d’application capable d’ouvrir des ports sur le réseau mobile. (As-tu une idée?)
    (Re)Merci en tt cas pour ce guide pas-à-pas on ne peut plus clair, à bientôt peut-être!

  14. Seb dit :

    Bjr, merci pour le boulot.

    J’ai un souci lors du certbot –apache. Une idée ?

    Merci pour ton retour 😉

    —–

    xxxx@xxxxx:~ $ sudo certbot –apache
    [sudo] password for xxxxx:
    Saving debug log to /var/log/letsencrypt/letsencrypt.log

    Which names would you like to activate HTTPS for?
    ——————————————————————————-
    1: xxxxxxx.duckdns.org
    ——————————————————————————-
    Select the appropriate numbers separated by commas and/or spaces, or leave input
    blank to select all options shown (Enter ‘c’ to cancel):1
    Obtaining a new certificate
    Performing the following challenges:
    tls-sni-01 challenge for xxxxxx.duckdns.org
    Waiting for verification…
    Cleaning up challenges
    Failed authorization procedure. xxxxxx.duckdns.org (tls-sni-01): urn:acme:error:connection :: The server could not connect to the client to verify the domain :: Timeout

    IMPORTANT NOTES:
    – The following errors were reported by the server:

    Domain: xxxxx.duckdns.org
    Type: connection
    Detail: Timeout

    To fix these errors, please make sure that your domain name was
    entered correctly and the DNS A record(s) for that domain
    contain(s) the right IP address. Additionally, please check that
    your computer has a publicly routable IP address and that no
    firewalls are preventing the server from communicating with the
    client. If you’re using the webroot plugin, you should also verify
    that you are serving files from the webroot path you provided.

    • SoozX dit :

      Bonjour,

      Commence par vérifier que l’adresse duckdns.org pointe bien vers l’IP externe du Pi.
      Depuis un terminal sur le Pi :

      $ ping -c 3 adresse-nextcloud.duckdns.org

      PING adresse-nextcloud.duckdns.org (122.14.55.214) 56(84) bytes of data.

      122.14.55.214 dans cet exemple est l’adresse IP sur laquelle pointe adresse-nextcloud.duckdns.org

      Toujours du Pi, vérifie maintenant ton adresse IP externe :
      $ curl icanhazip.com
      Cela doit donner la même adresse.

      Si ce n’est pas le cas, il y a un problème au niveau de la configuration de duckdns.

      Deuxième piste,
      Vérifie que tu as bien ouvert et redirigé les ports 80 et 443 de ton routeur (de ta box) vers le Pi et que l’adresse IP interne du Pi n’a pas changé si tu ne l’as pas rendue statique.
      Pour connaître l’adresse IP sur le réseau interne :
      $ ip -4 a
      Pour rediriger les ports du routeur :
      https://craym.eu/tutoriels/utilitaires/ouvrir_les_ports_de_sa_box.html

      IP interne statique sur le Pi
      https://soozx.fr/assigner-ip-statique-raspberry-pi/

      Dernière piste :
      vérifie /etc/apache2/sites-available/nextcloud.conf
      En particulier les trois premières lignes.

      Bonne chance.

      • Seb dit :

        Bjr, merci pour ton retour. J’avais un probleme avec la redirection des ports.

        Il me reste un souci au niveau des warning dans la fenetre d’admin” concernant le .htaccess

        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 de le déplacer hors de la racine du serveur web.

        Merci

  15. Antoine dit :

    Bonjour!
    Tout d’abord merci pour ce tuto!
    J’en suis arrivé à la configuration de Nextcloud mais au moment d’afficher la page WEB, je me retrouve avec un message “Aucun pilote de base de données n’est installé (sqlite, mysql ou postgresql).” sur la page nextcloud…
    Une solution?
    Merci 😀

  16. SoozX dit :

    Bonjour,

    La base de données dans le tuto, c’est mariadb (mysql). Apparemment, ton Nextcloud ne trouve pas de base de données installée.
    Cela peut être parce qu’il y a eu un problème à l’installation ou à la configuration de mariadb.
    Pour vérifier que mariadb (mysql) est bien fonctionnel :

    $ sudo systemctl status mysqld

    qui devrait afficher :
    ● mariadb.service – MariaDB database server
    Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled)
    Active: active (running) since(…)

    Vérifie aussi que le paquet php7.0-mysql est bien installé.

  17. Malozorteils dit :

    Bonjour,

    Excellent tuto, suivi à la lettre et fonctionnement impeccable.
    Toutefois j’ai 2 où 3 questions:

    J’utilise Nextcloud pour partager des photos avec mes proches. Voila une semaine que le serveur est en ligne mais il me semble très lent à générer les miniatures. Du coup j’ai diminué la résolution et la taille de mes photos mais le problème ne viens pas de là. Sont-ce les ressources du raspberry qui sont insuffisantes ( j’utilise un Rpi 2)?
    Pour remédier à cela j’ai parcouru les répertoires afin que les miniatures se génèrent, et les visites suivantes sont beaucoup plus rapides. Existe t’il un moyen de les générer autrement ?

    Ensuite, pensez vous possible d’automatiser le renouvellement du certificat Let’s Encrypt grâce à une tâche planifiée ? Un genre de script qui exécuterais certbot tous les 3 mois ?

    Enfin, je n’ai pas réussi à tester la sécurité de mon cloud. On dirait que le site https://scan.nextcloud.com rencontre des problèmes. Mais j’imagine qu’en suivant tes instructions, on est blindés !

    Merci pour ce tuto très efficace !!

    • SoozX dit :

      Bonjour et merci.

      La génération des miniatures est en effet une des faiblesses de Nextcloud en terme de rapidité. Les ressources limitées du Pi n’aident pas en ce sens, mais même sur une machine plus puissante, le délai de génération est important.
      Il y a une application Nextcloud qui permet de pré-générer les miniatures : Preview Generator (dans les applications multimedia).

      Pour le certificat Let’s Encrypt, si vous avez utilisé la commande certbot –apache pour l’installer, le renouvellement se fera automatiquement. Vous pouvez par sécurité vous-même lancer la commande $ sudo certbot renew si vous voulez être plus sûr. Cela vous donnera en plus l’indication de la durée de validité restante du certificat.

      Concernant le lien vers le scan nextcloud, effectivement, il ne fonctionne plus depuis un moment. Il a été assuré sur le forum que c’était pris en compte par son mainteneur mais il a l’air assez occupé par ailleurs !
      La configuration proposée me semble effectivement assez sûre après l’avoir testée avec des outils de pénétration à condition comme d’habitude de faire les mises à jour de Nextcloud quand il y en a et de mettre à jour aussi régulièrement le système Raspbian (sudo apt update, sudo apt upgrade). Important aussi : la complexité des mots de passe ou l’utilisation de phrases de passe en alternative encore plus efficace.

      • Malozorteils dit :

        Super. Merci de ta réactivité.
        Je vais jeter un œil à preview generator.
        Pour certbot je ne savais pas que tout était automatisé. C’est parfait.
        Pour la sécurisation de nextcloud je viens de me rappeler que j’ai peut être ouvert une faille:
        J’ai essayé de me connecter à mon serveur par mon IP publique, puis nextcloud m’a alors demandé de rajouter ce host “non autorisé”. J’ai validé, je me suis logué et je peux maintenant y accéder par mon IP. Tout s’est fait depuis mon navigateur. Le problème c’est que quand je me connecte avec l’ip publique je ne suis pas en https, à la différence du nom en duckdns.org.
        Qu’en dis tu ? Une idée pour revenir en arrière ?

        • SoozX dit :

          Dans ce cas, il faut éditer le fichier de configuration de nextcloud :
          $ sudo nano /var/www/nextcloud/config/config.php

          Tu vas trouver un groupe “array” contenant ton adresse IP :

          array (
          0 => ‘nextcloud-myweb.duckdns.org’,
          1 => 175.176.175.177,
          ),

          Il suffit de retirer cette ligne et de ne garder que celle qui contient le nom de domaine en duckdns.org.

          • Malozorteils dit :

            Merci !!

            En plus j’aurais pu le trouver tout seul car j’ai aussi appliqué ton tuto pour activer l’accès par le réseau local …

            Tu gères.

  18. Alias dit :

    Comment dire ? MERCI !!!!!
    Enfin un Tuto fonctionnel et claire avec le Tuto sur le transfert du data sur un disque dur !
    Merci beaucoup

  19. chatar dit :

    Salut,
    merci beaucoup pour ce tuto super bien détaillé.
    je me heurte a un pb quand je veux configurer nextcloud. il m’affiche le message :
    “Failed to enable app federation
    Please ask for help via one of our support channels

    j’ai essayé également avec la commande en ligne :
    sudo -u www-data php /var/www/nextcloud/occ maintenance:install –database mysql –database-name nextcloud –database-host localhost –database-port 3306 –database-user adminmyweb –database-pass XXXXX –admin-user USERUSERUSER –admin-pass PPPPPP –data-dir /var/www/data

    sans plus de succès.
    une idée pour avancer ?
    Merci

    • SoozX dit :

      Bonjour,
      Es-tu arrivé à lancer Nextcloud préalablement à ce message ou est-ce au moment de la configuration initiale ?
      Apparemment, Nextcloud t’indique qu’il n’arrive pas à activer l’application “fédération” qui permet de partager des fichiers entre différents Nextcloud. C’est une application activée par défaut.
      Regarde si tu as un log plus détaillé dans /var/www/data/nextcloud.log
      Vérifie et rectifie aussi les droits sur les répertoires de nextcloud
      $ sudo chown www-data:www-data /var/www/nextcloud/ -Rv
      $ sudo chown www-data:www-data /var/www/data

      • chatar dit :

        Salut,
        non je ne l’avais jamais lancé.
        j’ai reparcouru le tuto et trouvé qqes modifs oubliées dans mes fichiers :
        sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
        log-bin = /var/log/mysql/mariadb-bin

        J’ai effacé la database et recréé une nouvelle
        puis rejoué la commande d’install en CLI

        un lien possible aussi, j’ai utilisé no-ip.com plutôt que duck dns
        du coup, ca fonctionne cette fois.
        ca semble bon maintenant.

        je trouve ca lent par contre sur RPI3 mais je n’ai pas encore eu le temps d’activer le cache.
        Qu’en est il des perfs chez vous ?

        Sinon je viens de voir que no-ip était payant pour garder son nom de domaine durablement. qu’en est il de duckdns ?
        Merci pour vos retours

        • SoozX dit :

          Concernant la réactivité de Nextcloud sur le Pi, ce n’est effectivement pas toujours au top même avec le cache (c’est en partie dû à la sortie Ethernet en 10/100 Mbps du Pi, ce qui est un débit faible).
          Pour Duckdns, l’option gratuite est sans limite de durée (à ce jour)

          • chatar dit :

            Salut,
            Je ne parle pas du download/upload d’un fichier mais juste de l’accès à la page web.
            Sur réseau local, on est de l’ordre de 1 minute 30 pour charger la page de login et encore la même chose pour ouvrir la session. je dois avoir un pb car avec ces délais personne n’utiliserai nextcloud sur pi
            en parallèle, un top me donne beaucoup d’IO/Wait. je penche pour la carte SD trop lente.
            une autre idée ? des utilisateurs peuvent ils faire un retour de leurs mesures ?
            Merci
            Chatar

  20. R.Alex dit :

    Super tuto, très clair.

    j’ai cependant un soucis sans doutes dû aux spécificités de mon installation. Mon raspberry se trouve sur mon réseau local, derrière une freebox révolution. Du coup, je souhaite utiliser le nom de domaine fourni par la freebox (monNom.freeboxos.org) pour nextcloud.

    J’ai donc à chaque fois remplacé le nom de domaine indiqué dans les tuto par celui me convenant, sauté l’étape avec duckdns et l’étape avec let’s encrypt.

    Cependant à la fin, lorsque je tente d’accéder à nextcloud, rien ne se passe.

    En 127.0.0.1, je tombe sur la page d’accueil d’apache. En accès depuis l’extérieur sur mon nom de domaine, je suis redirigé vers l’OS de la freebox. Avez-vous une idée ?

    • SoozX dit :

      Bonjour,
      Même si je n’ai jamais essayé votre configuration, cela devrait normalement fonctionner (effectivement, vous ne pouvez pas utiliser let’s encrypt dans ce cas de figure mais vous pourrez tout de même configurer un accès https avec un certificat autosigné pour le chiffrement).
      Il faudrait vérifier la redirection de port dans la freebox (s’assurer que le port 80 externe et le 443 si vous souhaitez chiffrer ultérieurement sont redirigés sur l’adresse IP interne du Raspberry Pi vraisemblablement 192.168.xxx.xxx aux mêmes ports).
      En interne, vous pouvez essayez de vous connecter sur l’adresse ip interne du Pi (http://192.168.xxx.xxx) plutôt que 127.0.0.1.

      • R.Alex dit :

        Merci pour vos conseils. J’ai effectivement résolu ce double soucis.

        Le premier problème venait de l’affectation du port 80. Par défaut, il est utilisé par la freebox pour l’accès à son propre OS. En modifiant cette affectation, j’ai pu accéder depuis le net à la page par défaut d’apache.

        Je me suis ensuite rendu compte que le fait de voir cette page et pas nextcloud venait du répertoire de base d’apache (que j’avais modifié pour un autre projet auparavant). En corrigeant ça, j’accède bien à nextcloud.

        Merci pour votre réponse rapide qui m’a permis de bien avancer. Cependant, j’ai un autre soucis, que je vous soumet.

        L’installation de nextcloud semble s’être par la suite déroulée correctement, mais j’ai plusieurs messages d’erreur dans l’administration, que je n’arrive pas à éliminer :

        – Des fichiers n’ont pas passé la vérification d’intégrité. Plus d’information sur comment résoudre ce problème dans notre documentation. (Liste des fichiers invalides… / Relancer…)

        – 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 de le déplacer hors de la racine du serveur web.

        -L’en-tête HTTP “Strict-Transport-Security” n’est pas configurée à au moins “15552000” secondes. Pour renforcer la sécurité nous recommandons d’activer HSTS comme décrit dans nos conseils de sécurisation.

        Auriez vous des idées ?

        • SoozX dit :

          Bonjour,
          Concernant le problème d’intégrité, il faudrait cliquer sur dans le message “Liste des fichiers invalides” pour voir quels sont les fichiers concernés et éventuellement les remplacer par les fichiers de l’archive téléchargée avec Nextcloud.
          Pour le problème de .htaccess, il faut vérifier que /etc/apache2/sites-available/nextcloud.conf est bien configuré comme dans le tutoriel
          Enfin, pour le HSTS, c’est normal si vous n’avez pas configuré Nextcloud en https.

  21. cestiopis dit :

    Bonjour, et merci pour tout se travaille.
    J’ai sécurisé avec iptable, du coup je pense qui fait trop bien sont travail, j’ai plus acces à la page “monsite.zapto.org n’autorise pas la connexion.”
    J’ai mis la plage d’ip 192..168.1.0 apres j’ai essayé 192.168.1.254 le probleme reste le même.
    Auriez vous une idée ?

    • SoozX dit :

      Si je comprends bien, Nextcloud était accessible avant la mise en place d’iptables.
      Je ne sais pas si vous avez suivi le tuto sur le site : https://soozx.fr/securiser-nextcloud-raspberry-pi-pare-feu/

      Je suppose que “monsite.zapto.org” pointe vers l’adresse externe de votre réseau (et non pas l’adresse interne en 192.168.1.xx).

      Dans ce cas, il faut vérifier que les ports 80 et 443 sont bien autorisés par iptables :

      #Autorisation complète du port 80 – HTTP – nécessaire à nextcloud
      -A INPUT -p tcp -m tcp –dport 80 -j ACCEPT
      -A OUTPUT -p tcp -m tcp –dport 80 -j ACCEPT
      #Autorisation complète du port 443 – HTTPS – nécessaire à nextcloud
      -A INPUT -p tcp -m tcp –dport 443 -j ACCEPT
      -A OUTPUT -p tcp -m tcp –dport 443 -j ACCEPT

  22. cestiopis dit :

    En faites j’ai essayé d’afficher info.php. Apres vérification j’ai bien les port ouverts, et nextcloud marche. Merci pour tout.

  23. cestiopis dit :

    Re, j’ai un autre problème, je suis allé au bout du tuto, tout marche nickel, mais il est m’est impossible de upload des fichiers de + ~ 500mo. Le serveur affiche perte de connexion. J’avoue que je me demande si c’est ma connexion où un autre problème ? Tout mon système est en ethernet sur une box.

  24. Nicecloud dit :

    Bonjour,

    J’ai suivi votre tuto très bien fait mais j’ai essayer de me connecter à la page d’accueil pour la première connexion (page de la finalisation de NextCloud) et je n’ai pas réussi à finaliser (j’avais toujours des erreurs : soit [yh000][2002] soit ‘vous n’avez pas les droits pour le data folder’. Mais après de nombreux essais, je n’arrive même plus à me connecter à cette page de finalisation : j’ai seulement ce message qui apparait : 403 forbidden.

    Si vous pouvez m’aider.. Merci d’avance

  25. Jonathan dit :

    Tuto au top 😉 . Explication claire et précise et résultat fonctionnel à la fin sans trop de problème.

    Toute fois, j’aimerais accès à nextcloud via une autre adresse comme par ex: mondomaine.org/nextcloud/index.php

    car j’ai déjà une page qui tourne sous mon nom de domaine et qui se trouve dans /var/www/html/ …

    Une solution pour la configuration? D’avance merci,

    Jonathan

  26. Julien dit :

    Bonjour,
    Je laisse rarement des commentaires, mais là, franchement, votre travail est exemplaire.
    Vraiment bravo pour la clarté des explications, les captures d’écrans, tout y est.
    Beau travail.
    Merci du temps consacré et d’avoir partagé toutes ces informations.
    Personnellement, j’ai tout suivi, tout à fonctionné. Tout est nickel !

  27. Laurent dit :

    Bonjour, je crois avoir tout fait comme dans le tuto mais la seule page qui s’affiche est la page par défaut, et non celle de nextcloud…
    J’ai remarqué que dans le tuto, la configuration d’apache va chercher les infos dans www/html, mais dans la partie installation et configuration de nextcloud, tout est mis dans www/ et non www/html/
    C’est normal ou mon probleme vient de là ?

    • SoozX dit :

      C’est normal. et refais l
      C’est la configuration du virtualhost qui permet de diriger les requêtes internet vers nextcloud. Vérifie ton nextcloud.conf dans /etc/apache2/sites-available/ et refais les instructions suivantes pour l’activer (https://soozx.fr/nextcloud12-raspberry-stretch/stretch-installation-nextcloud-12/)

      • Laurent dit :

        J’avais effectivement fait des erreurs, je les ai corrigées, mais ca ne marche toujours pas : ” fine not found”.
        Quand je tape les lignes d’activation de l’hote, il me signale que c’est déjà fait.
        Lorsque je tape la derniere ligne “sudo systemctl status apache2” il y a ceci :

        déc. 27 01:11:24 raspberrypi-2 systemd[1]: Reloaded The Apache HTTP Server.
        déc. 27 01:14:05 raspberrypi-2 systemd[1]: Reloading The Apache HTTP Server.
        déc. 27 01:14:05 raspberrypi-2 apachectl[2361]: AH00558: apache2: Could not reliably determine the server’s fully qualified domain name, using 127.0.0.1. Set the ‘ServerName’ directive globally to suppress t
        déc. 27 01:14:06 raspberrypi-2 systemd[1]: Reloaded The Apache HTTP Server.
        déc. 27 06:25:02 raspberrypi-2 systemd[1]: Reloading The Apache HTTP Server.
        déc. 27 06:25:03 raspberrypi-2 apachectl[9250]: AH00558: apache2: Could not reliably determine the server’s fully qualified domain name, using 127.0.0.1. Set the ‘ServerName’ directive globally to suppress t
        déc. 27 06:25:03 raspberrypi-2 systemd[1]: Reloaded The Apache HTTP Server.
        déc. 27 11:58:07 raspberrypi-2 systemd[1]: Reloading The Apache HTTP Server.
        déc. 27 11:58:07 raspberrypi-2 apachectl[21006]: AH00558: apache2: Could not reliably determine the server’s fully qualified domain name, using 127.0.1.1. Set the ‘ServerName’ directive globally to suppress
        déc. 27 11:58:07 raspberrypi-2 systemd[1]: Reloaded The Apache HTTP Server.

        Ca doit venir de mon fichier hosts mais que dois-je y avoir exactement ?
        Actuellement j’ai :
        127.0.0.1 localhost
        ::1 localhost ip6-localhost ip6-loopback
        ff02::1 ip6-allnodes
        ff02::2 ip6-allrouters

        127.0.1.1 raspberrypi-2
        192.168.1.26 nextcloudmanuyouka.duckdns.org

        Le nom raspberrypi-2 est celui de ma machine , il apparait aussi dans hostname.

        Je ne sais pas si ca a quelque chose à voir…vu que comme vous l’aurez deviné je suis pas très compétent…
        En tout cas merci de votre aide et pour ce tuto.

        • Laurent dit :

          Il vaudrait peut etre mieux que je reparte de zéro ?

          • Laurent dit :

            RECTIFICATIF ! ca a l’air de marcher, mais seulement depuis un acces exterieur !
            Donc si vous savez ce que je dois faire pour acceder depuis l’intérieur je suis preneur, mais déjà j’avance !
            Merci !

          • SoozX dit :

            Il est possible que ça soit ta box internet (ou ton FAI, en particulier orange) qui ne permette pas le “loopback”, c’est à dire la possibilité d’atteindre une machine sur le même réseau interne depuis son adresse internet externe.
            Dans un moteur de recherche interne, tape le nom de ta box et “loopback”, tu verras si d’autres ont le même problème.

            Dans ce cas, il est possible d’atteindre nextcloud par l’adresse ip interne (168.1.0.11 par exemple) du Pi directement dans un navigateur.
            Si tu as implémenté par contre le https obligatoire (avec let’s encrypt), ça ne marchera qu’à condition de retirer la redirection https sur le réseau interne. Le tuto pour ça est ici : https://soozx.fr/nextcloud-letsencrypt-acceder-http-local/
            Sinon, un peu plus compliqué, une autre bidouille ici : https://www.0rion.netlib.re/forum4/viewtopic.php?f=14&t=676

  28. Laurent dit :

    Merci pour tout une fois de plus ! Effectivement je suis chez Orange et pas de loopback…
    Mais je ne reviens pas pour ça : j’ai installé l’appli nextcloud sur mon telephone et activé le transfert des photos et videos. Malheureusement les videos de plus de 100 Mo ne se transfèrent pas. Une idée pour resoudre ça ?
    Merci

  29. Aluncard dit :

    Bonjour,
    Et tout d’abord merci pour ce tuto très claire à suivre et qui ne lésine pas sur la sécurité. Mais voilà j’ai un problème, lorsque viens le moment de me connecter à Nextcloud je n’y arrive pas, ma page reste blanche avec le message établissement d’une liaison TLS avec . Je ne vois pas où ai-je bien pu me tromper.

  30. Patrice dit :

    Bonjour, superbe tuto et merci pour le temps passé à cette rédaction.

    Sendmail est indispensable ?

  31. RD2 dit :

    Le plus tutoriel concernant le raspberry que j’ai vu de ma vie!

    Franchement, bravo, bon, j’ai pris le temps, mais c’est que j’ai ajouté dans l’équation un HDD externe, et j’avais des problèmes de droits… Et en plus, je souhaitais faire une installation de raspbian sur une clé USB à la place de la carte SD, ça complique légèrement les choses!

    Sinon il n’y a qu’un point que je n’ai pas pu effectuer, c’est le certificat Let’s Encrypt, il semblerai que cela ne soit plus fonctionnel, j’ai l’erreur suivante :

    Client with the currently selected authenticator does not support any combination of challenges that will satisfy the CA.

    D’après le premier lien google, ça a été désactivé! Je ne sais pas si je patiente ou non ?

    Autre point, je souhaitais ajouter mes fichiers manuellement sur mon HDD sans passer par NextCloud, cela ne semble pas possible! Les fichiers sont bien présent dans le bon dossier sur mon disque mais ils n’apparaissent pas sur NextCloud!

    Voilà, encore une fois, félicitation!

    • SoozX dit :

      Bonjour,
      Concernant Let’s Encrypt, la méthode de certification actuelle présente des vulnérabilités et a été désactivée pour les nouveaux utilisateurs. Une mise à jour est en cours et devrait être opérationnelle dans “quelques jours” (https://community.letsencrypt.org/t/2018-01-11-update-regarding-acme-tls-sni-and-shared-hosting-infrastructure/50188).

      Pour l’ajout manuel de fichiers dans le répertoire de Nextcloud, il faut faire un scan après l’ajout des fichiers :

      $ cd /var/www/nextcloud
      $ sudo -u www-data php console.php files:scan –all

      Cela permet à Nextcloud d’indexer les nouveaux fichiers (mais cela peut être long selon la taille et le nombre de fichiers).

      • RD2 dit :

        Merci pour ta réponse rapide!

        C’est noté pour Let’s Encrypt, je vais patienter avant de le mettre en place!

        J’ai tenté le scan, mais j’obtiens une erreur : Unknown user 1 –all

        Je pense que cela provient du fait que mes données sont sur un disque externe, dans /storage/HDD_server/NextCloud/data, mais je n’arrive pas à identifier ou pourrait apparaître le chemin de fichier du dossier data dans la commande du scan.

        • SoozX dit :

          Bonjour,
          La police de caractère du site porte à confusion :
          dans : $ sudo -u www-data php console.php files:scan –all
          Il faut lire files:scan – – all
          (deux fois le signe “-“entre scan et all)

          • RD2 dit :

            Merci, mais j’obtiens la même erreur :

            Unknown user 1 –-all

            +———+——-+————–+
            | Folders | Files | Elapsed time |
            +———+——-+————–+
            | 0 | 0 | 00:00:00 |
            +———+——-+————–+

          • RD2 dit :

            J’ai trouvé en regardant la doc, il manque le user :

            sudo -u www-data php occ files:scan [user] –all

          • SoozX dit :

            Si on ajoute l’utilisateur, on ne réindexe que les fichiers de cet utilisateur. Mais si il n’y a qu’un seul utilisateur, ça vaut le coup d’essayer (ou de le faire utilisateur par utilisateur s’il n’y en a pas trop !)

  32. Emmanuel dit :

    Tout d’abord Merci et bravo pour ce tuto vraiment efficace. tout fonctionne à merveille cependant j’ai toujours “connexion au serveur perdue” lorsque je tente l’upload de gros fichiers. J’ai pourtant apporté les modifs conseillées dans les commentaires ci-dessus.
    Je me demandais si avec cette installation il y avait moyen de contourner ce problème, en envoyant par ssh les fichiers les + gros .

    • SoozX dit :

      Pour les gros fichiers, il faut modifier dans /etc/php/7.0/apache2/php.ini
      post_max_size = 20M (changer cette valeur)
      upload_max_filesize = 20M
      et aussi (pour éviter la connexion perdue)
      max_execution_time = 30 (monter à 3600)
      max_execution_time = 30 (idem)

      Sinon, il est effectivement possible de copier par ssh et après de faire une indexation pour que Nextcloud intègre les nouveaux fichiers :

      $ cd /var/www/nextcloud
      $ sudo -u www-data php console.php files:scan --all


      (en sachant qu’un autre utilisateur a eu un problème avec cette commande mais je n’ai pas eu le temps de refaire des essais)

  33. Emmanuel dit :

    Je viens d’essayer mais même après relance apache + daemon rien y fait: connexion perdu….
    peut-être que la ligne (idem) …. j’ai pas compris faut écrire 2 fois max_execution_time = 3600.
    Pour le ssh c’est une histoire de droits je pense, il me semble même avoir essayé avec sudo su mais en vain.
    Merci encore pour votre aide précieuse.

    • SoozX dit :

      Désolé,
      j’ai buggé dans ma précédente réponse.
      C’est :
      max_execution_time 3600
      max_input_time 3600
      (pas de signe ‘=’)

      Pour copier, il est plus facile d’utiliser rsync en passant par ssh
      En imaginant vouloir copier depuis l’ordinateur source (sous système linux) le fichier “document.txt” vers le pi, sur l’ordinateur source dans un terminal, se mettre dans le répertoire contenant le fichier document.txt et faire la commande suivante :

      $ rsync -a --rsync-path="sudo rsync" document.txt nom_du_pi@192.168.0.10:/var/www/data
  34. Emmanuel dit :

    Bon j’ai du faire une erreur quelque part mais où??, Dans la partie administration/paramètres supplémentaires je vois: Gestion de fichiers 511 MB
    Taille max. d’envoi 2GB mais même en essayant 2 GB j’ai error qui apparait. Je pense refaire toute l’installaton. Car à moins que vous ne voyez où j’ai pu me tromper…..

  35. RD2 dit :

    Bonjour,

    je reviens pour une nouvelle question car j’ai peur de faire une bêtise. NextCloud est parfaitement fonctionnel, et il est stocké sur un HDD externe sous le répertoire /storage/HDD_server/NextCloud/data/.

    Or, sur de disque externe, il y a aussi un dossier Backup dans /storage/HDD_server/Backup dans lequel il y a une sauvegarde de mon PC sous windows. Auparapavent, j’envoyais sur ce dossier Backup une sauvegarde de certains fichiers à l’aide de SyncBack Pro. Malheureusement, je ne peux plus accéder à ce dossier en FTP avec n’importe quel logiciel. Même en direct sur mon raspberry, je suis obligé d’utiliser la commande sudo su pour accéder à ce dossier.

    J’ai alors pensé à un problème de droit, et quand je liste les droits du dossier considéré, j’ai ceci :

    rpi-server@rpi-server:/storage $ ls -l
    total 8
    drwxr-xr-x 2 root root 4096 janv. 11 19:31 Backup_server
    drwxrwx— 1 www-data www-data 4096 janv. 13 09:52 HDD_server

    Backup_server est un ancien dossier que je n’utilise plus, mais lui, je peux accéder à son contenu, surement parce qu’il fait parti du groupe root. Mais le second dossier, HDD_server, possède le groupe www-data et c’est celui-ci que je n’arrive pas à accéder en FTP.

    Pour information, le dossier HDD_server est monté à l’aide de fstab de la manière suivante :

    UUID=D01C489E1C488208 /storage/HDD_server ntfs-3g rw,auto,users,exec,nofail,nls=utf8,umask=007,uid=33,gid=33 0 0

    J’ai un peu regardé les histoire de permissions et de groupe, mais j’avoue être un peu perdu sur quoi faire pour pouvoir accéder à ce dossier en FTP sans pour autant perdre l’accès avec NextCloud!

    Merci d’avance!

    • SoozX dit :

      Bonjour,
      cela vient effectivement du fait que HDD_server appartient à www-data.
      Le plus simple serait de ne pas mettre les deux dossiers sous la racine HDD_server.

      • RD2 dit :

        Merci pour ta réponse!

        Du coup, j’ai essayé de monter juste /storage/HDD_server/NextCloud dans fstab, mais NextCloud ne fonctionne plus!

        En fait, sur mon disque, j’ai un dossier Backup (avec les fichiers que je veux accéder en FTP) et le dossier NextCloud pour les données du Cloud!

        Il faudrait que le disque HDD_server soit le disque monté, que le premier dossier (Backup) soit en accès root, et le second (NextCloud) en accès www-data si j’ai bien compris. Mais je ne sais pas trop comment arriver à ça…

  36. Jean-Michel dit :

    Bonjour,

    j’ai suivi le tuto pour faire l’installation sur un raspberry 2 derrière une freebox mini 4k.

    J’ai eu quelques souci avec duckdns mais j’ai réussi à le faire fonctionner avec l’adresse de la freebox en freeboxos.fr.

    Par contre après avoir modifier le php.ini pour les erreurs opcahe, elles apparaissent encore dans l’administration.

    le php.ini à modifier est bien celui en /etc/php/7.0/apache2/php.ini ?

    Car quand je regarde dans le info.php ce n’est pas le même chemin.

    Dans Loaded configuration file j’ai /etc/php/7.0/fpm/php.ini

    • SoozX dit :

      Bonjour,
      Normalement c’est bien /etc/php/7.0/apache2/php.ini qu’il faut modifier.
      Vérifie les modifications faites pour opcache dans le php.ini et essaie peut-être de redémarrer complètement apache2
      $ sudo systemctl restart apache2

      • Jean-Michel dit :

        Bon et bien après une réinstallation complète ça fonctionne bien. Plus de message d’erreur. sauf pour le https mais je suis derrière une freebox donc je peux rien faire.
        Merci pour ce super tuto.
        Une dernière question: j’ai essayé l’application nextcloud sur android et le téléchargement automatique ne fonctionne pas que ce soit en 4g ou bien wifi. Vous avez le même problème?

  37. LE DU dit :

    Bonjour,

    Merci beaucoup pour votre travail 😉

    Pour moi tout se passe bien jusqu’à la commande suivante :

    sudo nano /etc/apache2/sites-available/nextcloud-le-ssl.conf

    En effet, chez moi le fichier “nextcloud-le-ssl.conf” n’existe pas?

    Auriez-vous une piste?

    Merci d’avance…

  38. LE DU dit :

    En fait, j’ai un problème avec la commande :
    sudo certbot –apache

    Avec le message d’erreur suivant :
    Client with the currently selected authenticator does not support any combination of challenges that will satisfy the CA.

    • SoozX dit :

      Bonjour,
      la commande certbot –apache de Debian a été désactivée par Let’s Encrypt.
      D’après ce que j’ai vu (mais pas encore testé) , il faut faire une mise à jour de certbot :
      $ sudo certbot --auto
      et après cela devrait remarcher.

  39. LE DU dit :

    Bonsoir et merci pour votre aide précieuse 😉

    La commande : “sudo certbot –auto” ne fonctionne pas chez moi

    Elle renvoie le résultat suivant :

    usage:
    certbot [SUBCOMMAND] [options] [-d DOMAIN] [-d DOMAIN] …

    Certbot can obtain and install HTTPS/TLS/SSL certificates. By default,
    it will attempt to use a webserver both for obtaining and installing the
    cert.
    certbot: error: unrecognized arguments: –auto

    Peut être avez vous une autre piste?

  40. LE DU dit :

    Je viens de lancer la commande : sudo certbot -auto plutôt que sudo certbot –auto et j’obtiens le résultat suivant :

    Saving debug log to /var/log/letsencrypt/letsencrypt.log
    The requested uto plugin does not appear to be installed

  41. Pierre dit :

    Bonjour,
    J’ai trouvé ce lien, à propos de Cerbot, si ça peut aider :
    https://certbot.eff.org/all-instructions/#debian-9-stretch-apache

  42. Ludivine dit :

    Bonjour,

    Merci pour ce tuto très bien expliqué.

    Par contre j’ai du faire une erreur quelque part mais je ne vois pas où :-/ Quand je veux me connecter sur mon serveur, je tombe sur une page me disant :
    Ce site est inaccessible
    nextcloud-blabla.duckdns.org a mis trop de temps à répondre.

    Quand j’écrit l’adresse ip de mon raspberry sur une page internet j’ai accès a la page “Apache2 Debian Default Page It work! ”

    Je ne sais pas quoi faire pour pouvoir finaliser le tuto

    • SoozX dit :

      Bonjour,

      Cela peut venir du module de détection des attaques “bruteforce” de Nextcloud (ce mécanisme va mettre en liste noire les IP qui se connectent plusieurs fois sur Nextcloud avec un mauvais mot de passe). Si ton IP est dans cette base de données de Nextcloud, elle va t’empêcher de te connecter avec un timeout.
      Pour voir cela (et éventuellement corriger), il faut aller regarder cette table dans la base de données Nextcloud.

      Sur le Pi, il faut se connecter à mysql
      $ mysql -u root -p
      (donner le mot de passe administrateur de mysql)

      MariaDB [(none)]> use nextcloud;
      (remplacer nextcloud par le nom de la base de données que tu as choisi pour nextcloud s’il est différent)

      MariaDB [nextcloud]> SELECT * FROM oc_bruteforce_attempts;

      Cela va donner un tableau avec toutes les adresses IP en liste noire. Si tu y retrouves la tienne, il faut la retirer :

      MariaDB [nextcloud]> DELETE FROM oc_bruteforce_attempts WHERE IP="xxx.xxx.xxx.xxx";

      ou éventuellement enlever toutes les adresses IP :

      MariaDB [nextcloud]> DELETE FROM oc_bruteforce_attempts;

      Sortir de mysql :

      MariaDB [nextcloud]> EXIT;

      Relancer apache :
      $ sudo systemctl restart apache2

      et ré-essayer…

      • Ludivine dit :

        Merci de votre réponse rapide 🙂

        Quand je rentre la commande : SELECT * FROM oc_bruteforce_attempts;
        J’ai comme réponse : Error 1146 (42S02) : Table ‘nextcloud.oc_bruteforce_attempts’ doesn’t exist

  43. Nathy dit :

    Salut SoozX,
    Suite à un plantage lors de ma mise à jour vers Stretch j’ai du refaire depuis 0 mon installation de nextcloud.
    Encore une fois ton tuto très détaillé a rendu cette réinstallation très facile.
    Malgré tout j’ai rencontré une erreur lors de l’acquisition du certificat, lors de la commande:
    sudo certbot –apache
    J’ai reçu le message d’erreur suivant:
    “Client with the currently selected authenticator does not support any combination of challenges that will satisfy the CA.”
    J’ai trouvé un moyen de passer le test de certification et d’obtenir le certificat grâce la commande suivante:
    sudo certbot --authenticator standalone --installer apache -d ****.duckdns.org --pre-hook "service apache2 stop" --post-hook "service apache2 start"

    J’ai néanmoins un autre souci: il m’est impossible d’accéder à mon cloud via l’adresse ****.duckdns.org depuis mon réseau personnel.
    J’ai vérifié la table oc_bruteforce_attempts de la base de donnée et mon adresse IP n’y figure pas.
    Depuis chez moi mon seul moyen d’accéder à mon cloud est de passer par l’adresse IP du pi (mais dans ce cas-là, je ne peux pas utiliser le client pour synchroniser mes fichiers) ou de me connecter à un VPN ou en partage de connexion avec un téléphone portable.
    Aurais-tu une idée d’où ce blocage pourrait venir ?

    • SoozX dit :

      Bonjour Nathy,
      Et merci pour la commande certbot qui permet de résoudre le problème de changement de code de certbot.
      Concernant ton problème d’accès par duckdns depuis le même réseau que le pi, c’est certainement dû à un problème de “loopback” (c’est à dire la faculté d’atteindre une machine du même réseau interne par le réseau internet externe). Malheureusement certaines box (en particulier plusieurs livebox) n’autorisent pas le loopback et effectivement, il faut passer par un VPN.
      Essaie toujours dans un moteur de recherche de mettre le nom et modèle de ta livebox avec le mot loopback pour voir si des solutions existent.

      • Nathy dit :

        Il s’agit bien d’un problème de loopback avec ma livebox (Livebox Play) se problème serait réglé sur la dernière livebox 4, je vais voir pour changer car a priori aucune solution n’existe pour le faire fonctionner.
        Merci encore

  44. Fonio Patrick dit :

    Bonjour,

    Tout d’abord toutes mes félicitations pour le tutoriel , moi qui ne suis pas vraiment un pro du clavier , j’ai (presque) réussi à arriver au bout ( la partie chiffrage m’a posé quelques problèmes, mais il y a des gens de bonne ressource).
    J’ai quand même du louper quelque chose, ou alors quelque chose m’échappe, mais je n’ai pas vu ni où, ni comment on créait un utilisateur qui n’ait pas les droits d’administration sur le site.
    Actuellement je me connecte avec le login admin ( bien sûr) et le mdp qui va bien avec. Je suppose qu’on doit créer quelque part de simples membres avec juste des droits de lecture et d’écriture sans pouvoir toucher au reste.
    Merci pour ce dernier coup de pouce.

  45. Fonio Patrick dit :

    Bon, désolé, fallait vraiment pas être bien futé pour ne pas trouver la solution. Voilà, c’est fait, excusez pour le dérangement..

  46. Thibaud dit :

    Bonjour,
    Tout d’abord merci pour ce superbe tutoriel. BRAVO

    J’ai un probleme lorsque je tape l’adresse de mon serveur pour acceder à la page d’accueil de nextcloud.
    Il m’affiche :
    This site can’t be reached
    squadeur.duckdns.org took too long to respond.

    Sachant que si je tape 192.168.0.20 (adresse de mon pi), j’accède à la page de Apache de mon serveur.
    J’ai bien respecté toutes les étapes de ton tutoriel
    Qu’est ce que je peux faire pour remédier à ce problème ?

  47. Thorgalix dit :

    Merci beaucoup pour ce tuto qui est super bien fait et super bien détaillé.
    J’ai eu le soucis avec certbot mais j’ai trouvé la solution sur https://github.com/certbot/certbot/issues/5405
    avec la réponse de jfmessierdotca.
    J’avais déjà installé Owncloud sur un Synology mais une vieille version. Il fallait que je rachète un Synology plus récent pour avoir accès à un Owncloud plus récent aussi (un problème de version de PHP).
    Bref, votre tuto m’a orienté vers la solution Raspberry Pi 3 + NextCloud.

    Merci beaucoup

Laisser un commentaire

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