Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
doc:nextcloud [2022/02/19 12:20] – Modif : ajout d'un chapitre sur les conditions du servic Zatalyzdoc:nextcloud [2023/09/30 12:12] (Version actuelle) – [Bidouilles de sysadmin pour corriger des problèmes spécifiques] Zatalyz
Ligne 74: Ligne 74:
  
 ==== Bidouilles de sysadmin pour corriger des problèmes spécifiques ==== ==== Bidouilles de sysadmin pour corriger des problèmes spécifiques ====
-  * **"Quelque chose s'est mal passé lors de l'exécution de la dernière tâche il y a X jours."** => si cette erreur apparaît ET que tout semble aller bien, c'est juste que l'erreur reste dans les logs et que Nextcloud continue de la juger pertinente alors que non. Il faut forcer un rafraîchissement. Pour cela :+=== "Quelque chose s'est mal passé lors de l'exécution de la dernière tâche il y a X jours." === 
 +Si cette erreur apparaît ET que tout semble aller bien, c'est juste que l'erreur reste dans les logs et que Nextcloud continue de la juger pertinente alors que non. Il faut forcer un rafraîchissement. Pour cela :
     - Repasser en mode "Ajax"     - Repasser en mode "Ajax"
     - Rafraichir une page dans la partie "fichier"     - Rafraichir une page dans la partie "fichier"
     - Remettre la gestion via cron.     - Remettre la gestion via cron.
     - Y'a plus d'erreur ! Jusqu'à la prochaine.     - Y'a plus d'erreur ! Jusqu'à la prochaine.
-  * **"Memcache \\OC\\Memcache\\APCu not available for local cache"** =Il faut activer ACPCu pour les requêtes CLI, afin que cron.php et occ puissent y faire appel ([[https://help.nextcloud.com/t/nc13-memcache-oc-memcache-apcu-not-available-for-local-cache/31027|Source]]). <code>echo 'apc.enable_cli=1' >> /etc/php/7.0/mods-available/apcu.ini</code> + 
 +=== Memcache \\OC\\Memcache\\APCu not available for local cache === 
 + 
 +Il faut activer ACPCu pour les requêtes CLI, afin que cron.php et occ puissent y faire appel ([[https://help.nextcloud.com/t/nc13-memcache-oc-memcache-apcu-not-available-for-local-cache/31027|Source]]). <code>echo 'apc.enable_cli=1' >> /etc/php/7.0/mods-available/apcu.ini</code>  
 + 
 +=== Tampon mémoire des chaînes internes OPcache presque plein === 
 +Ce qu'on a comme message : 
 +<WRAP center round help 90%> 
 +Le tampon mémoire des chaînes internes OPcache est presque plein. Pour vous assurer que les chaînes répétitives peuvent être mise en cache, il est recommandé de définir la variable opcache.interned_strings_buffer de votre fichier de configuration PHP à une valeur supérieure à 10. 
 +</WRAP> 
 + 
 +Un coup de ''sudo nano /etc/php/8.2/fpm/php.ini'' (modifiez avec votre dernière version de php) et assurez-vous que les paramètres soient comme ça : 
 +<code>; The OPcache shared memory storage size. 
 +opcache.memory_consumption=256 
 +; The amount of memory for interned strings in Mbytes. 
 +opcache.interned_strings_buffer=16</code> 
 + 
 +Et redémarrer php : 
 +  sudo service php8.0-fpm restart 
 + 
 +=== Liens publics cassés après la migration de données === 
 + 
 +== Origine == 
 + 
 +Vu que nextcloud ne supporte pas officiellement le déplacement du dossier data, dans ses liens publics, il garde des références à l'ancien chemin des fichiers : forcément, ça ne marche pas ... 
 +Pour chaque partage, nextcloud stocke dans quel "storage" ce lien est (un id numérique), et dans une autre table il stocke la correspondance "id numérique de stockage" <=> chemin réel sur le disque. Du coup, quand on indique à nextcloud que le dossier de données sera désormais dans /var/stockage/mmf/nextcloud_data au lieu de /var/www/cloudmmf/data, au lieu de modifier le stockage /var/www/cloudmmf/data, il crée un nouveau "storage" qui pointe vers ce dossier (>;<). Les liens de partages pointent donc vers l'ancien "storage", qui pointe sur un endroit inexistant sur le disque ... 
 + 
 +== Identifier le problème == 
 +Pour voir ça, on trouve le token d'un partage qui est censé marcher, mais ne marche pas, par exemple https://cloud.millionsmissing.fr/s/s46w79Hpag4xGTa. Le token est ce qu'il y a dans l'url après le ''/s/'', donc ici ''s46w79Hpag4xGTa''. On va ensuite lancer mysql et farfouiller dans la DB : 
 +<code> 
 +sudo mysql -u root 
 +</code> 
 + 
 +<code> 
 +USE mmf_prod; 
 +SELECT * FROM oc_share WHERE token='s46w79Hpag4xGTa'; 
 +</code> 
 +On voit bien que le partage existe, et que le fichier sur lequel il pointe est ''71756''
 +<code> 
 +| 281 |          3 | NULL       | NULL     | chantal   | chantal         NULL | file      | 71756       | NULL        |       71756 | /Partages/Collège_médecine_interne_4ème_Ed.pdf    |           1 | 1644324948 |        0 | NULL       | s46w79Hpag4xGTa |         0 | NULL                      0 | NULL |             0 |       | 
 +</code> 
 +Du coup, on regarde ce fichier ''71756''
 +<code> 
 +SELECT * FROM oc_filecache WHERE fileid='71756'; 
 +</code> 
 +Et là, on voit qu'il pointe vers le storage ''13''
 +<code> 
 +|  71756 |      13 | __groupfolders/2/RESSOURCES/Ressources_DocTravail/AppellationsEM_SFC/Collège_médecine_interne_4ème_Ed.pdf    | 565f2141283f7117bd246d166f7de95e |  72579 | Collège_médecine_interne_4ème_Ed.pdf    |        5 |        3 | 8194568 | 1624638322 |    1624638322 |         0 |                0 | b33590d3fe04a1f3e463081ad34d7c89 |          27 |          | 
 +</code> 
 +Du coup, on regarde dans notre table de storage ce que l'on a : 
 +<code> 
 ++------------+-------------------------------------------------------------+-----------+--------------+ 
 +| numeric_id | id                                                          | available | last_checked | 
 ++------------+-------------------------------------------------------------+-----------+--------------+ 
 +|          1 | local::/home/millionsmissing/www/html/nc_millionsmiss/data/ |         1 |         NULL | 
 +|          2 | home::gestionnaire_nc_003                                           1 |         NULL | 
 +|          6 | home::gestionnaire_mm                                               1 |         NULL | 
 +|          7 | home::chantal                                                       1 |         NULL | 
 +|          8 | home::amalia                                                |         1 |         NULL | 
 +|         11 | home::CarineB                                                       1 |         NULL | 
 +|         12 | local::/var/www/clients/client10/web79/web/data/            |         1 |         NULL | 
 +|         13 | local::/var/www/mmf/data/                                           1 |         NULL | 
 +|         14 | home::celineg                                                       1 |         NULL | 
 +|         15 | local::/var/stockage/mmf/nextcloud_data/                    |         1 |         NULL | 
 +|         16 | home::glorf                                                         1 |         NULL | 
 ++------------+-------------------------------------------------------------+-----------+--------------+ 
 +</code> 
 +On voit bien que le 13 pointe encore vers notre ancien storage ! 
 + 
 +== Résoudre le problème == 
 + 
 +Librement inspiré d'[[https://help.nextcloud.com/t/howto-change-move-data-directory-after-installation/17170|ici]]  
 + 
 +D'abord, on éteint nginx, sinon nextcloud va mettre le bazar dans nos opérations (en recréant un storage sans notre accord) : 
 +<code> 
 +systemctl stop nginx 
 +</code> 
 + 
 +Puis on revient dans la console SQL, et on commence à supprimer le nouveau storage que nextcloud a créé : 
 +<code> 
 +DELETE FROM oc_storage WHERE numeric_id=15; 
 +</code> 
 +Puis on modifie l'ancien storage, pour lui donner le nouveau chemin de nos données : 
 +<code> 
 +UPDATE oc_storage SET id='local::/var/stockage/mmf/nextcloud_data/' WHERE numeric_id=13; 
 +</code> 
 + 
 +Et on peut vérifier que nos modifications ont bien été faites : 
 +<code> 
 +SELECT * FROM oc_storages; 
 +</code> 
 +<code> 
 ++------------+-------------------------------------------------------------+-----------+--------------+ 
 +| numeric_id | id                                                          | available | last_checked | 
 ++------------+-------------------------------------------------------------+-----------+--------------+ 
 +|          1 | local::/home/millionsmissing/www/html/nc_millionsmiss/data/ |         1 |         NULL | 
 +|          2 | home::gestionnaire_nc_003                                           1 |         NULL | 
 +|          6 | home::gestionnaire_mm                                               1 |         NULL | 
 +|          7 | home::chantal                                                       1 |         NULL | 
 +|          8 | home::amalia                                                |         1 |         NULL | 
 +|         11 | home::CarineB                                                       1 |         NULL | 
 +|         12 | local::/var/www/clients/client10/web79/web/data/            |         1 |         NULL | 
 +|         13 | local::/var/stockage/mmf/nextcloud_data/                    |         1 |         NULL | 
 +|         14 | home::celineg                                                       1 |         NULL | 
 +|         16 | home::glorf                                                         1 |         NULL | 
 ++------------+-------------------------------------------------------------+-----------+--------------+ 
 +</code> 
 + 
 +Et voilà, on peut redémarrer nginx : 
 +<code> 
 +systemctl start nginx 
 +</code>
  
 {{tag>Brouillon Documentation TAF}} {{tag>Brouillon Documentation TAF}}
CC Attribution-Share Alike 4.0 International Driven by DokuWiki
doc/nextcloud.txt · Dernière modification : 2023/09/30 12:12 de Zatalyz