NextCloud : Migration de serveur … quelle misère.

J’ai voulu faire une migration de serveur :

Ancien:

  • IP : 192.168.1.27
  • OS : Ubuntu 22.04.3 LTS
  • NGNIX : nginx version: nginx/1.18.0 (Ubuntu)
  • PHP : PHP 8.1.2-1ubuntu2.14 (cli)
  • MARIADB : 10.11.6-MariaDB-0+deb12u1 Debian 12
  • NEXTCLOUD : 28.0.2
    • Path : /usr/share/nginx/nextcloud/

Nouveau :

  • IP : 192.168.1.113
  • OS : Debian GNU/Linux 12 (bookworm)
  • NGNIX : nginx version: nginx/1.22.1
  • PHP : PHP 8.2.7 (cli)
  • MARIADB : 10.6.16-MariaDB-0ubuntu0.22.04.1 Ubuntu 22.04
  • NEXTCLOUD : 28.0.2
    • Path : /var/www/nextcloud/

Migration :

1- Installation des softwares, en bref ( attention, PHP force l’installation de apache2 ) :

# apt-get install net-tools
# apt update && apt upgrade
# apt-get install locate
# apt install nginx
# apt install php php-cli php-fpm php-json php-common php-mysql php-zip php-gd php-intl php-curl php-xml php-mbstring php-bcmath php-gmp
# systemctl stop apache2
# systemctl disable apache2
# apt install mariadb-server mariadb-client
# apt-get install php-memcached php-apcu
# apt-get install vim
# apt install ffmpeg
# mysql_secure_installation

2 – Copie des fichiers NextCloud d’un serveur vers l’autre

# scp ...
# chown -R www-data:www-data /var/www/nextcloud/

3 – Migration de la base de données

# mariadb -u root < fullBackupFile.sql

4 – Modification des fichiers de configurations

- /etc/nginx/nginx.conf
- /etc/nginx/conf.d/nextcloud.conf
- /etc/nginx/conf.d/nextcloud-local.conf
- /etc/nginx/sites-enabled/default
- /etc/php/8.2/fpm/php.ini
- /etc/php/8.2/mods-available/apcu.ini
    - apc.enable_cli=1

5- Ajout de la crontab

- crontab -u www-data -e
*/5 * * * * php -f /var/www/nextcloud/cron.php

6 – Syncho

sudo -u www-data php   /var/www/nextcloud/occ  maintenance:repair
sudo -u www-data php   /var/www/nextcloud/occ db:convert-filecache-bigint

7 – Fix de quelques problèmes :

chmod +x /var/www/nextcloud/apps/memories/bin-ext/go-vod-amd64
chmod +x /var/www/nextcloud/apps/memories/bin-ext/exiftool-amd64-glibc

 

Problème restant :

« Veuillez contacter votre administrateur. Si vous êtes un administrateur, éditez la variable « trusted_domains » dans le fichier config/config.php comme l’exemple dans le fichier config/config.sample.php. »

 

J’ai du mal à comprendre pourquoi, quand je regarde la configuration :

# sudo -u www-data php   /var/www/nextcloud/occ config:system:get trusted_domains
192.168.1.113
192.168.1.27
# hostname
nextcloud
# sudo -u www-data php /var/www/nextcloud/occ -V 
Cyber-neurones 28.0.2

J’ai essayé plein de configuration différente sans succès.

Quand je fais un « locate », j’ai bien qu’un seul fichier de configuration :

# locate config/config.php 
/var/www/nextcloud/config/config.php

Quand je regarde les logs :

# tail -f  /var/www/nextcloud/data/nextcloud.log 
...
{"reqId":"56HwLNpfAtmOHSqRYQez","level":1,"time":"2024-02-13T08:07:16+01:00",
"remoteAddr":"192.168.1.27","user":"--","app":"core",
"method":"GET","url":"/index.php",
"message":"Trusted domain error. \"192.168.1.27\" tried to access using \"192.168.1.113\" as host.",
"userAgent":"Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:122.0) Gecko/20100101 Firefox/122.0",
"version":"28.0.2.5","data":{"app":"core"}}
...

Finalement c’est tombé en marche … impossible de comprendre pourquoi.

# sudo -u www-data php   /var/www/nextcloud/occ config:system:get trusted_domains
192.168.1.113
192.168.1.27
nextcloud
nginx
Cyber-neurones
localhost
192.168.1.1

Normalement je devrais avoir que la première ligne … Misère.

Les erreurs restantes :
– MySQL est utilisée comme base de données mais ne supporte pas les caractères codés sur 4 octets. Pour pouvoir manipuler les caractères sur 4 octets (comme les émoticônes) sans problème dans les noms de fichiers ou les commentaires par exemple, il est recommandé d’activer le support 4 octets dans MySQL. Pourr plus de détails, se reporter à la page de documentation à ce sujet
– 43 erreurs dans les journaux depuis 6 février 2024
Server has no maintenance window start time configured. This means resource intensive daily background jobs will also be executed during your main usage time. We recommend to set it to a time of low usage, so users are less impacted by the load caused from these heavy tasks. Pour plus d’information, voir la documentation
– Impossible de vérifier la prise en charge JavaScript. Veuillez vérifier manuellement si votre serveur web offre des fichiers .mjs en utilisant le type MIME JavaScript.
– PHP ne semble pas être configuré de manière à récupérer les valeurs des variables d’environnement. Le test de la commande getenv(« PATH ») retourne seulement une réponse vide. Pour plus d’information, voir la documentation
– Le module PHP OPcache n’est pas correctement configuré. 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 à « 8 ».. Pour plus d’information, voir la documentation
– L’en-tête HTTP « X-Robots-Tag » n’est pas configurée pour être égale à « noindex, nofollow ». Ceci constitue un risque potentiel relatif à la sécurité et à la vie privée étant donné qu’il est recommandé d’ajuster ce paramètre.
– Votre serveur web n’est pas correctement configuré pour distribuer des fichiers .woff2. C’est une erreur fréquente de configuration Nginx. Pour Nextcloud 15, il est nécessaire de la régler pour les fichiers .woff2. Comparer votre configuration Nginx avec la configuration recommandée dans notre documentation
– La base de données est actuellement utilisée pour les verrous. Afin d’améliorer les performances, veuillez si possible configurer un cache mémoire. Pour plus d’information, voir la documentation
– Cette instance ne dispose pas de plusieurs modules PHP recommandés. Il est recommandé de les installer pour améliorer les performances, et la compatibilité : bz2. Pour plus d’information, voir la documentation
– Votre installation n’a pas de préfixe de région par défaut. C’est nécessaire pour valider les numéros de téléphone dans les paramètres du profil sans code pays. Pour autoriser les numéros sans code pays, veuillez ajouter « default_phone_region » avec le code ISO 3166-1 respectif de la région dans votre fichier de configuration. Pour plus d’information, voir la documentation
– Le module PHP « imagick » n’est pas actif mais l’application Theming est activée. Pour que la génération du Favicon fonctionne correctement, ce module doit être installé et actif. Pour plus d’information, voir la documentation

 

J’ai donc ajouté quelques modules :

# apt install software-properties-common curl -y
# apt install libpng-dev libjpeg-dev libtiff-dev
# apt-get install php-bz2
# apt install imagemagick
# apt-get -y install php-imagick
# systemctl restart php8.2-fpm

A finir …

NextCloud : Passage en version 27.0.1

En passant

Pas de problème à noter, j’ai du lancer une commande en ligne :

# sudo -u www-data php /usr/share/nginx/nextcloud/occ  db:add-missing-indices
Check indices of the share table.
Check indices of the filecache table.
Adding additional parent index to the filecache table, this can take some time...
Filecache table updated successfully.
Check indices of the twofactor_providers table.
Check indices of the login_flow_v2 table.
Check indices of the whats_new table.
Check indices of the cards table.
Check indices of the cards_properties table.
Check indices of the calendarobjects_props table.
Check indices of the schedulingobjects table.
Check indices of the oc_properties table.
Check indices of the oc_jobs table.
Check indices of the oc_direct_edit table.
Check indices of the oc_preferences table.
Check indices of the oc_mounts table.
Adding mounts_user_root_path_index index to the oc_mounts table, this can take some time...
oc_mounts table updated successfully.
Check indices of the oc_systemtag_object_mapping table.
Adding systag_by_tagid index to the oc_systemtag_object_mapping table, this can take some time...
oc_systemtag_object_mapping table updated successfully.
Adding additional textstep_session index to the oc_text_steps table, this can take some time...
oc_text_steps table updated successfully.

 

NEXTCLOUD : Les modèles de machine learning doivent encore être téléchargés.

J’ai vu l’erreur suivante sur NEXTCLOUD :  » Les modèles de machine learning doivent encore être téléchargés. »

J’ai donc fait ceci :

cd /usr/share/nginx/nextcloud/
sudo -u www-data php --define apc.enable_cli=1 occ recognize:download-models

 

Ensuite le message a changé : »Les modèles de machine learning ont été téléchargés avec succès. »

J’ai donc voulu continuer en ligne de commande :

sudo -u www-data php --define apc.enable_cli=1 occ recognize:classify

A suivre …

Python/BRISQUE : Voir la « qualité » des photos NEXTCLOUD avec un script

C’est pas vraiment top, dès qu’il y a de l’herbe j’ai la valeur > 100. C’était donc une fausse bonne idée …

Voici le script que j’ai fait :

#!/usr/bin/env python3.6
from libsvm import svmutil
from brisque import *
import sys
import os.path
import glob

brisq = BRISQUE()

for filename in glob.iglob('./Nextcloud/Photos/**', recursive=True):
     if (filename.endswith('.jpg')):
         temp=brisq.get_score(filename)
         if (temp > 100):
             print(filename)
             print(temp)

Par exemple : BRISQUE = 107.82606599602599 pour cette photo :