Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonjour à tous, je sollicite une fois de plus votre aide, désolé...
Je viens de deployer l authentification pour mon appli, tout marche bien en local, mais en distant, lorsque j'essaie de me logger, j ai ce message :
SQLSTATE[28000] [1045] Access denied for user 'root'@'localhost'
Une idée ?
PS : je pense que cela vient de la restriction du compte root sur la base de données, mais je ne sais comment faire.
Merci d'avance
Dernière modification par JohnNada (05-10-2010 13:33:02)
Hors ligne
Salut,
Zend_Application est capable de gérer plusieurs configurations en fonction de l'environnement de travail. Pour ça il faut utiliser le fichier application.ini ou le fichier ini qui correspond à la configuration du driver de BDD si tu as découpé tes fichiers de configurations.
Exemple :
[production] ;====== Resource Db resources.db.adapter = "pdo_mysql" resources.db.params.host = "localhost" resources.db.params.username = "xxxxxxx" resources.db.params.password = "xxxxxxx" resources.db.params.dbname = "xxxxxxx" resources.db.isDefaultTableAdapter = true [staging : production] [testing : production] [development : production] ;====== Resource Db resources.db.params.host = "localhost" resources.db.params.username = "root" resources.db.params.password = ""
Dans cette exemple, la section development surcharge ce dont elle a besoin pour fonctionner en local, mais tu remarques que les accès à la bdd sont distincts.
C'est ce que tu dois faire, tu dois créer un utilisateur pour ta base de données de prod (surtout pas root) et modifier la configuration en conséquence.
Pour que l'environnement soit pris en compte, tu dois déclarer une variable d'environnement dans la configuration apache (dans le virtualhost ou l'alias, si c'est apache) ou bien dans un fichier .htaccess :
######################################### ## My website ## local.my-website.com ######################################### <VirtualHost *:80> SetEnv APPLICATION_ENV development ServerName local.my-website.com ServerAdmin xxxxx@xxxxx.com DocumentRoot "F:/chemin/vers/le/dossier/public" <Directory "F:/chemin/vers/le/dossier/public"> RewriteEngine On RewriteCond %{REQUEST_FILENAME} -s [OR] RewriteCond %{REQUEST_FILENAME} -l [OR] RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^.*$ - [NC,L] RewriteRule ^.*$ index.php [NC,L] Options -Indexes FollowSymLinks MultiViews ExecCGI Order allow,deny allow from all </Directory> </VirtualHost>
Ce virtual host est un exemple, tu n'es pas obligé de l'utiliser tel quel, c'est surtout la ligne "SetEnv APPLICATION_ENV development" qui est importante pour toi.
En prod tu auras : SetEnv APPLICATION_ENV production.
Zend_Application se chargera du reste.
A+ benjamin.
Hors ligne
Merci Ben, j'ai suivi pas a pas ce que tu m a dit.
Mais en réalité j avais deja essayé et j ai un probleme c est que lorsque je modifie l user cette fois ci il ne rajoute pas localhost apres l'arobase, j ai ca :
Message: SQLSTATE[42000] [1044] Access denied for user 'alex'@'%' to database 'samplesolution'
Hors ligne
Fait voir ta configuration (en cachant les password), ça vient soit du ini soit de ce que tu as renseigné à la création de ton user dans MySQL.
A+ benjamin.
Dernière modification par Delprog (05-10-2010 15:16:18)
Hors ligne
Yes , voici ma config
[production] phpSettings.display_startup_errors = 1 phpSettings.display_errors = 1 includePaths.library = APPLICATION_PATH "/../library" bootstrap.path = APPLICATION_PATH "/Bootstrap.php" bootstrap.class = "Bootstrap" appnamespace = "Application" autoloaderNamespaces[] = "App_" resources.view.helperPath.App_View_Helper = "App/View/Helper" resources.layout.layoutPath = APPLICATION_PATH "/layouts/scripts/" resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers" resources.frontController.params.displayExceptions = 0 resources.frontController.moduleDirectory = APPLICATION_PATH "/modules" resources.frontController.plugins.AppModuleConfig = "App_Config_ModuleConfig" resources.modules[] = resources.session.save_path = APPLICATION_PATH "/../data/session" resources.session.use_only_cookies = true resources.session.remember_me_seconds = 864000 resources.session.saveHandler.class = "Zend_Session_SaveHandler_DbTable" resources.session.saveHandler.options.name = "session" resources.session.saveHandler.options.primary.session_id = "session_id" resources.session.saveHandler.options.primary.save_path = "save_path" resources.session.saveHandler.options.primary.name = "name" resources.session.saveHandler.options.primaryAssignment.sessionId = "sessionId" resources.session.saveHandler.options.primaryAssignment.sessionSavePath = "sessionSavePath" resources.session.saveHandler.options.primaryAssignment.sessionName = "sessionName" resources.session.saveHandler.options.modifiedColumn = "modified" resources.session.saveHandler.options.dataColumn = "session_data" resources.session.saveHandler.options.lifetimeColumn = "lifetime" ;====== Resource Db resources.db.adapter = "pdo_mysql" resources.db.params.host = "localhost" resources.db.params.username = "test" resources.db.params.password = "monmotdepasse" resources.db.params.dbname = "samplesolution" resources.db.isDefaultTableAdapter = true [staging : production] [testing : production] phpSettings.display_startup_errors = 1 phpSettings.display_errors = 1 [development : production] phpSettings.display_startup_errors = 1 phpSettings.display_errors = 1 resources.frontController.params.displayExceptions = 1 ;====== Resource Db resources.db.params.host = "localhost" resources.db.params.username = "root" resources.db.params.password = "root"
Hors ligne
Pour ce qui est de la créa d utilisateur, je passe par plesk donc j ai pas beaucoup d options, si ce n est le username et le mot de passe, rien d autre
Hors ligne
Quand tu te connectes manuellement à la bdd (depuis l'ui) avec les identifiants de la section "production" du fichier de config. ça fonctionne ?
Sinon, parfois "localhost" ne correspond pas à l'ip qu'on pense, essaie de mettre "127.0.0.1" à la place même si l'erreur ne laisse pas penser que c'est un problème de host.
On dirait simplement que ton user "alex" n'a pas les droits sur cette base de données.
Dernière modification par Delprog (05-10-2010 15:28:21)
Hors ligne
Putain ca marche !!!
merci Ben c'etait trop sympa de ta part (meme si j ose pas te dire pourquoi ca marchait pas.... Tu me jetterais des cailloux)
Hors ligne
Aller dit, je ne te jetterai pas des caillasses promis *croise les doigts dans son dos*
Hors ligne
C'était pas localhost mais l'ip du serveur de bdd
Hors ligne
Pages: 1