J'ai recherché ce qui ressemble à des centaines de solutions et les ai toutes mises en œuvre. J'ai également recherché ce site Web afin de trouver la même question, mais je n'ai pas pu la localiser.
J'ai un site de développement et un site de production. Pour migrer entre les deux, j'utilise github Push et pulls. Cela n'a pas été un problème dans le passé, cependant, j'ai rencontré ce problème plusieurs fois. Après une migration de fichier Drupal ne me permet plus de me connecter. J'essaie mes informations de connexion et je reçois immédiatement une page Accès refusé.
Les cookies de mon site ne lisent et n'écrivent aucun problème. J'ai localisé l'ID de cookie et trouvé son entrée dans la base de données. Les cookies semblent donc bien fonctionner et les entrées de la base de données fonctionnent assez bien.
Le problème que je peux voir est que les enregistrements de session de base de données n'enregistrent aucun ID utilisateur. Lorsque je modifie manuellement l'ID utilisateur dans l'enregistrement db en 1, pour mon IP, puis actualise le site Web, je suis connecté. Des idées?
chmod o+w sites/default/settings.php
, chmod o+w sites/default
, chmod o+w sites/default/files
, chmod a-w sites/default/settings.php
, chmod a-w sites/default
. Ça n'a pas marché.register_shutdown_function('session_write_close');
à la fin des travaux settings.php, qui également n'a pas fonctionné pour moi.ini_set('session.cookie_domain', 'exampleorg');
ini_set('session.cookie_domain','www.example.org');
ini_set('session.auto_start', 0);
J'ai également eu le même problème, et il était lié à mod_rewrite
. J'ai activé le mod_rewrite
avec la commande suivante et le problème a été corrigé.
Sudo a2enmod rewrite
Pour info, votre fichier sites\default\settings.php doit contenir un cookie avec le même nom que le chemin que vous utilisez, donc si votre serveur Web précédent avait un domaine www.boldlygowherenomanhasgonebefore.com et que vous avez déplacé votre drupal vers localhost, le domaine des cookies doit refléter ce changement:
ÉTAIT:$cookie_domain = '.boldlygowherenomanhasgonebefore.com';
CHANGER EN:$cookie_domain = '.localhost';
Évidemment, ce n'est pas votre solution, mais pour toute personne venant ici, j'ai eu un problème similaire (impossible de se connecter) mais le mien était un problème d'URL propre résolu comme suit:
Il y avait quelque chose avec des URL propres, elles fonctionnaient à moitié, c'est pourquoi je les ai rejetées comme étant le problème, mais c'était le cas.
J'ai finalement dû modifier la table des variables dans la base de données (changer LONGBLOB en LONGTEXT pour que je puisse), désactiver le drapeau des URL propres (définir "1" sur "0"), effacer les caches pour supprimer la version mise en cache des variables.
Et puis les choses ont bien fonctionné.
Non pas que cela résoudra la racine du problème, mais si vous devez vous connecter, vous pouvez toujours obtenir un lien de connexion unique de Drush:
drush user-login theusername