ggbce Posté(e) le 28 novembre 2005 Partager Posté(e) le 28 novembre 2005 C'est la première fois que j'utilise l'authentification HTTP via une base de données MySQL. Peut-être ai-je fait un erreur ... ? Voici ma configuration: - Apache 1.3.27 - Module mod_auth_mysql 1.11 J'ai édité mon fichier /etc/httpd/conf/httpd.conf et j'ai ajouté ces lignes: LoadModule mysql_auth_module modules/mod_auth_mysql.so ... AddModule mod_auth_mysql.c ... <Directory "/serveur/test"> AuthType Basic AuthName "TEST Only" Auth_MySQL_Info localhost user password Auth_MySQL_DB authenticate Auth_MySQL_Password_Table login Options None Order deny,allow Allow from all <Limit GET> require group master require valid-user </Limit> </Directory> Quand je redémarre Apache, j'ai cette erreur: Starting httpd: Syntax error on line 180 of /etc/httpd/conf/httpd.conf: Invalid command 'Auth_MySQL_Info', perhaps mis-spelled or defined by a module not included in the server configuration [FAILED] D'après les instructions que j'ai lu... j'ai pourtant bien fait les bonnes choses et si je regarde quels sont les modules chargés, le module mod_auth_mysql est bien là ! Lien vers le commentaire Partager sur d’autres sites More sharing options...
ggbce Posté(e) le 28 novembre 2005 Auteur Partager Posté(e) le 28 novembre 2005 Et bien... après plusieurs recherches, j'ai trouvé un seul site qui utilise des commandes différentes pour la configuration avec MySQL. Et ces commandes semblent vouloir fonctionner. Donc, au-lieu de <Directory "/serveur/test"> AuthType Basic AuthName "TEST Only" Auth_MySQL_Info localhost user password Auth_MySQL_DB authenticate Auth_MySQL_Password_Table login require group master require valid-user </Directory> j'utilise <Directory "/serveur/test"> AllowOverride AuthConfig AuthType Basic AuthName "TEST Only" AuthMySQLHost localhost AuthMySQLUser user AuthMySQLPassword password AuthMySQLDB authenticate AuthMySQLUserTable login require group master require valid-user </Directory> Maintenant, le lancement de Apache se fait sans erreur !!! J'essais ensuite d'accéder à ma section de test http://mon.serveur.com/test/ il m'apparaît la fnêtre d'authentification, j'y entre mot utilisateur et mon mot de passe (que j'ai ajouté dans la BD MySQL)... mais la fenêtre d'authentification me redemande toujours mon mot de passe, comme s'il n'était pas valide. Donc il y a un p'tit problème de communication entre Apache et MySQL je crois ! Comment tester si Apache transmet correctement les données vers MySQL et vice-versa ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
Fafhrdius Posté(e) le 28 novembre 2005 Partager Posté(e) le 28 novembre 2005 Et bien... après plusieurs recherches, j'ai trouvé un seul site qui utilise des commandes différentes pour la configuration avec MySQL. Et ces commandes semblent vouloir fonctionner. Donc, au-lieu de <Directory "/serveur/test"> AuthType Basic AuthName "TEST Only" Auth_MySQL_Info localhost user password Auth_MySQL_DB authenticate Auth_MySQL_Password_Table login require group master require valid-user </Directory> j'utilise <Directory "/serveur/test"> AllowOverride AuthConfig AuthType Basic AuthName "TEST Only" AuthMySQLHost localhost AuthMySQLUser user AuthMySQLPassword password AuthMySQLDB authenticate AuthMySQLUserTable login require group master require valid-user </Directory> Maintenant, le lancement de Apache se fait sans erreur !!! J'essais ensuite d'accéder à ma section de test http://mon.serveur.com/test/ il m'apparaît la fnêtre d'authentification, j'y entre mot utilisateur et mon mot de passe (que j'ai ajouté dans la BD MySQL)... mais la fenêtre d'authentification me redemande toujours mon mot de passe, comme s'il n'était pas valide. Donc il y a un p'tit problème de communication entre Apache et MySQL je crois ! Comment tester si Apache transmet correctement les données vers MySQL et vice-versa ? J'ai jamis fais je peux pas t'en dire plus. Par contre, concernant savoir si les données sont transmises, je te conseil de faire dans trois onglets de terminal differents: tail -f /var/log/apache2/access.log et tail -f /var/log/apache2/error.log et tail -f <log my sql> emplacement du log mysql que tu trouves dans ton /etc/mysql/my.cnf, rubriques mysqld ... A ce moment la, tu recommences et tu verras jusqu'ou tu vas ;-) Lien vers le commentaire Partager sur d’autres sites More sharing options...
ggbce Posté(e) le 28 novembre 2005 Auteur Partager Posté(e) le 28 novembre 2005 Merci du conseil ! Je vais essayer ça. Entre-temps j'ai trouvé un peu plus où ça bloque ? Il est possible d'utiliser l'option AuthMySQLNoPasswd On pour authentifier les usagers sans mot de passe. Lorsque cet option est activé, ça fonctionne !!! Donc le problème est avec l'authentification du mot de passe plus précisément. Je sais qu'il y a un autre option pour déterminer quel type de champs contient le mot de passe qui s'appelle "AuthMySQLPwEncryption" avec les choix : none, crypt, scrambled, md5, aes et sha1... mais lorsque j'ajoute cette ligne Apache refuse de démarré comme lorsque j'utilisais les mauvaises options au début. D'après les infos cet option n'est disponible qu'avec les dernières versions de mod_auth_mysql. Lien vers le commentaire Partager sur d’autres sites More sharing options...
ggbce Posté(e) le 28 novembre 2005 Auteur Partager Posté(e) le 28 novembre 2005 Finalement en cherchant un peu plus loin... dans une partir pas très définie par les créateurs de mod_auth_mysql, j'ai trouvé une explication et une solution. L'option AuthMySQLPwEncryption (none | crypt | scambled | md5 | aes | sha1) fonctionne pour les versions 2.60 et + et il est possible d'utiliser les options dans les anciennes versions: AuthMySQLCryptedPasswords (On | Off) AuthMySQLScrambledPasswords (On | Off) AuthMySQLMD5Paswords (On | Off) AuthMySQLAESPasswords (On | Off) AuthMySQLSHA1Passwords (On | Off) (Note: ces options devraient disparaître dans les version 3.x de mod_auth_mysql pour laisser uniquement AuthMySQLPwEncryption). Alors j'ai configuré mon fichier httpd.conf avec: AuthMySQLCryptedPasswords Off Et ça fonctionne !!! Donc, par défaut Apache demande un mot de passe encrypté à MySQL... mais en quel sorte d'encryption je sais pas, c'est pas spécifié non plus. Probablement que ce sera "AuthMySQLScrambledPasswords On" = Encryption MySQL PASSWORD. Pour le moment je vais me contenter d'utilisateur avec des mot de passe en texte clair car je récupère ceux-ci des base MySQL que j'avais déjà créé pour mon inventaire des usagers de ce site. Va falloir que je m'attaque à l'encryption des données plus tard afin que Apache puisse communiquer des mots de passes cryptés et que mes pages PHP d'insertion des users me permettent de les entrer avec cet encryption. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.