web-dev-qa-db-fra.com

La manière la plus parfaite de transférer de Dev à Prod

Duplicate possible:
Déplacer facilement une installation WordPress du développement à la production?

Donc, je travaille avec WordPress depuis un moment maintenant et je développe habituellement localement, puis je télécharge tout sur mon serveur de production ... Cependant, j'ai eu beaucoup de résultats différents, en particulier lors de l'utilisation de plugins.

J'exporte généralement la base de données, mais des éléments comme l'emplacement du domaine ne semblent pas toujours avoir été modifiés, même après leur modification préalable dans WP admin.

Quelle est la meilleure façon de passer de Dev à Prod en gardant tout intact?

Ensuite, quel est le meilleur moyen de déplacer votre site d’un sous-répertoire du même domaine?

S'il vous plaît, ne me dirigez pas dans la direction du WP docs ... c'est le premier endroit où j'ai regardé.

4
dcolumbus

Any La différence entre dev et prod est mauvaise. Voici ce que je fais:

  • Avoir unip différent pour le serveur de développement(que l’ordinateur interne, externe ou local ne soit pas important) - mais le serveur de développement doit avoir exactement la même configuration (voir paragraphe inférieur)
  • Modifie le fichier hosts (voir ici)(sur le vôtre, sur un ordinateur de test ou sur une machine virtuelle) pour qu'il pointe vers l'adresse IP du serveur de développement
  • Résultat: les requêtes HTTP envoyées au serveur de développement ont Le champ d'en-tête de l'hôte est défini comme "exemple.com"exactement comme ce sera le cas pour le serveur de production.

Cette méthode supprime deux différences souvent rencontrées autrement:

  1. avoir à changer de nom de domaine
  2. avoir du code dev dans un sous-répertoire, mais du code prod dans un sous-répertoire root ou diff. C’est parce que j’utilise Git pour transférer des fichiers entre dev et prod.

.

.

Le serveur dev est configuré exactement de la même manière que le serveur prod (voir Chef ou Puppet pour savoir comment gérer les serveurs par programme).

1
Alexander Bird

D'après mon expérience, j'ai utilisé le plugin Search and Replace pour renvoyer toutes les références à l'ancien domaine. Pas la solution la plus propre, mais semble fonctionner.

1
GavinR

Je fais régulièrement le même type de déploiement dev-prod, alors j'ai développé quelques requêtes standard pour cela:

  1. Mettre à jour l'URL du site:

    UPDATE wp_options SET valeur_option = remplacer (valeur_option, '[URL_DÉV.]', '[URL_PROD' ') WHERE option_name =' home 'OR option_name =' siteurl 'OR option_name =' fileupload_url ';

  2. Mettez à jour le chemin de téléchargement:

    UPDATE wp_options SET option_value = '[SITE_ROOT_PATH]/wp-content/uploads' WHERE nom_option = 'upload_path';

  3. Mettre à jour les guides post:

    UPDATE wp_posts SET guid = replace (guid, '[DEV_URL]', '[PROD_URL]');

  4. Mettre à jour les URL dans les messages:

    UPDATE wp_posts SET post_content = replace (post_content, '[DEV_URL]', '[PROD_URL]');

Remplacez les variables entre crochets par les valeurs réelles, par exemple.

[DEV_URL] -> http://example-local-pc.com [PROD_URL] -> http://example-online-server.com [SITE_ROOT_PATH] ->/home/client/domaines/example-online-server.com/html

Cela prend généralement soin de toute référence à l'environnement de développement. Notez toutefois que:

i) De nombreux plugins stockent également des URL absolues dans wp_options ou dans des tables personnalisées. Ceux-ci, vous devez enquêter au cas par cas.

ii) L'exécution d'une requête de remplacement de mise à jour (telle que 1. et 2. ci-dessus) va presque certainement corrompre les données dans des champs sérialisés. Je n'ai pas encore rencontré de technique propre et rapide pour effectuer ce remplacement, à part laisser les plugins associés faire la mise à jour eux-mêmes. Le succès de ceci dépend de la robustesse du plugin.

1
KalenGi

J'aime développer sur un sous-répertoire afin de permettre à mes clients d'avoir accès au site de test. Lorsque je suis prêt à publier, j'utilise un plugin (recommandations ci-dessous) pour dupliquer le tout dans un autre sous-répertoire, puis pointez simplement WordPress pour le charger à partir du nouveau. Laisser la zone de développement active pour les tests.

Utilisez un plugin tel que duplicateur (gratuit) ou backupbuddy (payant). Voir aussi si ma question ici vous aide.

0
Drai

J'utilise cet outil de remplacement de recherche:

https://interconnectit.com/products/search-and-replace-for-wordpress-databases/

Cela fonctionne pour d'autres logiciels aussi bien que wordpress.

En ce qui concerne le déploiement, j'ai configuré un environnement sur le serveur que je peux ensuite basculer via domain mapping/vhosts pour rendre live. Le programme d'installation Dev est toujours sur un serveur distinct et n'est jamais mis en ligne.

0
Tom J Nowell

Il n’existe aucun moyen sans faille en raison de la manière dont WordPress stocke le contenu dans la base de données.

Transférer du code peut s’avérer aussi simple que d’utiliser git/Mercurial/svn ou même d’écraser des fichiers.

Mais ce n'est pas le cas pour tout contenu stocké dans la base de données (plugins, publications, catégories, etc.) et il n'y a pas de moyengood/ pour synchroniser deux bases de données. Comment: déplacer facilement une installation WordPress du développement à la production?

0
Wyck