Configuration serveur Apache 2.2.17
Bonjour,
1) Mon installation: PC + VISTA +Wamp (Apache 2.2.17 PHP 5.3.5 Myql
5.5.8)
2) Mon but: Authentifier les demandes d'accès à un répertoire du
serveur apache au travers d'une table d'une base de données.
3) Ce que j'ai fait: J'ai utilisé l'exemple de la doc Apache (voir ci-
dessous)
4) Ma difficulté:
-> Dans la config ci-dessous: WAMP ne peut se charger.
Erreur donnée par httpd -M: Le driver DBDriver n'est pas
reconnu.
-> Si j'ajoute la ligne suivante: LoadModule dbd_module modules/
mod_dbd.so
Le module se charge mais plantage à l'exécution: error log
donne: DBD: mod_dbd not compatible with APR in get_driver.
5) Mes recherches sur le web m'ont amené à constater que ce pb est
récurrent, mais je n'ai pas pu en dégager une solution qui permette
d'avancer. Peut être aurai-je plus de chance dans ce forum.....
Merci d'avance à tout contributeur d'une quelconque piste.
Exemple Doc Apache
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| # mod_dbd configuration
DBDriver mysql
DBDParams "dbname=apacheauth user=apache pass=xxxxxx"
DBDMin 4
DBDKeep 8
DBDMax 20
DBDExptime 300
<Directory /usr/www/myhost/private>
# core authentication and mod_auth_basic configuration
# for mod_authn_dbd
AuthType Basic
AuthName "My Server"
AuthBasicProvider dbd
# core authorization configuration
Require valid-user
# mod_authn_dbd SQL query to authenticate a user
AuthDBDUserPWQuery \
"SELECT password FROM authn WHERE user = %s"
</Directory> |
DBD: mod_dbd not compatible with APR in get_driver
Bonjour,
J'ai le même problème et recherche depuis quelques temps une solution mais sans résultats.
Le but est aussi de réaliser une authentification de certains dossier en utilisant une base de donné mysql.
Configuration serveur:
Windows server 2008 R2 std SP1
BitNamiWamp 5.3.6-0 avec:
- apache 2.2.17
- APR 1.3.10
Configuration Apache: (seulement ce qui nous intéresse)
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
|
LoadModule auth_basic_module modules/mod_auth_basic.so
LoadModule authn_dbd_module modules/mod_authn_dbd.so
LoadModule dbd_module modules/mod_dbd.so
###################################
# WWW DBD MYSQL CONNECTOR
###################################
DBDriver mysql
DBDParams "host=IP_HOST dbname=DB_HOST user=USER pass=PASS"
DBDMin 4
DBDKeep 8
DBDMax 100
DBDExptime 300
###################################
# DIRECTORY AUTH DBD
###################################
<Directory "C:/Program Files/BitNami WAMPStack/apache2/htdocs/test/private">
AuthType Basic
AuthName "TEST PRIVATE"
AuthBasicProvider dbd
Require valid-user
AuthDBDUserPWQuery \
"SELECT password FROM people WHERE email='%s'"
</Directory> |
Donc en ayant suivi les recommandations du site apache (lien) je n'arrive pas à comprendre pourquoi dbd ne marche pas en fonction des erreurs suivantes dans le fichier error_log d'apache:
Code:
1 2 3 4 5 6 7 8 9 10 11
|
[Thu Aug 04 04:23:08 2011] [notice] Apache/2.2.17 (Win32) PHP/5.3.6 configured -- resuming normal operations
[Thu Aug 04 04:23:08 2011] [notice] Server built: Oct 18 2010 01:58:12
[Thu Aug 04 04:23:08 2011] [notice] Parent: Created child process 5244
[Thu Aug 04 04:23:09 2011] [notice] Child 5244: Child process is running
[Thu Aug 04 04:23:09 2011] [error] (OS 126)The specified module could not be found. : DBD: mod_dbd not compatible with APR in get_driver
[Thu Aug 04 04:23:09 2011] [error] (OS 126)The specified module could not be found. : DBD: failed to initialise
[Thu Aug 04 04:23:09 2011] [crit] (OS 126)The specified module could not be found. : DBD: child init failed!
[Thu Aug 04 04:23:09 2011] [notice] Child 5244: Acquired the start mutex.
[Thu Aug 04 04:23:09 2011] [notice] Child 5244: Starting 64 worker threads.
[Thu Aug 04 04:23:09 2011] [notice] Child 5244: Starting thread to listen on port 8080. |
J'ai l'impression que lorsque l'on déclare la directive "DBDriver" pour créer la connection sur notre server mysql par le module dbd utilisant APR, le driver semble invalide ou manquant.
Dans la doc mod_dbd (lien), voici ce que l'on peut trouver sur la directive DBDriver:
Selects an apr_dbd driver by name. The driver must be installed on your system (on most systems, it will be a shared object or dll). For example, DBDriver mysql will select the MySQL driver in apr_dbd_mysql.so.
Je vais rechercher si apr_dbd_mysql.so est bien installé...
odbc driver au lieu de mysql driver
Au lieu de me cantonner a utiliser le driver mysql d'APR, je me suis dit que je vais re-éssayer mes essais avec le driver ODBC.
Je fais donc dans ma conf apache:
Code:
1 2 3
|
DBDriver odbc
DBDParams "DATASOURCE=www" |
DATASOURCE=www est le DSN que j'avais créer sur mon serveur car je n'ai pas envie de modifier les infos de connections partout ou j'utilise cette base de donnée lors d'un changement etc...
Note: sur les DSN, créer vos entrées dans le "system DSN" si j'amais vous avez plusieurs users pour differentes applications. Cela permet de pouvoir accéder a cette ressource par tout les utilisateurs du système (comme son nom l'indique).
En bref, je reboot et j'ai un nouveau message d'erreur qui me plait un peu plus...
Code:
1 2 3
|
[Tue Aug 16 05:24:54 2011] [dbd_odbc] SQLConnect returned SQL_ERROR (-1) at C:\local0\asf\release\bu:1076 [Microsoft][ODBC Driver Manager] The specified DSN contains an architecture mismatch between the Driver and Application IM014
[Tue Aug 16 05:24:54 2011] [error] (20014)Internal error: DBD: Can't connect to odbc |
Vu que mon apache WAMP est du 32 bit et que mon driver est du 64 bit...
J'imagine que j'ai ma réponse, l'APR travaillera en 32 et cherche un driver en 32...
J'essai d'installer le driver en 32 au lieu de 64, pas sûr que windows me laisse faire. A suivre...