%
image/svg+xml

Nextcloud Php Chroot OpenBSD (astuce)

Article publié, le et modifié le
2 minutes de lecture

Cet article contient 252 mots.
Source brute de l'article :
Commit version : e21600e

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.