web-dev-qa-db-fra.com

Comment déplacer un site d'un serveur vers un autre?

J'essaie de déplacer un site Drupal 8, mais j'obtiens l'erreur suivante:

Le site Web a rencontré une erreur inattendue. Veuillez réessayer plus tard.

InvalidArgumentException: la classe "\ Drupal\system\Controller\Http4xxController" n'existe pas. dans Drupal\Core\DependencyInjection\ClassResolver-> getInstanceFromDefinition () (ligne 29 de core/lib/Drupal/Core/DependencyInjection/ClassResolver.php).

Comment déplacer correctement un site Drupal 8 d'un serveur à un autre?

J'ai importé la base de données, déplacé les fichiers et modifié les paramètres de connexion à la base de données.

7
John Chan

En un mot, déplacer un site Web Drupal d'un hôte à un autre consiste simplement à déplacer les fichiers et la base de données, puis à connecter les deux.

Cependant, vous devez prendre en compte plusieurs éléments:

  1. L'environnement du serveur doit être aussi proche que possible les uns des autres. De cette façon, vous éviterez toute erreur résultant de la différence de logiciel/configuration sur les serveurs de production et de développement. Comparez PHP, version MySQL, modules Apache et configuration de tous ces composants.

  2. Les autorisations de fichiers doivent être configurées correctement. J'ai vu des problèmes causés par des dizaines de fois. En bref, l'utilisateur Apache doit avoir suffisamment d'autorisations pour accéder et travailler avec votre site Web Drupal. Sinon, il ne pourra pas écrire et même lire des fichiers dans certains cas. En savoir plus sur comment sécuriser les autorisations de fichiers correctes ici .

  3. Si vous procédez manuellement via FTP, assurez-vous que tous les fichiers sont transférés. Il arrive souvent que l'un des fichiers ne soit pas complètement téléchargé. Cela se traduit généralement par un Drupal et des erreurs aléatoires. Les autres façons de migrer un site Web D8 sont Drush, Git ou simplement zipper tout le répertoire et utiliser wget sur l'autre serveur pour transférez-le directement d'un serveur à l'autre.

  4. Vous devrez vider tous les caches. De préférence, l'agrégation CSS/JS et la mise en cache des pages ne seront pas activées lors de la migration de la base de données. Vous pouvez le faire via SQL/phpMyAdmin. Voir this réponse pour plus d'informations.

  5. Mettre à jour les hôtes approuvés dans /sites/default/settings.php fichier.

  6. Une fois que vous pouvez accéder à votre site Web, mettez à jour le chemin du répertoire temporaire à /admin/config/media/file-system, ainsi que tout autre paramètre (par exemple, des modules contrib) qui stocke les chemins d'accès au serveur/nom de domaine.

Voir aussi documentation sur la migration d'un site D7 . La plupart des articles sont toujours applicables pour D8.


Si vous suivez les instructions ci-dessus, vous éviterez la plupart des problèmes. Si vous rencontrez toujours des problèmes après la migration, publiez ici les messages de journal exacts que vous recevez.

En ce qui concerne l'erreur que vous avez déjà publiée: je m'assurerais que tous les fichiers sont là et que votre cache est effacé avant de faire quoi que ce soit d'autre.

J'espère que cela t'aides.

10
Aram Boyajyan

J'ai eu la même erreur lors du portage Drupal 8 vers localhost.

Dans mon cas, j'ai trouvé une solution en visitant mysite/core/install.php location.

Là, j'ai vu une erreur détaillée: lors de la sauvegarde à partir de/admin/config/development/backup_migrate, certaines tables manquaient. J'ai donc sauvegardé la base de données complète de phpmyadmin et le problème a été résolu.

1
al.bel