Chemin de la bdd SQLite erroné en SPIP 4.4 dans un cas spécial
Le cas spécial est avec un répertoire vendor/ en lien symbolique
- spip-league/kernel#3
- La BDD cherché avec Adminer 5 chez l’hébergeur N*t a un chemin erroné, tel que
/opt/.../matrices/public/.../spip/config/bases/spip.sqliteau lieu de/home/site/.../config/bases/spip.sqliteet cela à cause de la résolution d’un lien symbolique dans vendor/ pour calculer le chemin racine de SPIP qui est utilisé ensuite pour déterminer le chemin du répertoire des BDD appelé ici : https://git.spip.net/spip-contrib-extensions/adminer/-/blob/6e7b224b560d6d563b409ecbab20cdc823f4567d/index.php#L61
if (function_exists('\SpipLeague\Component\Kernel\app')) {
$dir_base = app()->getEtcDir() . 'bases/';
} elseif (defined('_ROOT_CWD')) {
...
Ici app()->getEtcDir() retourne
-
/opt/.../matrices/.../spip/configau lieu de /home/site/.../config
Une correction temporaire (pour ce cas d’Adminer) peut être d’inverser les deux tests, car _ROOT_CWD n’est pas affecté en SPIP 4.4 par ce problème.
Reste à voir s’il faut corriger quelque chose ou non pour le kernel.