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.

nextcloud parametre securite

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.

 

nextcloud verification cache

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.

25 Responses

  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,
          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.

  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

Laisser un commentaire

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