Migration d'un Drupal de Online vers 1&1

Changement d’hébergeur pour un site Drupal. Comme j’ai bien galéré, peut être finalement que ce que j’ai fait peut être utile à d’autres.

Préparer le site

Récupérer les fichiers du répertoire /sites.

Faire un dump de la base de données. De préférence sans les données des tables caches.

Uploader le site sur 1&1

Installer un Drupal vierge, de préférence, la version de votre site (si le site n’était pas à jour à la migration).

ATTENTION !! ne pas utiliser leur Drupal en un clic… Installer Drupal vous même avec votre serveur FTP. Vous aurez la maîtrise des fichiers. Face aux problèmes de la migration, j’avoue avoir été prêt de craquer et de prendre leur solution, mais vous devez perservérer. Vous finirez par y arriver...

Sur 1&1, pour que les règles de réécriture Apache fonctionne, il faut corriger la ligne RewriteBase / dans le fichier .htaccess à la racine de Drupal.

Uploader les fichiers du répertoire /sites.

Importer les données de la base de données.

Editer le fichier /sites/default/settings.php et corriger les informations de la base de données.

Lancer votre site Drupal dans votre navigateur. Toutes vos informations devraient apparaître ok.

Les vérifications de base.

Hormis les vérifications de type :

  • les nodes s’affichent,
  • on peut rajouter des articles,
  • on peut rajouter des commentaires

Voici les différentes vérifications qui peut être utile de faire.

Installation de nouveaux modules

Vérifier que le formulaire pour installer les nouveaux modules à partir d’un URL fonctionne toujours.

Module Backup and Migrate

J’ai un module Backup and Migrate qui écrit dans le système de fichiers. Evidemment, si l’utilisateur de Backup and Migrate (probablement l’utilisateur Apache ?) n’a pas les droits pour écrire sur le disque, c’est mort.

Après avoir épluché et retourné toutes les permissions de mes répertoires, j’ai fini par faire, dans le désordre :

  • Désinstaller la version Backup and Migrate 7.x-2.8
  • Réinstaller avec Backup and Migrate 7.x-3.0.
  • Aller dans Configuration > Media > File system et définir le chemin pour les fichiers private (privés).

En faisant cela, Drupal va créer le répertoire et lui donner les droits qui vont bien. J’ai préféré créer un tout nouveau répertoire privé parce que Drupal change les droits des répertoires et rajoute des fichiers .htaccess. Or, si vous étiez chez Online, vous savez que vous aviez du bidouiller ces mêmes fichiers parce qu’Online n’admettait ni les instructions Options FollowSymLinks ni SetHandler.

  • Aller dans Reports > Status report et reconstruire les droits d’accès…
  • Tester avec un backup manuel. Ca devrait fonctionner.

A toutes fins utiles, voici les permissions des répertoires :

  • Le owner = compte utilisateur 1&1
  • Le groupe = groupe d’utilisateur FTP
drupal 755
drupal/sites 755
drupal/sites/default 555
drupal/sites/default/files 775
drupal/sites/default/files/private 705
drupal/sites/default/files/private/backup_migrate 705
drupal/sites/default/files/private/backup_migrate/manual 775

Normalement, si vous faites une install propre à partir du zip de Drupal, toutes les permissions devraient être gérées par Drupal.

Les fichiers .htaccess

Vous trouverez ce fichier .htaccess dans les répertoires suivants :

  • drupal/sites/default/files/prive/backup_migrate/manual
  • drupal/sites/default/files/prive
Deny from all
# Turn off all options we don't need.
Options None
Options +FollowSymLinks
# Set the catch-all handler to prevent scripts from being executed.
SetHandler Drupal_Security_Do_Not_Remove_See_SA_2006_006
<Files *>
# Override the handler again if we're run later in the evaluation list.
SetHandler Drupal_Security_Do_Not_Remove_See_SA_2013_003
</Files>
# If we know how to do it safely, disable the PHP engine entirely.
<IfModule mod_php5.c>
  php_flag engine off
</IfModule>

 

Vous trouverez ce fichier .htaccess dans le répertoire suivant

  • drupal/sites/default/files
# Turn off all options we don't need.
Options None
Options +FollowSymLinks
# Set the catch-all handler to prevent scripts from being executed.
SetHandler Drupal_Security_Do_Not_Remove_See_SA_2006_006
<Files *>
# Override the handler again if we're run later in the evaluation list.
SetHandler Drupal_Security_Do_Not_Remove_See_SA_2013_003
</Files>
# If we know how to do it safely, disable the PHP engine entirely.
<IfModule mod_php5.c>
  php_flag engine off
</IfModule>

 

Le champ Image avec le navigateur de média

Je n’ai pas eu de problème pour accéder au navigateur de média, uploader un nouveau fichier et l’afficher par la suite.

 

Insertion d’images dans le corps d’un article avec le navigateur de média.

Il est possible d’insérer des images dans le corps d’un article en combinant le module WYSIWYG, Media et la librairie CKEditor version 3.6.5.7647.

En paramétrant le module WYSIWYG en utilisant un bouton navigateur de média, on peut accéder à la bibliothèque de media et insérer des images à partir de cette bibliothèque dans le corps de l’article OU ajouter des contenus média à ladite bibliothèque.

L’upload dans la bibliothèque de média fonctionne bien.

Pour tester :

  • ajouter un contenu,
  • aller dans le champ corps du contenu,
  • cliquer sur le bouton de la barre WYSIWYG navigateur de média,
  • choisir un fichier media de votre disque local,
  • cliquer sur Upload
  • valider

Le navigateur de média va disparaitre.

L’image ajoutée à la bibliothèque apparaît dans le corps de l’article.

Si on rouvre la bibliothèque de média (pour ajouter une autre image par ex), la nouvelle image apparaît dans la bibliothèque de média.

L’insertion de média existant dans la bibliothèque.

Pour tester :

  • ajouter un contenu,
  • aller dans le champ corps du contenu,
  • cliquer sur le bouton de la barre WYSIWYG navigateur de média,
  • choisir un fichier media qui existe déjà dans la bibliothèque,
  • valider.

Le navigateur de média va disparaitre.

L’image choisie apparaît dans le corps de l’article.

J’ai eu un peu du mal à obtenir ce résultat après la migration.

  • aller dans Configuration > Development > Performance et vider les caches.
  • aller dans Configuration > Content authoring > Wysiwyg profiles, éditer chacun des profils wysiwyg que vous avez défini et (ré)enregistrer les.
  • aller dans Configuration > Content authoring > Text format, éditer chacun des formats de texte définis et (ré)enregistrer les.

Normalement, ça devrait refonctionner.

Je suis désolé si ces instructions ne débloquent pas votre migration. J’ai cliqué dans tous les sens et un peu partout et ça a fini par fonctionner et par élimination, je pense que ce sont ces actions qui ont finalement réussi à débloquer la situation.

Sur 1&1, toutes ces fonctionnalités marchent. Si elles ne marchent pas sur votre site existant, il faut tenter de rafraichir, réinstaller, repartir à partir de données neuves…

 

Commentaires

Bonjour, suivant vos instructions ainsi que d'autres tutaux, tout fonctionne correctement, sauf les url simplifiées dont les tests échouent systématiquement. J'ai pourtant modifié le .htaccess mais rien ne fonctionne.

mon install est dans un dosssier, pas directement à la racine car je dois y coller 1 site et un sous-domaine (que je souhaite distincts de core)

sur ma migration donc, rien à faire, quelques soient mes modifs, les test urls échouent systématiquement.
J'ai créé un autre site drupal vierge à la racine dans un autre dossier avec 7.32 et j'ai réussi à activer la réécriture mais je ne parviens pas de toute manière à effacer le nom du dossier d'install de l'url.

Cela ne résout donc absolument pas mon problème, car même si je souhaite complètement refaire mon site, j'auraii toujours le problème de l'affichage du nom du dossier d'install dans l'url, et ça ne me paraît de toute manière ne pas être une bonne solution car pour des sites plus compliqués développés en local ce sera inenvisageable.

Il me reste peut-être la solution de mettre mon site principal à la racine et de laisser mon dossier d'install du second site à sa place, mais ça ne me paraît pas être une bonne pratique.

Auriez-vous une piste pour se débarrasser du nom du dossier dans l'url??

Bonjour

Si j'ai bien compris, votre site Drupal se situe ici : /votre_domaine/drupal/votre_site et vous souhaitez que lorsque vous avez http://votre_domaine vous obteniez le site drupal, c'est bien ça?

Avez vous essayé de modifier la variable $base_url qui est dans le fichier settings.php ?

Sinon, dans 1&1, vous pouvez créer dans votre racine un répertoire www sur lequel vous pointerez votre domaine principal et un répertoire sous_domaine sur lequel vous ferez pointer votre sous domaine. Ainsi, c'est le pointage DNS qui fera le travail pour vous.

Maintenant, si vous souhaitez, DANS LE MEME DOMAINE, installer deux packages différents (mettons Drupal et Dokuwiki, vous aurez probablement des soucis

Bonjour et merci d'avoir répondu si rapidement,

c'est effectivement ce que cherche à faire , à savoir :
monsite.com
et
monsite.com/blog/
avec deux core différents pour être sûr que malgé les lises à jour du core j' en ai toujours un des deux qui fonctionne... (peut-être un peu paranno, mais bon)

en ce qui concerne le settings.php, je l'ai modifié effectivement modifié, sur les deux sites (migration et nouvelle install) et ça n'a aucune inscidence.

Sinon, j'ai lu souvent qu'il fallait, comme vous l'indiquez, pointer son domaine principal, mais je ne comprend absolument pas comment on doit faire. Suffit-il juste de nommer le dossier WWW??? Quelle manip effectuer pour le faire pointer sur ce dossier??

Bonjour

Etes vous hébergé chez 1&1 ?

Si oui, il faut
- soit créer le répertoire dans votre espace web par FTP, puis
- aller dans votre espace client et créer un domaine (vous lui donnez le nom que vous voulez, à savoir, chez 1&1, www.mon-domaine.net est domaine tout comme blog.mon-domaine.net est un autre domaine...
- dire que votre nouveau domaine point sur votre répertoire créé en FTP

- soit tout faire à partir de l'espace client : en créant le domaine, vous créez également le répertoire.

Quand vous souscrivez chez 1&1, le domaine www.mon-domaine.net pointe par défaut sur l'espace FTP par défaut mais vous pouvez le changer et dire que www.mon-domaine.net pointe sur espace_FTP/www.

Vous pourrez ainsi créer autant de domaines indépendants que vous le souhaitez.

Si vous êtes chez Online.net, vous n'aurez pas le choix, c'est Online qui va faire le lien entre le sous-domaine et votre répertoire. Tout ce que vous avez à faire, c'est de créer un répertoire dans votre espace FTP et automatiquement, votre répertoire sera votre sous domaine (ce qui, soit dit en passant, offre peu de souplesse)

Si vous êtez chez Gandi.net, même punition. Vous créez à partir de votre espace client un nouveau "virtual host" et après un moment (le temps que les robots mettent le tout en place), vous avez un sous domaine au nom de votre virtual host. Là encore, peu de souplesse.

(j'ai déjà le domaine)

ok si je comprends bien
1. je crée un rep /www avec mon site principal
2. je laisse mon /blog au même niveau sans toucher à mon .htaccess
3. je les appelle pour leur demander de pointer sur le rep /www
4. après j'ai accès par www.monsite.com à mon site principal et www.monsite.com/blog à mon blog

??

Si ça fonctionne comme ça ça résoudera complètement mon problème d'url dans la mesure où je réinstallerai drupal pour mon site principal avec toutes les modifs. Pour le problème de migration je m’énerverai dessus plus tard. (je pense qu'il y avait des soucis au niveau de mon install en local car ça n'a pas de sens)

en tous les cas merci infiniment pour ces infos

ok je viens de les appeler en fait tout est gérable depuis l'interface client depuis "Gestion des domaines"
Pour plus de simplicité, je vais créer un sous-domaine, simplement parce qu'il n'y a pas d'autres solutions (blog.monsite.com). Sur le même domaine, on aura toujours le souci de remonter tous les dossiers accessibles dans le dossier vers le quel pointe le serveur. Néanmoins, pointer vers un dossier permet de poser des fichiers non consultables directement depuis internet à la racine du serveur, ce qui semble être le plus correct.

Voilà merci beaucoup pour votre aide, reste plus qu'à tout réinstaller...

bonjour
excellent article , j’ai pris bcp de plaisir à le lire , merci ^^
cordialement

Ajouter un commentaire