Pages : 1
#1 Le 10/01/2014, à 10:13
- HariSeldon
Utiliser une bdd Access (odbc) avec PHP sous debian
Bonjour,
Je développe en ce moment un intranet pour mon entreprise et je suis confronté a un 'gros' problème. Le serveur de prod qu'on vient de monter est sous debian-64bits (sans GUI). J'ai réussi sans souci a installer Apache2, PHP5 mais vient alors les complications quand j'essaye de faire marcher mes BDD Access avec ODBC.
J'ai a peu près tout essayé, en passant par unixODBC, mdbtools ou les drivers de Easysoft, rien n'y fait. Je vous met ci-dessous le contenu de mes fichiers etc/odbc.ini et etc/odbcinst.ini :
etc/odbc.ini
[stockinfo]
Description = stockinfo
Driver = MDBToolsODBC
Database = /var/www/_EXTRANET/TEL/bdd/tel.mdb
Server = localhost
port = 5432
[access]
Description = Easysoft ODBC-Access Driver
Driver = Easysoft ODBC-ACCESS
mdbfile = /var/www/_EXTRANET/TEL/bdd/tel.mdb
readonly = no
exclusive = no
ignore_rel = no
[test1]
Description = stockinfo
Driver = MDBToolsODBC
Database = /var/www/Database.accdb
Server = localhost
[test2]
Description = Easysoft ODBC-Access Driver
Driver = Easysoft ODBC-ACCESS
mdbfile = /var/www/Database.accdb
readonly = no
exclusive = no
ignore_rel = no
etc/odbcinst.ini
[MDBToolsODBC]
Description = MDBToolsODBC drivers
Driver = libmdbodbc.so.1
Setup = libmdbodbc.so.1
Usage = 1
FileUsage = 1
[Easysoft ODBC-ACCESS]
Description = Easysoft ODBC-Access Driver
Driver = /usr/local/easysoft/access/lib/libesmdb.so
Setup = /usr/local/easysoft/access/lib/libesmdbS.so
Threading = 0
FileUsage = 1
DontDLClose = 1
UsageCount = 1
Voici ce qui se passe quand j'essaie les bdd avec isql :
root@srv-intranet02:~# isql -v test1
Unknown Jet version.
Can't alloc filename
Unable to locate database /var/www/Database.accdbErreur de segmentation
root@srv-intranet02:~# isql -v test2
[01000][unixODBC][Driver Manager]Can't open lib '/usr/local/easysoft/access/lib/libesmdb.so' : file not found
[ISQL]ERROR: Could not SQLConnect
root@srv-intranet02:~# isql -v access
[01000][unixODBC][Driver Manager]Can't open lib '/usr/local/easysoft/access/lib/libesmdb.so' : file not found
[ISQL]ERROR: Could not SQLConnect
root@srv-intranet02:~# isql -v stockinfo
+---------------------------------------+
| Connected! |
| |
| sql-statement |
| help [tablename] |
| quit |
| |
+---------------------------------------+
SQL> help F_AGENCES
Erreur de segmentation
Pour info:
- J'ai installé tout le paquet nécessaires (peut-être même plus qu'il en faut)
- J'ai essayé de mettre le chemin complet pour libmdbodbc.so.1 mais ça me donne la même erreur.
- libesmdb.so existe bel et bien dans le répertoire indiqué
Cependant l'installation de Easysoft ODBC-Access Driver ne s'est pas terminée correctement, donc libesmdb.so n'est pas renseigné dans le CLASSPATH. Quand je le renseigne j'ai une autre erreur :
root@srv-intranet02:~# isql -v access
[01000][unixODBC][Driver Manager]Can't open lib '/usr/local/easysoft/access/lib/libesmdb.so' : /usr/local/easysoft/access/lib/libesmdb.so: mauvaise classe ELF : ELFCLASS32
[ISQL]ERROR: Could not SQLConnect
Comme vous pouvez voir, j'arrive a me connecter en utilisant mbdtools et un .mdb mais dès que j'entre une commande valide, cela me fait une belle Erreur de segmentation.
Cela fait 2 jours que j'essaye de faire marcher ce truc et je suis un peu au bout du rouleau. C'est d'autant plus frustrant que j'ai installé odbc en 10 minutes sur windows.
Si vous avez des pistes, ou ne serait-ce qu'un indice ou un tutoriel pour tout installer proprement, mon cerveau et moi-même vous en serions grandement reconnaissants.
Merci d'avance pour votre aide.
Hors ligne
#2 Le 10/01/2014, à 11:43
- gl38
Re : Utiliser une bdd Access (odbc) avec PHP sous debian
Tes programmes veulent libesmdb.so et libesmdbS.so, les as-tu installées ?
Peux-tu donner le résultat de
ls -l /usr/local/easysoft/access/lib/
Cordialement,
Guy
Hors ligne
#3 Le 10/01/2014, à 12:22
- HariSeldon
Re : Utiliser une bdd Access (odbc) avec PHP sous debian
Les deux fichiers sont bien dans le répertoire :
root@srv-intranet02:~# ls -l /usr/local/easysoft/access/lib/
total 1128
-rwxrwxrwx 1 root root 1146072 janv. 29 2010 libesmdb.so
-rwxrwxrwx 1 root root 4411 janv. 29 2010 libesmdbS.so
Hors ligne
#4 Le 10/01/2014, à 12:40
- gl38
Re : Utiliser une bdd Access (odbc) avec PHP sous debian
Et les étages au-dessus ont-ils au moins un accès en lecture et exécution ?
Cordialement,
Guy
Hors ligne
#5 Le 10/01/2014, à 13:58
- HariSeldon
Re : Utiliser une bdd Access (odbc) avec PHP sous debian
Ouep, j'ai mis tout les répertoires nécessaires et leurs fichiers en chmod777.
Toujours les mêmes erreurs.
Dernière modification par HariSeldon (Le 10/01/2014, à 15:23)
Hors ligne
#6 Le 11/01/2014, à 10:24
- bruno
Re : Utiliser une bdd Access (odbc) avec PHP sous debian
Can't open lib '/usr/local/easysoft/access/lib/libesmdb.so' : /usr/local/easysoft/access/lib/libesmdb.so: mauvaise classe ELF : ELFCLASS32
mauvaise classe ELF : ELFCLASS32 ⇒ tu es sous Debian 64 bits …
#7 Le 13/01/2014, à 09:22
- HariSeldon
Re : Utiliser une bdd Access (odbc) avec PHP sous debian
Oui. Et pourtant j'ai bel et bien installé la bonne version du package "odbc-access-1.0.0-linux-x86-64-ul64".
J'ai ensuite moi même renseigné le chemin vers les deux fichier
export LD_LIBRARY_PATH=/usr/local/easysoft/lib:/usr/local/easysoft/access/lib:/usr/local/easysoft/unixODBC/lib:$LD_LIBRARY_PATH
EDIT:
J'ai réinstallé Easysoft Access, ça s'est bien installé cette fois, mais du coup j'ai une nouvelle erreur :
root@srv-intranet02:/# isql -v access
[S1000][unixODBC][Easysoft ODBC]General error: OS Version mismatch: Please report this sequence (AAAF, L6, 3, -1, -1) to Easysoft support at support@easysoft.com
[ISQL]ERROR: Could not SQLConnect
Dernière modification par HariSeldon (Le 13/01/2014, à 12:28)
Hors ligne
Pages : 1