Pages : 1
#1 Le 19/06/2008, à 17:42
- ploc
[résolu] php5, sqlite3 et pdo
Bonjour,
Visiblement, l'utilisation de sqlite3 (et non sqlite tout court qui semble correspondre à sqlite2) avec php5 nécessite PDO.
Je trouve un peu étrange cette dépendance mais pourquoi pas. Soit.
Sur mon serveur Hardy (version JeOS), j'ai donc tenté d'installer sqlite3 avec php5, via l'installation du paquet php5 puis de php-sqlite3 (les dépendances d'apt se chargent normalement d'installer tout le nécessaire).
Au final, je me retrouve avec un php5 qui fonctionne, avec des librairies sqlite3 installées (vu dans le phpinfo) mais aucun PDO (Php Data Object) disponible :
PDO
PDO support enabled
PDO drivers no value
Impossible en conséquence d'utiliser sqlite3 dans un script php car j'obtiens le message d'erreur suivant :
could not find driver
C'est on ne peut plus concis et on ne peut plus clair...
Si quelqu'un a déjà réussi à faire fonctionner le bouzin (si possible en utilisant apt, et sans compiler des tas de trucs dans tous les coins), je suis très intéressé.
En outre, je suis un peu surpris de voir que l'installation de php5 + sqlite3 + pdo n'est pas super simple alors que - d'une certaine manière - c'est un peu le futur du web léger...
Merci de vos avis !
Dernière modification par ploc (Le 20/06/2008, à 14:15)
Hors ligne
#2 Le 19/06/2008, à 23:06
- jpcrevoisier
Re : [résolu] php5, sqlite3 et pdo
Bonsoir ploc,
En fait j'ai eu effectivement la même désaventure sous hardy mais un simple ajout de :
extension=sqlite.so
extension=pdo.so
extension=pdo_sqlite.so
dans mon php.ini et le tour était joué.
/!\ /etc/php5/apache2/php.ini pour le serveur et /etc/php5/client/php.ini pour le client (console)
Bonne soirée ploc.
#3 Le 20/06/2008, à 10:25
- Guybrush02
Re : [résolu] php5, sqlite3 et pdo
En parlant de SQLite, c'est moi où les informations dans les dépots concernant la librairie Python sont tout sauf claires ? python-pysqlite correspond à sqlite2 alors que python-pysqlite2 correspond à sqlite3... Suis-je le seul à trouver cela curieux ?
Hors ligne
#4 Le 20/06/2008, à 13:12
- ploc
Re : [résolu] php5, sqlite3 et pdo
Merci jpcrevoisier de ta réponse. J'ai essayé de suivre tes conseils mais ça n'a rien donné.
Explications :
En consultant le phpinfo, je constate qu'il y a d'autres fichiers ini qui sont pris en compte :
additional .ini files parsed /etc/php5/apache2/conf.d/pdo.ini, /etc/php5/apache2/conf.d/sqlite3.ini
En consultant ces 2 fichiers, je constate que les bibliothèques pdo.so et sqlite3.so sont déjà chargées par ces fichiers :
pdo.ini.ori
::::::::::::::
# configuration for php PDO module
extension=pdo.so
::::::::::::::
sqlite3.ini
::::::::::::::
extension=sqlite3.so
Je me dis donc qu'il est inutile de les rajouter dans le php.ini de apache, d'autant plus que le phpinfo m'indique déjà que sqlite3 est bien chargé :
SQLITE3
SQLite3 support enabled
sqlite3 library version 3.4.2
Je cherche donc uniquement à ajouter la dernière bibliothèque pdo_sqlite.so mais j'ai beau chercher sur mon serveur, aucune trace de cette bibliothèque. Je continue donc mes recherches pour avoir un php + sqlite3 fonctionnels dans apache...
Note - c'est bien sqlite3 que je cherche à utiliser, et non sqlite2 (souvent dénommé sqlite tout court) car sqlite3 dispose de fonctionnalités importantes non disponible dans la version 2...
Je réitère ma position, au risque de me répéter, c'est étonnant qu'il soit si peu intuitif d'installer sqlite3 sur Hardy alors que le projet php a fait pas mal de publicité sur le fait que sqlite était intégré à php 5 (5.1 je crois). Sur Hardy, on en est déjà à php 5.2...
Petit apparté pour Guybrush02, tu ferais mieux de créer un nouveau fil car ton intervention concerne python, or le titre de ce fil ne mentionne que php et sqlite3 (et pdo). Ceci, si ce que tu indiques est vrai, c'est effectivement curieux... Sûrement une erreur de frappe ! Contactez les mainteneurs - Ubuntu Core Developers - pour leur notifier ! Ou alors un bug dans launchpad.
Hors ligne
#5 Le 20/06/2008, à 13:27
- ploc
Re : [résolu] php5, sqlite3 et pdo
J'ai continué mes investigations :
pdo_sqlite.so est disponible dans le paquet php5-sqlite selon le site Ubuntu.
Ceci dit, je ne souhaite pas utiliser sqlite mais sqlite3, or la bibliothèque pdo_sqlite3.so n'existe pas, tout selon le site Ubuntu.
Grande question : suis-je obligé d'installer php5-sqlite pour utiliser php5-sqlite3 ? Je continue mes investigations...
Hors ligne
#6 Le 20/06/2008, à 14:13
- ploc
Re : [résolu] php5, sqlite3 et pdo
Et bien oui, après avoir installer par apt le paquet php5-sqlite, sqlite semble mieux fonctionner, et phpinfo m'affiche maintenant :
PDO
PDO support enabled
PDO drivers sqlite, sqlite2
Il manque cependant sqlite3 dans la liste, je vais vérifier si sqlite3 est véritablement activé ou non...
En tout cas, en appliquant ces paquets, nul besoin de modifier php.ini car toutes les instructions nécessaires (chargement des bibliothèques) sont présentes dans les fichiers ini complémentaires :
additional .ini files parsed /etc/php5/apache2/conf.d/pdo.ini, /etc/php5/apache2/conf.d/pdo_sqlite.ini, /etc/php5/apache2/conf.d/sqlite.ini, /etc/php5/apache2/conf.d/sqlite3.ini
Je confirme également que j'utilise bien le moteur de sqlite3 (et non celui de sqlite2, que je viens d'installer) en testant une instruction de renommage de table. En effet l'instruction suivante est uniquement supportée par sqlite3 (et pas par sqlite2) :
ALTER TABLE toto RENAME TO titi
J'en conclue, de manière tout à fait intuitive (donc à confirmer par qui sait) que sqlite2 est utilisé lorsqu'accédé directement par php, alors que sqlite3 est utilisé lorsqu'on passe par PDO.
Finalement, l'installation de php5 et de sqlite3 n'est pas vraiment compliquée, c'est juste pas clair...
Donc il suffit a priori d'installer les paquets suivants et tout devrait fonctionner sans problème :
sudo apt-get install php-sqlite3 php5-sqlite
Fin du quasi-monologue, je passe le fil de discussion à résolu...
Dernière modification par ploc (Le 20/06/2008, à 14:27)
Hors ligne
#7 Le 15/07/2009, à 21:06
- francois008
Re : [résolu] php5, sqlite3 et pdo
Je confirme que ca fonctionne bien.
phpinfo avant:
PDO
PDO support enabled
PDO drivers mysql
Commande exécuté:
sudo apt-get install php5-sqlite
sudo /etc/init.d/apache2 restart
phpinfo après:
PDO
PDO support enabled
PDO drivers mysql, sqlite, sqlite2
Merci beaucoup !
Hors ligne
#8 Le 15/07/2009, à 21:45
- HP
Re : [résolu] php5, sqlite3 et pdo
Note - c'est bien sqlite3 que je cherche à utiliser, et non sqlite2 (souvent dénommé sqlite tout court) car sqlite3 dispose de fonctionnalités importantes non disponible dans la version 2...
Surtout aussi que les bases sqlite2 ne sont pas compatible avec la 3… voir aussi la documentation de PDO :
http://fr2.php.net/manual/fr/ref.pdo-sqlite.php
le driver sqlite2 n'est fourni qu'à titre de compatibilité, rien ne garanti, à mon sens, sa pérennité à terme.
Dernière modification par HP (Le 15/07/2009, à 21:47)
cat /dev/urandom >/dev/null 2>&1 #github
Hors ligne
Pages : 1