Présentation du problème
Du fait de fonctionner sous OpenBSD, la commande occ
ne peut pas s’exécuter. En effet, autant le service web que PHP sont tous les deux sous chroot.
Quand vous exécutez occ
, vous obtenez le message d’erreur suivant :
Code : sh
Your data directory is invalid
Ensure there is a file called ".ocdata" in the root of the data directory.
Cannot create "data" directory
This can usually be fixed by giving the webserver write access to the root directory. See https://docs.nextcloud.com/server/16/go.php?to=admin-dir_permissions
Résoudre ce problème est simple !
Éditez le fichier de configuration nextcloud/config/config.php
et modifiez la valeur de la variable datadirectory
, tel que :
'datadirectory' => ((php_sapi_name() == 'cli') ? '/var/www' : '') . '/htdocs/data',
Bien-sûr le chemin /htdocs/data
doit correspondre à votre cas réel.
Maintenant vous pouvez utiliser sans soucis la commande occ
Néanmoins, n’oubliez pas de supprimez la modification avant d’utiliser l’interface web, sinon vous ne pourrez pas vous connecter !
Problème remarqué par mes soins : lors du redémarrage du service PHP et/ou web, cela tend à récrire la variable en préfixant la variable datadirectory de /var/www/, empêchant le bon fonctionnement du site web, et provoquant une erreur 500. Si c’est votre cas, ré-éditez le fichier de config et supprimez le préfixe en question.
TL;DR
Plus simple :
- Pour “activer” occ :
sed -i -e 's#/htdocs#/var/www/htdocs#' nextcloud/config/config.php
- Pour “désactiver” occ :
sed -i -e 's#/var/www/htdocs#/htdocs#' nextcloud/config/config.php
Remerciement
Je tiens à remercier @h3artbl33d qui a trouvé l’astuce… car pendant des mois, cela m’a empêché d’utiliser la commande occ
.