web-dev-qa-db-fra.com

Comment déplacer le dossier Wordpress wp-content existant avec la base de données vers un nouveau serveur et un nouveau nom de domaine?

Exécution de WP 3.5.1 sur une pile LEMP (sur Linode) ...

J'ai un dossier wp-content pour un site WP ainsi qu'une sauvegarde complète de la base de données. L'URL du site ressemblait à ceci:

test.example.com

Je souhaite que le site soit opérationnel sur mon propre serveur à l'adresse:

test.mydomain.com

Et une fois que le site est terminé et que les modifications DNS prennent effet, je souhaite que l'URL du site soit:

myclientsdomain.com

Quel est le moyen préféré (et, espérons-le, le plus simple) de gérer les transferts de serveurs et les changements de domaine de ce type? Je cherche une réponse étape par étape, une réponse à toutes les situations décrites ci-dessus pour les fichiers et la base de données.

4
wgpubs

Il y a un très bon pas à pas pour déplacer WordPress dans le Codex . C'est ce que je suis quand je change de domaine.

Déplacer les fichiers est assez simple. Ce sont les références codées en dur dans la base de données qui sont délicates. Cependant, recherche en série et remplacement s’occupe de toutes les modifications de la base de données. J'ai utilisé le plugin Velvet Blues dans le passé, mais le script Search and Replace est plutôt génial.

7
helgatheviking

J'utilise l'impressionnant plug-in Duplicator pour effectuer cette procédure exacte de manière régulière.

http://wordpress.org/extend/plugins/duplicator/

Le plugin est entièrement supporté et il y a d'excellentes FAQ disponibles ici:

http://lifeinthegrid.com/labs/duplicator/

Le plugin créera une sauvegarde .Zip de votre base de données et de vos fichiers, ainsi qu'un installateur .php que vous placerez dans votre nouveau répertoire racine. Vous entrez simplement les informations de votre nouvelle base de données et le reste.

Est-ce probablement mon plugin préféré WP à ce jour.

Si vous avez besoin d'aide en cours de route, faites le moi savoir.

4
cunningfox

Vous aurez quelques éléments à prendre en compte (plus tard, la réponse), je suggère les étapes suivantes:

Sauvegardez vos fichiers et votre base de données

C'est assez explicite. Vous allez faire beaucoup de manipulation de données, alors assurez-vous que votre original est en sécurité.

Transférez vos fichiers

Pour ce faire, le moyen le plus rapide consiste à disposer d'un hébergeur dans lequel vous pouvez importer des répertoires à partir d'un autre serveur. Cela peut être fait en fournissant les détails FTP, ainsi qu'en définissant le répertoire cible.

Comme les serveurs ont une connexion Internet qui est généralement beaucoup plus rapide que celle des utilisateurs, c'est le moyen préférable de transférer les données. Vous pouvez également utiliser votre ligne de commande pour exécuter ces commandes à la main.

L'option la plus lente consiste à générer un fichier Zip, à télécharger, à télécharger sur votre nouveau serveur et à le décompresser. Si vous n’avez pas la possibilité de le faire, prenez le chemin le plus lent: tout télécharger et tout télécharger. Et allez prendre un café pendant le transfert des fichiers :)

Transférez votre base de données

Encore une fois, beaucoup d’hôtes ont la possibilité d’importer une base de données existante dans une nouvelle, même à partir d’un autre serveur (bien entendu, votre ancien serveur doit accepter les connexions de données externes).

Si vous pouvez le faire, c'est bien, mais vous pouvez aussi exporter/importer votre base de données.

Définissez le nouveau (sous-) domaine sur votre nouveau répertoire.

Sur votre nouveau serveur, assurez-vous que vos fichiers sont configurés de la même manière que sur l'ancien et pointez votre sous-domaine vers le même répertoire que celui utilisé sur l'ancien serveur (généralement la racine WordPress).

Editez le wp-config.php

Enregistrez le nouveau wp-config.php. Il vous suffit de modifier les détails de la connexion à la base de données.

Charger la nouvelle URL

WordPress devrait déjà être configuré, mais il utilise toujours les anciens SiteURL et AdminURL. Vous ne pourrez donc pas vous connecter. Modifiez ces valeurs dans la table options- de votre nouvelle base de données. Les deux valeurs que vous recherchez sont siteurl et home. Placez votre nouveau domaine là-bas.

Vérifiez votre identifiant et votre site

Maintenant, tout devrait fonctionner jusqu'à présent, vous pouvez vous connecter, modifier et écrire, ainsi que d'utiliser le site. Le seul problème peut être que vos publications ont toujours l'ancienne URL pour les images et les pièces jointes qu'elles contiennent.

Si vos publications contiennent l'ancienne adresse URL ou si vous avez un doute, vérifiez votre base de données dans votre table posts-.

Vous pouvez le faire en effectuant une recherche directe dans votre base de données ou en utilisant un script tel que Recherche en série et remplacer . Si vous trouvez votre ancienne URL, vous devrez la remplacer manuellement ou automatiquement. Je préfère le faire automatiquement et vérifier les erreurs par la suite.

Vérifiez les autres tables

Vérifiez également si vos autres tables contiennent l'ancienne URL. Cela peut être un peu délicat à remplacer, mais il faut également le faire pour déplacer complètement votre site.

Régénérez vos Permaliens

Juste pour être sûr, enregistrez à nouveau vos paramètres de permalien pour créer à nouveau les permaliens.

Vérifiez votre site

S'il vous plaît, n'oubliez pas de vérifier VRAIMENT votre site après l'avoir transféré. Vérifiez toutes les fonctions, en particulier AJAX-stuff, les formes de contact, les cartes, etc., car elles sont plus susceptibles d’échouer que de simples PHP/HTML.

Temps pour la bière :)

Choses à surveiller !!

Comme toujours, rien de ce qui a été créé manuellement, transféré manuellement et édité automatiquement ne présente aucune défaillance. Voici quelques pièges de commentaire faciles à utiliser, mais qui peuvent également être facilement évités.

  • Plugins mal codés (enregistrement de l'URL de votre site Web au lieu du chemin relatif et utilisation des fonctions WordPress pour récupérer l'URL complète. Il peut aussi y avoir beaucoup de problèmes avec votre AjaxURL.)
  • Problèmes d'encodage ( Soyez absolument sûr que vous utilisez le même encodage sur vos serveurs et vos bases de données !!! D'habitude, si vous utilisez le format UTF-8 recommandé, cela ne devrait pas poser de problème)
  • Données sérialisées (C’est le plus gros problème que vous puissiez rencontrer. Si vous utilisez un plugin comme Tablepress, où une table entière est stockée dans un tableau sérialisé, elle se cassera dès que vous remplacerez automatiquement quelque chose. Si vous avez des données comme ça, regardez pour une fonction d’exportation/importation dans ce plugin spécifique, et utilisez-la comme une étape supplémentaire (s’ils n’ont pas cette fonction, vous devez le faire à la main)
  • Paramètres du serveur (il peut facilement arriver que votre site ne s'exécute pas sur votre nouveau serveur en raison de paramètres standard. Assurez-vous de disposer de suffisamment de ressources!)
  • URL codées en dur dans votre thème (bien que cela ne devrait pas arriver, cela se produit beaucoup trop souvent et rompt vos images et vos liens dès que l'ancien site n'est plus disponible)
  • Problèmes de mise en cache (n'utilisez pas les mêmes fichiers de mise en cache que sur votre ancien serveur. Le meilleur moyen serait de désactiver la mise en cache avant d'exporter le site, ainsi que de vider toutes les mises en cache)
  • En supposant que tout fonctionne lorsque vous modifiez les paramètres pour la deuxième fois sur votre serveur (vérifiez toujours à nouveau)
  • Options dans vos plugins et thème (Anciennes adresses e-mail, etc.)

Cela devrait être ça. Il semble y avoir beaucoup de choses à faire, mais en réalité, la plus grande partie est automatique. Vous devez juste penser à tout ce qui peut aller de travers et vérifier si cela a été le cas :)

S'amuser!

3
fischi

Il n’est pas nécessaire d’utiliser des plugins, des scripts ou même des connaissances de SQL. Un simple bloc-notes suffit à la migration. Vous devez télécharger tous vos fichiers wordpress sur votre nouveau serveur et changer simplement dans votre fichier wp-config.php (dans votre dossier wordpress principal) 3 valeurs: define ('DB_NAME', 'votre_nouveau_nom_base'); define ('DB_USER', 'votre_nom_db'); define ('DB_PASSWORD', 'votre_password_db');

Ensuite, si vous utilisez un client mysql tel que phpmyadmin sur votre serveur actuel, vous devez exporter votre base de données dans un fichier, puis ouvrir your_db_dump.sql dans le bloc-notes, puis rechercher et remplacer toutes les occurrences test.example.com par test.mydomain.com après. que vous devez importer ce fichier db_dump dans votre nouvelle base de données (que vous avez définie dans wp-config.php). C'est tout.

1
bigwolk

J'ai déplacé un certain nombre de sites d'un serveur/domaine à un autre de cette manière, et tout ce dont vous avez besoin habituellement est une sauvegarde et votre dossier wp-content, ce que vous semblez avoir. Voici la méthode que je suis:

  1. Installez Wordpress sur le nouveau site. Vous pouvez utiliser n’importe quelle méthode pour cela. Certains hôtes proposent des installations en un clic. Autrement, continuez et procédez selon la méthode que vous préférez.
  2. Remplacez le dossier wp-content par la copie que vous avez. Cela garantit que tous vos plugins, fichiers téléchargés, etc. sont conformes à votre ancien serveur.
  3. Remplacez la base de données par la copie que vous avez. Je fais généralement cela en utilisant phpMyAdmin avec la fonction d'importation. Une chose à surveiller ici est que si votre sauvegarde n'inclut pas d'instructions DROP, vous devez d'abord supprimer toutes les tables de la base de données.
  4. Si vous modifiez le nom de domaine, vous devrez parcourir votre table wp_options dans phpMyAdmin et mettre à jour votre option "site_url". Il existe une autre option appelée "maison" que vous pouvez mettre à jour, mais vous n’avez pas à le faire car cela peut être modifié dans l’administrateur WordPress une fois que votre site est opérationnel.

Terminé!

Cela devrait être tout ce que vous devez faire pour que votre site soit opérationnel. Une fois qu'il sera opérationnel, il serait prudent de vérifier les paramètres spécifiques aux plug-ins/thèmes pouvant faire référence à votre ancien site et régénérer vos permaliens.

0
Owen Cutajar

Une réponse précédente avait ceci, mais voici une étape par étape avec une autre entrée:

  • Ne pas installer WP
  • Transférer le répertoire entier WP d'origine dans un nouveau répertoire (voir ci-dessous s'il manque quelque chose)
  • Importez le SQL avec phpmyadmin sur le panneau de contrôle de votre serveur.
  • Le ftp searchreplacedb.php dans le répertoire WP se trouve dans.
  • Exécutez searchreplacedb.php depuis votre navigateur (à supprimer après !!!)
  • Prenez du temps et facturez 75 $ à votre client!

    (searchreplacedb.php est disponible GRATUITEMENT sur: interconnectit.com/products/search-and-replace-for-wordpress-databases ... ils ont aussi des instructions).

Si vous ne disposez que du dossier de contenu WP, vous avez un autre problème. Vous devez obtenir le reste de l'installation WP de EXACT SAME VERSION. Recherchez dans la base de données si vous ne savez pas quelle version WP est. Il est facile de télécharger les anciennes versions en ligne. Mettez tout au bon endroit, comme auparavant, en utilisant FTP pour configurer les nouveaux dossiers, si vous voulez que le contenu s'affiche tel qu'il était avant. Ne visitez pas le site après avoir téléchargé les fichiers db et WP s'il vous manque quelque chose, sinon le thème du stock ou les plug-ins seront désactivés par défaut. J'ai perdu les paramètres du plug-in et je devais tout refaire alors réfléchissez-y et avancez lentement.

Si vous avez déjà un sous-dossier ou un addon, ou si le nouveau site en a besoin, planifiez à l'avance. Ne remplacez pas simplement l’URL avant de prendre en compte le nouveau dossier nécessaire ou l’absence de nouveau. Vous devrez peut-être exécuter searchreplacedb pour 'folder/url' avant de revenir en arrière pour 'url', etc. Sinon, vous risqueriez de gâcher un 'addon' qui deviendrait un 'écran racine avec installation de sous-répertoires' ou un autre non-sens!

Si la nouvelle structure correspond à l'ancienne et que vous avez tout le répertoire WP, vous pouvez le faire plus facilement et plus rapidement que de lire ce post! Placez le programme dans le même répertoire que celui dans lequel vous avez transféré WP pour obtenir les meilleurs résultats, comme le dit l'instruction, car il possède un autoconfig.

Si vous ne disposez pas d'un accès ftp, d'un panneau de contrôle ou d'un accès SQL, vous avez vraiment besoin d'un meilleur serveur et vous risquez de ne pas avoir de chance.


Essayez la recherche et remplacez recommandé dans d'autres messages et si vous êtes chanceux, ayez une version plus ancienne de WP et il s'inscrit dans les paramètres nécessaires cela fonctionnera; une vraie douleur d'une façon de jouer à la roulette russe avec votre site.

En outre, ne modifiez jamais les données dans le bloc-notes, à moins que vous sachiez qu'il n'y a pas de chaînes plus longues que ce qu'il acceptera. Maintenant, il y a une belle erreur que vous pouvez passer des semaines à chercher! Si vous devez le regarder, regardez seulement, ne le sauvegardez pas. Vous devriez oublier notepad et utiliser notepad ++, mais éditer manuellement des données sérialisées dans un éditeur de texte est aussi grave que d'essayer de rechercher et de remplacer dans phpmyadmin; ne le fais pas.

Vous pouvez rechercher "données sérialisées SQL". La réponse courte est que trouver et remplacer va pie des données sérialisées dans un SQL. WP Les db ont des données sérialisées… encore plus de nos jours.

Je l'ai fait trop de fois et j'ai eu un succès marginal et je me suis cogné la tête contre un mur plusieurs fois avant de finalement le rechercher correctement. C'est maintenant une promenade dans le parc.

0
Don

Ce que je fais c'est:

  1. Créez une nouvelle base de données sur l'hôte destinataire. Importez le fichier SQL. Exécutez les requêtes SQL suivantes sur la nouvelle base de données:

    UPDATE wp_options SET option_value = replace(option_value, 'test.example.com', 'test.mydomain.com') WHERE option_name = 'home' OR option_name = 'siteurl';
    
    UPDATE wp_postmeta SET meta_value = replace(meta_value, 'test.example.com', 'test.mydomain.com') WHERE meta_key = '_menu_item_url';
    
    UPDATE wp_posts SET guid = replace(guid, 'test.example.com','test.mydomain.com');
    
    UPDATE wp_posts SET post_content = replace(post_content, 'test.example.com', 'test.mydomain.com');
    
  2. Téléchargez les fichiers WordPress sur le serveur de réception.

  3. Téléchargez le dossier wp-content en écrasant les fichiers WordPress par défaut.
  4. Configurez votre fichier wp-config.php comme d'habitude, en utilisant le nom de la base de données, l'utilisateur et le mot de passe de la base de données que vous avez créée.
  5. Accédez au tableau de bord et modifiez manuellement les instances de test.example.com dans les widgets (elles ne peuvent pas être modifiées via une requête SQL car elles sont sérialisées dans la base de données).
  6. Lorsque le moment est venu de passer à myclientsdomain.com, exécutez à nouveau les requêtes SQL ci-dessus et corrigez les widgets.

Selon votre thème et vos plugins, des modifications supplémentaires peuvent être apportées à la base de données ou au tableau de bord. Celles-ci devront être découvertes par vous-même et modifiées au fur et à mesure que vous les trouverez.

Avertissement raisonnable que ce n'est pas parfait et que déplacer WordPress d'un domaine à l'autre peut être très pénible. Une autre chose que j’ai aussi vue faite est d’ajouter ce qui suit à votre fichier wp-config:

define('WP_HOME','http://'. $_SERVER['SERVER_NAME']);
define('WP_SITEURL','http://'. $_SERVER['SERVER_NAME']);

Cela aidera le site à fonctionner sur le domaine actuellement sélectionné, mais vous devrez tout de même gérer les URL codées en dur dans le contenu, les options et les menus. Je n'ai pas testé cela moi-même et je ne sais pas si vous devez supprimer les options correspondantes de votre base de données pour qu'elles fonctionnent.

Mise à jour: J'aurais dû deviner qu'il y aurait un plugin pour gérer la partie base de données http://wordpress.org/extend/plugins/wp-migrate-db/

0
Michael Dozark