Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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. smile

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. smile

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