Nextcloud : Update with command line

Je me fais un petit mémo pour la prochaine fois.
Les commandes :

# sudo -u www-data php /usr/share/nginx/nextcloud/updater/updater.phar 
Nextcloud Updater - version: v29.0.0-1-g9293bcb dirty

Current version is 29.0.4.

Update to Nextcloud 29.0.5 available. (channel: "stable")
Following file will be downloaded automatically: https://download.nextcloud.com/server/releases/nextcloud-29.0.5.zip
Open changelog ↗

Steps that will be executed:
[✔] Check for expected files
[✔] Check for write permissions
[✔] Create backup
[✔] Downloading
[✔] Verify integrity
[ ] Extracting
[ ] Enable maintenance mode
[ ] Replace entry points
[ ] Delete old files
[ ] Move new files in place
[ ] Done

Continue update? [y/N] y
...
Update of code successful.

Should the "occ upgrade" command be executed? [Y/n] Y
...
# sudo -u www-data php /usr/share/nginx/nextcloud/occ maintenance:repair
# sudo -u www-data php /usr/share/nginx/nextcloud/occ upgrade
Nextcloud is already latest version
# sudo systemctl restart nginx.service
# sudo systemctl restart php8.1-fpm.service

Les dernières commandes sont pour ne pas avoir le problème : « Downgrading is not supported and is likely to cause unpredictable issues (from 29.0.5.1 to 29.0.4.1) »

Misère.

NextCloud : Saturation de l’espace disque via l’App Backup

Voici mes versions de NextCloud :

# sudo -u www-data php /usr/share/nginx/nextcloud/occ status
  - installed: true
  - version: 28.0.5.1
  - versionstring: 28.0.5
  - edition: 
  - maintenance: false
  - needsDbUpgrade: false
  - productname: Nextcloud
  - extendedSupport: false
 # sudo -u www-data php /usr/share/nginx/nextcloud/occ app:list | grep "backup:"
  - backup: 1.4.0

L’espace disque de l’Application Backup:

# du -sh /datadisk/nginx/nextcloud/data/appdata_ocjrumk06tlj/*
4,3M    /datadisk/nginx/nextcloud/data/appdata_ocjrumk06tlj/appstore
3,4M    /datadisk/nginx/nextcloud/data/appdata_ocjrumk06tlj/avatar
470G    /datadisk/nginx/nextcloud/data/appdata_ocjrumk06tlj/backup
12K /datadisk/nginx/nextcloud/data/appdata_ocjrumk06tlj/calendar
176K    /datadisk/nginx/nextcloud/data/appdata_ocjrumk06tlj/cms_pico
724K    /datadisk/nginx/nextcloud/data/appdata_ocjrumk06tlj/css
8,0K    /datadisk/nginx/nextcloud/data/appdata_ocjrumk06tlj/dashboard
2,0M    /datadisk/nginx/nextcloud/data/appdata_ocjrumk06tlj/dav-photocache
64K /datadisk/nginx/nextcloud/data/appdata_ocjrumk06tlj/identityproof
72K /datadisk/nginx/nextcloud/data/appdata_ocjrumk06tlj/js
8,8M    /datadisk/nginx/nextcloud/data/appdata_ocjrumk06tlj/photos
29G /datadisk/nginx/nextcloud/data/appdata_ocjrumk06tlj/preview
12K /datadisk/nginx/nextcloud/data/appdata_ocjrumk06tlj/text
2,1M    /datadisk/nginx/nextcloud/data/appdata_ocjrumk06tlj/theming

# du -sh /datadisk/nginx/nextcloud/data/appdata_ocjrumk06tlj/backup/*
4,4G    /datadisk/nginx/nextcloud/data/appdata_ocjrumk06tlj/backup/20240213180150-differential-mJwnsegWFWa32Ws
4,4G    /datadisk/nginx/nextcloud/data/appdata_ocjrumk06tlj/backup/20240216174222-differential-aEAkE921tEAZJxK
8,6G    /datadisk/nginx/nextcloud/data/appdata_ocjrumk06tlj/backup/20240219201105-differential-MNagUjAr5pJjKrJ
4,3G    /datadisk/nginx/nextcloud/data/appdata_ocjrumk06tlj/backup/20240312015208-differential-1gpv21O5ONWGpiQ
4,5G    /datadisk/nginx/nextcloud/data/appdata_ocjrumk06tlj/backup/20240315014502-differential-DzBeULCGG2VPXpG
8,6G    /datadisk/nginx/nextcloud/data/appdata_ocjrumk06tlj/backup/20240318014002-differential-lbn3GUyTard9ovF
4,5G    /datadisk/nginx/nextcloud/data/appdata_ocjrumk06tlj/backup/20240409020112-differential-rKxklcdNLfIOK1B
7,1G    /datadisk/nginx/nextcloud/data/appdata_ocjrumk06tlj/backup/20240412015108-differential-ZcGBuQaaneze68g
12G /datadisk/nginx/nextcloud/data/appdata_ocjrumk06tlj/backup/20240415013607-differential-FipWERobM4dFKdL
7,9G    /datadisk/nginx/nextcloud/data/appdata_ocjrumk06tlj/backup/20240427012058-differential-vTdMvZ5lrnuQe9M
9,6G    /datadisk/nginx/nextcloud/data/appdata_ocjrumk06tlj/backup/20240430015156-differential-HPRNz4QUGnu9jWN
9,7G    /datadisk/nginx/nextcloud/data/appdata_ocjrumk06tlj/backup/20240503013608-differential-Qhri1qU2q3ybgNL
202G   /datadisk/nginx/nextcloud/data/appdata_ocjrumk06tlj/backup/20240504002610-full-4Ys336x2mazzHsk
184G   /datadisk/nginx/nextcloud/data/appdata_ocjrumk06tlj/backup/20240505182107-full-dGq71cdoZ18CEXo

J’ai donc fait le ménage :

# rm -rf /datadisk/nginx/nextcloud/data/appdata_ocjrumk06tlj/backup/20240504002610-full-4Ys336x2mazzHsk
# rm -rf /datadisk/nginx/nextcloud/data/appdata_ocjrumk06tlj/backup/*-differential-*

J’ai pas trouvé de commande pour le faire autrement.
J’ai du mal à comprendre comment je peux avoir 470 Go de backup alors que je dois avoir 140 Go de données.
Pour finir j’ai lancé :

# sudo -u www-data php /usr/share/nginx/nextcloud/occ  files:scan --all
....
+---------+--------+-----+---------+---------+--------+--------------+
| Folders | Files  | New | Updated | Removed | Errors | Elapsed time |
+---------+--------+-----+---------+---------+--------+--------------+
| 19641   | 277574 | 0   | 382     | 0       | 0      | 00:26:36     |
+---------+--------+-----+---------+---------+--------+--------------+
...
# sudo -u www-data php /usr/share/nginx/nextcloud/occ trashbin:cleanup --all-users

Nextcloud : Blocage suite à une mise à jours : 28.0.2 => 28.0.3

En passant

J’ai du faire :

# sudo -u www-data php /usr/share/nginx/nextcloud/occ maintenance:mode --off
# sudo -u www-data php /usr/share/nginx/nextcloud/occ maintenance:repair
# sudo -u www-data php /usr/share/nginx/nextcloud/occ maintenance:mimetype:update-db
# sudo -u www-data php /usr/share/nginx/nextcloud/occ db:add-missing-indices
# sudo -u www-data php /usr/share/nginx/nextcloud/occ db:convert-filecache-bigint
# sudo -u www-data php /usr/share/nginx/nextcloud/occ db:add-missing-primary-keys
# sudo systemctl restart nginx.service
# sudo systemctl restart php8.1-fpm.service

Et c’est reparti …

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 …