Partage
  • Partager sur Facebook
  • Partager sur Twitter

Symfony 4 - Impossible de lancer Postgre sql

Impossible de trouver le driver malgré activation dans le PHP.ini

Sujet résolu
16 août 2021 à 19:23:20

Bonjour à tous ! :D

Je débute sur le grand Symfony, mais cela fait deux jours que je suis naufragé et que je tente une navigation complexe ( et sans radeaux de sauvetage) dans les méandre de google : e rencontre un problème avec le driver de Postgre SQL.

Voila mon problème, quand je lance mon serveur ce message d'erreur apparait et je ne parviens pas à trouver le driver : :p

PS C:\xampp\htdocs\test_project> symfony serve:start
Tailing Web Server log file (C:\Users\Fabrice\.symfony\log\f071fa4c74c14bfb85e608f2bdce716909178c1b.log)
Tailing PHP-CGI log file (C:\Users\Fabrice\.symfony\log\f071fa4c74c14bfb85e608f2bdce716909178c1b\79ca75f9e90b4126a5955a33ea6a41ec5e854698.log)
                                                                                                                        
 [OK] Web server listening                                                                                              
      The Web server is using PHP CGI 8.0.9                                                                             
      https://127.0.0.1:8000                                                                                            
                                                                                                                        

[Application] Aug 16 11:38:07 |CRITICA| REQUES Exception thrown when handling an exception (Doctrine\DBAL\Exception\DriverException: An exception occurred in driver: could not find driver at C:\xampp\htdocs\test_project\vendor\doct
rine\dbal\lib\Doctrine\DBAL\Driver\AbstractPostgreSQLDriver.php line 102)
[Application] Aug 16 11:38:07 |CRITICA| PHP    Uncaught Exception: An exception occurred in driver: could not find driver
[Application] Aug 16 11:38:13 |INFO   | REQUES Matched route "bonjour". method="GET" request_uri="http://127.0.0.1:8000/bonjour" route="bonjour" route_parameters={"_controller":"App\\Controller\\BonjourController::index","_route":"
bonjour"}
[Application] Aug 16 11:38:13 |DEBUG  | SECURI Checking for authenticator support. authenticators=0 firewall_name="main"
[Application] Aug 16 11:38:13 |CRITICA| REQUES Uncaught PHP Exception Doctrine\DBAL\Exception\DriverException: "An exception occurred in driver: could not find driver" at C:\xampp\htdocs\test_project\vendor\doctrine\dbal\lib\Doctri
ne\DBAL\Driver\AbstractPostgreSQLDriver.php line 102
[Application] Aug 16 11:38:14 |CRITICA| REQUES Exception thrown when handling an exception (Doctrine\DBAL\Exception\DriverException: An exception occurred in driver: could not find driver at C:\xampp\htdocs\test_project\vendor\doct
rine\dbal\lib\Doctrine\DBAL\Driver\AbstractPostgreSQLDriver.php line 102)
|ETC]

J'ai tenté tout un ensemble de solutions sans succès : 

- Activer l'extension dans le fichier php.ini en la décommentant → extension=pdo_pgsql
- Faire attention que PHP le bon fichier de configuration php.ini
- Vérifier que Symfony utilise le bon fichier php.ini → avec la commande symfony check:requirements
- Réinstaller tout PHP / Composer / Xamp / CL Symfony, j'ai même remis Windows à 0 pour partir d'une configuration propre. j'avais tellement testé dans tous les sens que j'avais mis en branle mon serveur local.

- poser un cierge à la chapelle d'open classrooms, on ne sais jamais, je veux croire au miracle ! 

Je ne sais plus vraiment quoi tenter. J'ai même soupçonné un problème sur la version de postgre sql, mais cela n'a rien donner. 

Si vous venez m'aider, d'avance, vraiment merci beaucoup. Je bloque depuis maintenant 2 jours sur le sujet. ^^

Cordialement Fab ! 

-
Edité par fabricetoupet1 16 août 2021 à 19:27:22

  • Partager sur Facebook
  • Partager sur Twitter
16 août 2021 à 21:17:35

Salut

Je ne connais pas assez le binaire symfony, donc je ne suis pas forcément pertinent, mais as-tu aussi vu cette partie de la documentation ?

Autre point : tu as installé XAMPP, qui est un serveur local, pourquoi vouloir utiliser un autre encore ? En gros, tu as installé une centrale nucléaire et tu veux utiliser la dynamo de ton vélo…

  • Partager sur Facebook
  • Partager sur Twitter
16 août 2021 à 21:32:00

Salut,
Est-ce que ta variable d'environnement DATABASE_URL est correcte dans ton fichier .env (ou .env.local ou autre) ?

http://chrishodgsonweb.co.uk/symfony/2018/05/17/symfony4-postgress/

-
Edité par Lottie14 16 août 2021 à 21:32:46

  • Partager sur Facebook
  • Partager sur Twitter

"Commencer est facile, persévérer est un art."

18 août 2021 à 9:08:50

Bonjour à tous, 

Merci beaucoup Ymox, lottie14 et Monkey 3D, désolé de n'avoir pu répondre hier, mais je voulais être certain de bien prendre le temps de les tester chacune de vos solutions :) Et j'ai eu de quoi tester hier pendant un long moments, avec quelques doutes et beaucoup de questions :D

Ymox, j'ai bien regardé dans ta proposition et j'ai testé avec des versions différentes de PHP : le problème reste le même et cela me retourne toujours la même exception : driver not found. Au passage je me suis remis en question sur l'utilisation de Xampp. Tu as raison j'utilisais peut être une usine à Gaz ... Je le conçoit ^^' . J'ai alors réinstaller mon environnement sur wamp project en faisant bien attention de bien paramétrer le PHP.ini. J'ai toujours ce même problème de driver non trouvé. 

Lottie, merci beaucoup pour ton idée pertinente ! Cela m'a permis de mieux comprendre le paramétrage de pgsql. En revanche lorsque je tente de créer ma base doctrine (d'après le liens que tu m'as cité) , le message d'erreur suivant remonte : 

PS C:\wamp64\www\Test_project> symfony console doctrine:database:create

In AbstractPostgreSQLDriver.php line 102:
                                                          
  An exception occurred in driver: could not find driver  
                                                          

In Exception.php line 18:
                         
  could not find driver  
                         

In PDOConnection.php line 39:
                         
  could not find driver  
                         

doctrine:database:create [-s|--shard SHARD] [-c|--connection [CONNECTION]] [--if-not-exists]

C'est comme si il manquait un driver :o, je pense que la console ne peut pas être plus explicite.

Monkey 3D, je teste ca dans la matinée. ;)

Je viens vers vous dès que j'ai des nouvelles et encore Merci ! 

  • Partager sur Facebook
  • Partager sur Twitter
18 août 2021 à 9:23:51

Le souci n'était pas que tu utilisais XAMPP en soi, mais que tu installes une pile serveur (XAMPP, WAMP, AMPPS, Laragon, MAMP, EasyPHP, tout ça sont quelques unes des piles serveur que je connais) et que tu utilises ensuite encore un autre serveur avec le binaire Symfony… Tu pourrais n'avoir que ce dernier et le moteur de bases de données que tu souhaites — d'ailleurs, est-ce bien PostgreSQL que tu souhaites utiliser ? — ou simplement utiliser Apache fourni avec /(W|X)AMPP?/, ça me paraîtrait plus logique.

Note que si PHP te dit que tu n'as pas le bon driver, c'est que tu n'as pas modifié le bon endroit pour la configuration. Après, je t'avoue qu'avoir une pile serveur avec des configurations qui sont déjà différentes selon la ligne de commandes et Apache et en plus un serveur qui gère sa configuration de manière autonome, je comprends qu'il y ait de quoi se perdre.

-
Edité par Ymox 18 août 2021 à 9:24:02

  • Partager sur Facebook
  • Partager sur Twitter
18 août 2021 à 10:56:44

Hey ! merci de ta réponse. 

Juste pour information, afin de ne pas avoir de problème avec PHP, je ne garde à chaque fois qu'un seul serveur et je désinstalle les autres afin de ne pas avoir des fichier en double . Aussi je ré-instale composer afin de le faire pointer vers le bon fichier PHP. 

Merci ! :)

  • Partager sur Facebook
  • Partager sur Twitter
18 août 2021 à 13:45:24

Tu n'as pas qu'un seul serveur si tu as conservé WAMP et que tu utilises symfony serve:start, justement : tu as Apache de WAMP et tu as le serveur lancé par la commande, qui lui est une feature de PHP depuis je-ne-sais-plus quelle version.

  • Partager sur Facebook
  • Partager sur Twitter
29 août 2021 à 10:57:25

Bonjour, 

Merci à tous de votre aide, j'ai enfin trouver la solution grâce à l'aide d'un ami : 

La raison de ce problème viens de composant qui manquaient de Symfony et non d'un problème de paramétrage. Pour se faire il faut ajouter ORM pack de Symfony depuis composer avec la commande suivante : 

composer require symfony/orm-pack
composer require --dev symfony/maker-bundle

Ensuite je suis aller configurer mon fichier .env avec les paramètres sql (username, database, ....) : 

DATABASE_URL="mysql://testUser:root@127.0.0.1:3306/basetest?serverVersion=5.7"

Bien entendu, ajouter les paramètres de votre base de donnée. 

Enfin, j'ai construit ma base depuis la console Symfony : 

symfony console doctrine:database:create

Si jamais ca ne fonctionne pas, tenter de configurer la base depuis le fichier de configuration doctrinte.yaml avec la configuration suivante. Bien entendu, adapter les identifiants à votre base : 

    dbal:
        #url :  '%env(resolve:DATABASE_URL)%'
        dbname: basetest3
        host: localhost
        port: 3306
        user: testUser
        password: root
        driver: mysqli


Entre nous, si vous le pouvez, passez sur le driver  mysql au lieu mysqli

Voila, 

Merci à tous de votre aide

  • Partager sur Facebook
  • Partager sur Twitter
30 août 2021 à 9:35:31

Surprenant comme erreur si c'était bien ça le problème… parce que là, la dernière possibilité que tu donnes configure la DBAL (et c'est d'ailleurs à ce niveau que la connexion est configurée par défaut, d'où le dbal première ligne du dernier code), donc je ne comprends pas comment la couche ORM peut régler le souci de driver pas trouvé.

Après, je vois que tu es passé sur MySQL, j'aimerais relever que j'avais demandé si c'était bien PostgreSQL que tu souhaitais utiliser, je n'ai pas eu de réponse jusqu'à aujourd'hui.

  • Partager sur Facebook
  • Partager sur Twitter
30 août 2021 à 18:27:02

Bonjour,

Mon grain de sel ...

De lancer PostgreSQL en titre on passe à une base mysql en fin de fil ! Tiens tiens quel était donc la raison initiale d'utiliser PostgreSQL ?

Et il me semble que l'ORM et le système de base de données sont 2 niveaux bien différents ... et c'est tout l'intérêt de l'ORM de découpler du type de base de données.

Cela fonctionne ... je dirai tant mieux.

Bye

  • Partager sur Facebook
  • Partager sur Twitter
20 septembre 2021 à 22:05:06

Symfony 4 - Impossible de lancer Postgre sql

voici le message d'erreur lorque je lance ma premiere page symfony v-4

  • Partager sur Facebook
  • Partager sur Twitter
21 septembre 2021 à 8:28:36

Bonjour,

Déterrage

Citation des règles générales du forum :

Avant de poster un message, vérifiez la date du sujet dans lequel vous comptiez intervenir.

Si le dernier message sur le sujet date de plus de deux mois, mieux vaut ne pas répondre.
En effet, le déterrage d'un sujet nuit au bon fonctionnement du forum, et l'informatique pouvant grandement changer en quelques mois il n'est donc que rarement pertinent de déterrer un vieux sujet.

Au lieu de déterrer un sujet il est préférable :

  • soit de contacter directement le membre voulu par messagerie privée en cliquant sur son pseudonyme pour accéder à sa page profil, puis sur le lien "Ecrire un message"
  • soit de créer un nouveau sujet décrivant votre propre contexte
  • ne pas répondre à un déterrage et le signaler à la modération

Je ferme ce sujet. En cas de désaccord, me contacter par MP.

  • Partager sur Facebook
  • Partager sur Twitter

Pas d'aide concernant le code par MP, le forum est là pour ça :)