Je développe sur une boîte et utilise une seconde pour la production. À l’heure actuelle, je vole la base de données, puis je cherche à remplacer les modifications d’URL; Copiez ensuite les fichiers et importez le nouveau code SQL.
Y a-t-il de meilleures façons de le faire?
customization
deployment
production
staging
Ryan Gibbons
la source
la source
Réponses:
@ Insanity5902 : Le déploiement d'un site WordPress d'un boîtier à un autre est un PITA depuis le premier jour où j'ai commencé à travailler avec WordPress. (À vrai dire, c’était un PITA avec Drupal depuis 2 ans avant de commencer avec WordPress, le problème n’est certainement pas exclusivement lié à WordPress.)
Cela me dérangeait que chaque fois que je devais déplacer un site, je devais dépenser tant d'efforts en double, ce qui m'empêchait de me déployer à des tests aussi souvent que je l'aurais souhaité. Donc, il y a environ 4 à 6 mois, j'ai commencé à travailler sur un plugin pour résoudre le problème de migration hébergé sur le Web et j'ai mentionné mes idées sur le forum WP Tavern .
Eh bien, avancez rapidement à ce jour et j’ai pratiquement réussi à le faire et je l’appelle commodément « WP Migrate Webhosts ». Même si le plugin est encore très bêta (probablement même alpha) étant donné votre question, je pense que je suis prêt à laisser les gens commencer à taper dessus.
Le cas d'utilisation envisagé est le suivant:
Vous pouvez télécharger le plugin sur mon site web et décompresser dans votre répertoire plugins (si vous ne savez pas comment faire cela, alors ce plugin n'est pas pour vous car il nécessite une personne sachant ce qu'elle fait pour l'utiliser.) gardez ce plugin en ligne jusqu'à ce que je le publie sur WordPress.org, après quoi vous devriez le chercher.
Pour l' utiliser , vous prenez une approche différente dans votre
wp-config.php
que la normale en commentant les quatre (4) définitDB_NAME
,DB_USER
,DB_PASSWORD
etDB_HOST
au lieu enregistrer les valeurs par défaut pour webhosts et enregistrer des informations sur chaque hébergeur lui - même. Voici à quoi ce segmentwp-config.php
pourrait ressembler (notez que la première section est le code inutile commenté et que je configure également mon fichier hosts sur ma machine locale avec des.dev
domaines de premier niveau non routables pour faciliter le développement quotidien. Sur Mac, VirtualHostX simplifie grandement la tâche :J'espère que c'est (principalement) explicite. J'ai essayé de rendre le code aussi propre que possible mais, malheureusement, il faut ces deux
require_once()
lignes cryptées avant et après le bloc de code d'enregistrement d'hébergeur Web, car je n'avais aucun moyen de " raccrocher " WordPress avant l'wp-config.php
appel.Une fois que vous avez mis à jour votre,
wp-config.php
vous pouvez simplement utiliser le raccourci d'URLwp-migrate-webhosts
pour accéder à l'écran d'administration de la manière suivante:Ce qui précède vous mènera à un écran d’administrateur comme celui-ci, qui contient un peu de texte de description et vous permet de migrer DE L’ un des autres domaines d’hébergeur Web en un seul clic après avoir sélectionné les domaines à migrer ( REMARQUE : cet exemple montre BAS de test / stade / serveurs en direct au développement local , mais rassurez - vous , il peut migrer à tous les domaines où il se trouve être situé. Cela signifie également le plug - in sera idéal pour prendre un site en direct existant et obtenir rapidement un environnement de développement local de travail! ):
Si ce n'est pas clair, " migration " dans ce contexte signifie mettre à jour toutes les références de la base de données actuelle pour qu'elles soient adaptées à l'hébergeur Web actuellement défini (et " actuel " est détecté par inspection
$_SERVER['SERVER_NAME']
).Ce qui est génial avec ce plugin, c'est qu'il implémente des migrations de base, mais tout le monde peut l'accrocher et effectuer ses propres migrations . Par exemple, si vous ajoutez un plug-in de galerie stockant des chemins d'accès complets aux images de la base de données, vous pouvez accrocher l'
migrate_webhosts
action qui sera transmise à l' hôte Web " de " et à l' hôte Web à un tableau de métadonnées, ce qui vous permettra de pour effectuer tout ce que vous devez faire dans la base de données à l'aide de SQL ou de toute fonction API WordPress applicable pour effectuer la migration. Oui, aucun de nous ne pourrait le faire sans le plugin, mais sans le plugin, j’ai trouvé qu’écrire tout le code nécessaire demandait plus d’effort qu’il ne valait la peine. Avec le plugin, il est simplement plus facile d'écrire ces petits crochets et d'en finir.Vous pouvez également constater que mes migrations échouent dans des cas critiques que je n'ai pas encore testés et peut-être pouvez-vous m'aider à améliorer le plug-in? Tous ceux qui le souhaitent peuvent m'envoyer un e-mail via mon compte gmail (mon alias est "mikeschinkel").
En outre, le plug - in a été conçu pour accepter l' utilisateur de définir les métadonnées de webhost en plus de ceux qu'il reconnaît comme
database
,user
,password
,host
,domain
etc. Un exemple parfait peut - êtregooglemaps_apikey
où vous pouvez stocker les différentes clés de l' API pour chaque domaine que les besoins du plugin de votre Google Map pour fonctionner correctement (qui parmi vous qui a utilisé un plugin Google Maps n'a pas déployé d'application sur un serveur live et a oublié de changer le code pour la clé API correcte? Allez, soyez honnête ... :) Avec ce plugin, ungooglemaps_apikey
élément de votre tableau register_webhost () et un petitmigrate_webhosts
crochet personnalisé vous permettront de l'éliminer efficacement!Eh bien c'est à peu près tout. Je lance ce plugin ici sur Exchange WordPress Answer car la question de @ Insanity5902 l'a déclenchée. Faites-moi savoir si c'est utile, ici si approprié ou par email si non.
PS Si vous décidez de l'utiliser, rappelez-vous qu'il s'agit d'alpha / bêta et que cela signifie qu'il va changer. Soyez prêt à subir une petite intervention chirurgicale si vous souhaitez l'utiliser maintenant et utilisez la version publiée une fois qu'elle a été battue par de nombreuses mains.
PPS Quels sont mes objectifs avec cela? J'adore voir cette migration migrer vers le noyau WordPress afin que tout le monde y ait accès. Mais avant que cela puisse même être considéré, de nombreuses personnes doivent être intéressées par son utilisation pour s’assurer qu’il résout réellement plus de problèmes qu’il pourrait potentiellement en créer. Donc, si vous aimez cette idée, alors je vous en prie, utilisez-la et aidez-moi à prendre de l'élan pour l'inclusion éventuelle d'espoir dans le noyau de WordPress.
la source
Si possible, je mets
WP_HOME
etWP_SITEURL
danswp-config.php
. Ceci, combiné à un dump et à une importation de base de données, est la plus simple de toutes les solutions que je connaisse.http://codex.wordpress.org/Changing_The_Site_URL#Edit_wp-config.php
la source
Mon hack préféré; ajoutez un paramètre à votre
/etc/hosts
pour que le domaine de production pointe vers votre zone de développement, uniquement sur votre ordinateur. Pour déployer en production, vous devez synchroniser tous les fichiers et transférer la base de données.Les risques de cette stratégie sont clairs; vous pouvez confondre votre environnement de développement avec votre environnement de production.
C'est quand même une solution facile.
la source
Je voulais quelque chose de similaire quand j'ai migré vers WP il y a quelques mois. J'ai donc écrit un script shell assez simple qui utilise rsync et mysqldump sur ssh:
http://snarfed.org/sync_wordpress
Ce n'est pas sophistiqué ou basé sur le Web, mais j'en suis heureux.
la source
WP Engine est un nouveau service qui offre une "mise en place en un clic":
Cela semble être un moyen très facile de passer rapidement du développement à la production, en particulier avec un site déjà actif.
la source
Duplicator Plugin: Voici un plugin sur lequel j'ai travaillé. Il est actuellement en version bêta, mais cela fonctionne pour la plupart des sites. Pour le moment, il est destiné aux installations WordPress plus petites. http://wordpress.org/extend/plugins/duplicator/
Ressources: des ressources supplémentaires pour le plugin peuvent être trouvées ici: http://lifeinthegrid.com/duplicator/
Communauté: Veuillez nous informer de vos succès ou de tout problème que vous pourriez rencontrer! Afin de gérer plus facilement les différentes discussions, veuillez publier des numéros sur les forums du plugin WordPress.org. Veuillez ne publier aucune donnée d'enregistrement du plug-in dans les forums en ligne. Les données de journalisation peuvent être soumises à notre site de support.
la source
Vous pouvez jeter un oeil à un produit de iThemes, appelé BackUpBuddy . Je ne l'ai utilisé que deux fois, à chaque fois avec un accroc ou deux, mais dans l'ensemble, cela semble prometteur.
la source
Je m'occupe personnellement de cette question avec mon projet sur Github, appelé Autopress . Je n'ai pas encore de solution parfaite, mais je me rapproche, en particulier avec le plugin wpstage des gens de wpengine.
la source
Cela semble prometteur. Nous travaillons sur des scripts pour gérer la migration de certaines données, wp-options par exemple, la modification des chemins dans la base de données, la copie sur un support.
Le problème que j’ai, c’est que le site actif continue de croître pendant que l’autre est en développement. Un site sur lequel nous travaillons compte 20 publications par jour et plus de 3 000 commentaires par jour. C'est trop de données à déplacer avec phpmyadmin ou via la ligne de commande. De plus, le déplacement des données provoque toujours des problèmes UTF pour une raison quelconque.
De plus, maintenant qu'il semble que les options de menu soient stockées dans la base de données, j'en ai encore plus à traiter.
Je vérifie tout mon code dans SVN et le déploie via FTP depuis le serveur (Beanstalk). Cela ne modifie cependant pas pour moi la base de données et n'active pas de nouveaux plugins.
Mon plan actuel est de créer un fichier manifeste pendant que je développe toutes mes modifications sur le site actif.
Par exemple, le fichier aurait des lignes lisibles par l'homme
Cela inclurait les plugins à activer, les options-wp à déplacer, les images à déplacer, les pages à déplacer. Ensuite, mon plug-in détecterait le fichier manifeste et apporterait toutes les modifications au site intermédiaire.
Une fois que j'ai testé cela et que j'étais certain d'avoir tout, je pouvais être sûr que cela fonctionnerait en production.
Ce plugin n’est encore qu’une idée, mais j’ai du code écrit pour ça.
En outre, si vous souhaitez modifier uniquement l'URL de votre base de données, vous pouvez utiliser le code SQL suivant.
il suffit de remplacer
$old$
par l'ancien domaine et$new$
par le nouveaula source
Deux projets Google Summer of Code ayant un objectif similaire:
la source
J'utilise la commande d'exportation de subversion pour installer les fichiers WordPress (http://core.svn.wordpress.org/tags//), ainsi que tous les plugins du référentiel (http://plugins.svn.wordpress.org//tags //), puis zippez le thème et les plugins personnalisés et installez-les normalement. Une fois que tout est opérationnel et sans contenu, j'exporte la base de données de test et effectue une recherche / remplacement pour l'URL ET le chemin de fichier (stocké pour le support) et l'importe dans une base de données vide, puis modifie simplement les informations de la base de données dans wp-config. .php. Cela me prend généralement environ 10 à 20 minutes.
la source
Normalement, je me connecte à phpMyadmin pour télécharger la base de données et éditer le contenu de wp_options> siteurl et wp_options> home dans le domaine attendu. Si vous devez mettre à jour les URL dans le contenu de vos publications et de vos pages, vous pouvez rechercher / remplacer l’URL et le chemin des supports / téléchargements dans le fichier .SQL avant le téléchargement. C'est un travail rapide.
la source
Bien que les bonnes solutions ne manquent pas, dans l’esprit de partage, j’ai pensé ajouter mon script bash deploy à la pile: https://github.com/jplew/SyncDB
Ce script fonctionne bien avec le squelette WP-Skeleton de Mark Jaquith, et exploite
mysqldump
,git
etrsync
pour synchroniser votre site entier (base de données, code et média) en deux étapes faciles:la source
J'utilise http://wordpress.org/plugins/wp-clone-by-wp-academy/ . Ça marche bien!
Seulement 3 étapes:
Il ajuste automatiquement toutes les URL - y compris les remplacements de chaînes sérialisés - pour éviter tout risque de perte de configuration de widget, etc.
Les seuls problèmes que j'ai rencontrés concernent certains sites Web dotés de bases de données plus volumineuses (~ 300 Mo), ce qui a provoqué des délais d’exécution des scripts PHP lors de l’importation de la sauvegarde du site.
la source
Depuis 2017, voici les deux meilleurs moyens que j'ai trouvés pour gérer le transfert d'une base de données WordPress du développement à la production.
WP Migration de la base de données DB Pro / WP Sync
https://wordpress.org/plugins/wp-migrate-db/
Ces plugins WordPress vous permettent de pousser, extraire et synchroniser des tables de base de données entre des installations WordPress. C'est beaucoup mieux qu'une recherche / remplacement pour de nombreuses raisons, car:
Je suis fan d’être payé pour le travail que je fais, je vous recommande donc de soutenir M. Brad Touesnard et d’acheter une copie de la licence avec les vraies choses. WP Sync DB est une réplique et son support est toujours en retard. Avec ce plugin, le processus est extrêmement simple:
Recherche et remplacement de base de données pour les bases de données WordPress par InterconnectIT
https://interconnectit.com/products/search-and-replace-for-wordpress-databases/
Cet outil gratuit n’est pas un plugin, mais il est installé dans votre répertoire racine de votre installation de production WordPress. Cela n’est pas aussi bon que WP Migrate DB Pro car cela nécessite quelques étapes manuelles, mais c’est quand même une excellente option qui fonctionne de manière constante. Lorsque vous utilisez cette approche, le processus ressemble à ceci:
Vous pouvez utiliser une approche plus rapide, mais cela implique des temps d'arrêt pour votre site de production, ce qui est à mon avis inacceptable. C'est pourquoi nous appelons cela la production, non?
la source
Depuis que je fais tourner mes sites dans IIS (je lance aussi asp.net, donc j'ai besoin de Windows), j'utilise WebPI de Msft pour installer une nouvelle instance, puis je copie le modèle et utilise l'import / export pour transférer les données.
Ce n'est pas parfait, mais le tout prend moins d'une heure.
Évidemment, il serait bien d’avoir une solution en un clic, mais c’est ce que j’ai trouvé le plus facile pour moi.
la source
Autre solution payante: le framework de thèmes Xtreme One a publié la version 1.2 avec Xtreme Backup qui vous permet "d'exporter ou d'importer les paramètres de vos Childthemes, Layouts ou Widgets avec tous leurs paramètres / contenu sous forme de fichier XML".
la source
Un collègue a trouvé ceci. Concept intéressant, bien que cela ne fonctionne pas, cela ressemble à un serveur. Je suis toujours en train de l'explorer, mais il semble que cela pourrait fonctionner très bien pour une instance intermédiaire.
http://code.google.com/p/deploymint/
la source
Cela n'était peut-être pas le cas lorsque vous avez posé la question, mais j'utilise un service appelé Blogvault depuis quelques mois et cela s'est parfaitement déroulé. J'ai probablement effectué plus de 50 migrations (traversée de domaines, sous-domaines et hôtes Web), pas un accroc et cela ne prend pas de temps du tout.
C'est un service payant (par domaine / mois), mais pas tant que ça.
la source
RAMP est un nouveau plugin de déploiement de contenu de Crowd Favorite, et il a l'air vraiment lisse. C'est 250 $, cependant, donc je ne l'ai pas encore essayé. Pourriez-vous simplement vous payer le temps gagné, cependant, alors je l’envisage.
Le gros avantage qu'il présente par rapport à la plupart des autres méthodes citées est qu’il peut fusionner intelligemment les publications, les commentaires, etc. Il n’est pas seulement important d’importer un mysqldump, c’est plus un contrôle de source pour la base de données. Par exemple, lors du déploiement d'une publication, les balises de cette publication seront également déployées, si elles n'existent pas déjà en production.
la source
Laissez-moi vous donner un de mes favoris :-)
... et puis vous travaillez votre chemin à partir de là. DB_NAME, DB_USER ... préfixe de table. Personnellement , j’allume ALTERNATE_WP_CRON sur local (pour éviter certains avertissements gênants ), WP_DEBUG sur les deux (si vous n’êtes pas développeur) ou sur le live uniquement (si vous êtes), un autre
ini_set('display_errors', '0');
pour le live pourrait aussi faire du bien, enfin, comme mentionné ci-dessus: WP_HOME et WP_SITEURL à l'URL locale / réelle respective.C'est à peu près tout, il ne reste rien au-dessus du classique WordPress "C'est tout, arrêtez de modifier!" ligne...
Le 192.168. partie vous permet de faire des tests locaux (à partir de pads ou de téléphones) sur votre réseau local)
$ GLOBALS ['is_local'] peut aussi être utile dans le développement de votre thème, pour une sortie de débogage supplémentaire, etc ...
la source
WP_LOCAL_DEV
constante pour obtenir quelque chose de similaireJ'utilise le plugin backupbuddy depuis un moment maintenant. Il vous permet de faire une sauvegarde de la base de données et de tous les fichiers, de la télécharger au format zip ou de l’envoyer directement à un autre serveur via FTP. Il fait également l'URL trouver et remplacer pour vous. Il me faut généralement environ 5 minutes pour suivre tout le processus. Et comme tous les fichiers sont compressés, le processus de téléchargement est beaucoup plus rapide. Et non, je ne travaille pas pour eux, mais ce plugin a vraiment rendu ce processus beaucoup plus facile.
la source
Un autre outil utile pour gérer les migrations de serveurs de sites est la CLI de WordPress. Cet article donne une bonne vue d'ensemble de ce qu'il peut faire, mais plus précisément, la section "Rechercher et remplacer" est utile pour trouver toutes les références à l'ancienne URL du site / dev. :
Gestion avancée de WordPress avec WP-CLI
la source
C'est le moyen le plus simple à ce jour: https://themes.artbees.net/docs/website-migration/
Cela ne prend que deux clics. Un pour exporter, un pour importer.
C'est possible en utilisant le plug-in Tout en un WP Migration. Le lien ci-dessus montre comment l'utiliser.
la source
Si vous essayez de réaliser une synchronisation continue, je suggère d'utiliser rsync avec un travail cron personnalisé pour réécrire toute donnée spécifique à une URL ou à un site.
la source
Après avoir suivi cette réponse pendant un moment, j'ai créé mon propre petit plugin - Pitta Migration . Les raisons étant:
WP_HOME
etWP_SITEURL
optionswp_options
URL correspondantes , ce qui couvre les cas où les plugins / thèmes les ignorent.la source
À mon avis, la méthode la plus simple que je suis est le transfert manuel. Copiez simplement le dossier wp-content et le fichier wp-config.php sur le nouvel hôte. Exportez la base de données de l'ancien hôte et importez-la dans une nouvelle base de données du nouvel hôte.
Dans la nouvelle base de données d'hôte, accédez à la table wp-option et modifiez l'URL du site et l'URL du blog en nouvelle adresse d'hôte à partir de l'ancien hôte. comme de http: // localhost / wp à http://example.com
Maintenant, dans le fichier wp-config, il suffit de modifier les informations de la base de données et de l'utilisateur avec les nouvelles informations d'hôte.
Maintenant, connectez-vous à la nouvelle administration wp, accédez aux paramètres et enregistrez le lien permanent.
Vous avez terminé. Je pense que c'est simple sans utiliser de plugins.
J'ai essayé différents types de plugins et tous ont de nombreux problèmes.
Je préfère donc ce simple transfert manuel qui me semble plus facile.
la source