Dans tout les exemples fournis, on assume que Nextcloud est dans /data/web/nextcloud
et on assume que les données de Nextcloud sont dans /data/cloud
#!/bin/bash VERSION=20.1.0 # On télécharge, on décompresse cd /tmp wget https://download.nextcloud.com/server/releases/nextcloud-$VERSION.zip unzip nextcloud-$VERSION.zip mv nextcloud /data/web/nextcloud.new # On copie cd /data/web/ # On passe en maintenance, on migre les modules externes et la config sudo -u www-data php nextcloud/occ maintenance:mode --on cd /data/web/nextcloud.new/apps/ cp -Rp ../../nextcloud/apps/metadata ../../nextcloud/apps/extract ../../nextcloud/apps/keeweb . cd /data/web/ mv nextcloud nextcloud.old && mv nextcloud.new nextcloud cp nextcloud.old/config/config.php nextcloud/config/ # on met les bonnes permissions chown www-data:www-data -R nextcloud # On upgrade et on enlève le mode maintenance sudo -u www-data php nextcloud/occ upgrade sudo -u www-data php nextcloud/occ maintenance:mode --off # On fait le ménage rm /tmp/nextcloud-$VERSION.zip # rm -rf /data/web/nextcloud.old # Et voila ! \o/
sudo -u www-data /usr/bin/php /data/web/nextcloud/updater/updater.phar
Gagner de l'espace disque en vidant les corbeilles et les anciennes versions :
sudo -u www-data /usr/bin/php /data/web/nextcloud/occ trashbin:cleanup --all-users sudo -u www-data /usr/bin/php /data/web/nextcloud/occ versions:cleanup
On Rsync :
rsync -e "ssh -p 22" -avzs --no-perms --no-owner --no-group --delete <repertoireSource> root@cloud:/data/cloud/cgx/files/<repertoireDestination>
On ajuste les permissions et on met à jour le répertoire en question :
ssh -p 22 cloud "chown www-data:www-data -R /data/cloud/<user>/files/<repertoireDestination>" ssh -p 22 cloud "sudo -u www-data /usr/bin/php /data/web/nextcloud/occ files:scan -p cgx/files/<repertoireDestination>"
C'est souvent parce qu'avec FPM, la version CLI de php.ini doit avoir autorisé APC. Il faut rajouter dans /etc/php/x.x/cli/php.ini
:
apc.enable_cli=1
Et il faut rajouter ou modifier ces directives dans le fichier de conf de Nextcloud :
'trusted_domains' => array ( 0 => 'cloud.domain.tld', 1 => 'domain.tld', 2 => 'otherdo.main', ), 'trusted_proxies' => array ( 0 => '192.168.0.1', 1 => '2a08:e01a:a5b9:15e0:17e4:f709:e5a8:0441', ),
Il faut créer un nouveau répertoire quelque part, et changer son owner:group :
mkdir /data/cloud/.skeleton && chown www-data:www-data /data/cloud/.skeleton
Et il faut rajouter cette directive dans le fichier de conf de Nextcloud :
'skeletondirectory' => '/data/cloud/.skeleton',
Pour info, le répertoire contenant les fichiers par défaut se situe dans /core/skeleton