jp.buirey

Webtrees
« le: 13 novembre 2015 18:32:44 »
Bonjour.
Depuis la migration vers php 5.6.8, mon logiciel de généalogie PHPgedview ne fonctionne plus.
son dévellopement étant quasiment abandonné, j'ai voulu me tourner vers webtrees.
toutefois , à l'installation je rencontre une erreur
Fatal error: Call to a member function exec() on null in /var/www/sda/7/2/monsite/webtrees/app/Database.php on line 99

Quelqu'un  a  t'il déja installé ce logiciel sur les pages perso free ?

Le forum du site de développement de webtrees n 'est pas très bavard sur le sujet.



martinet

Re : Webtrees
« Réponse #1 le: 31 mai 2016 14:43:31 »
C'est un peu tard pour répondre, déjà 6 mois, mais cela peut aider d'autres personnes pour résoudre ce problème.
Pour passer cette erreur, il faut modifier le fichier Database.php qui se trouve dans :  app
avec un éditeur de texte comme Notepad++

Aux 2 lignes 88 et 89 vous avez :
88   "mysql:unix_socket={$DBHOST};dbname={$DBNAME}" :
89   "mysql:host={$DBHOST};dbname={$DBNAME};port={$DBPORT
}"

Il faut remplacer  mysql  par  sql  comme ceci :

88   "sql:unix_socket={$DBHOST};dbname={$DBNAME}" :
89   "sql:host={$DBHOST};dbname={$DBNAME};port={$DBPORT}
"

Enregistrer le fichier et transférer-le sur votre serveur.

Vous obtenez la page de Connexion à la base de données que vous configurez avec vos données et que vous validez.

Mais après validation vous avez droit à :

Impossible de se connecter avec ces paramètres. Le serveur a renvoyé l’erreur suivante.
could not find driver
Vérifiez les paramètres et essayez à nouveau.


Dans le même fichier Database.php que vous venez de modifier, revenez a l'état d'origine, c'est à dire les sql en mysql  comme ceci :

88   "mysql:unix_socket={$DBHOST};dbname={$DBNAME}" :
89   "mysql:host={$DBHOST};dbname={$DBNAME};port={$DBPORT}"


Enregistrer et transférer sur votre serveur.
Vous pouvez poursuivre l’installation sans problèmes.

Personnellement, lorsque je dois modifier un fichier sur le serveur, pour pouvoir revenir en arrière sans soucis, je le renomme comme ceci pour que ce soit visible :
Database.php____
Dans cette manip, cela évite de modifier le fichier Database.php une deuxième fois, puisqu’il suffira de supprimer sur le serveur le fichier modifié et d’enlever les ____ sur le fichier d’origine.