Vous n'êtes pas identifié.
Annonce
Mettez-vous à jour ! WordPress 3.3.2 est disponible en français.
Annonce 1 : Le Codex en français a besoin de vous pour avancer !
Annonce 2 : Avant de poster, n'oubliez pas de faire une petite recherche et de lire les règles de ce forum.
Annonce 3 : Lisez notre blog, il regorge de bonnes informations.
Annonce 4 : Rejoignez-nous sur Facebook, Google + et sur Twitter
#1 08-10-2009 12:33:50
Dump de la base et changement de domaine
Bonjour,
Ma configuration WP actuelle
- Version de WordPress : 2.8.4
- Thème utilisé : Stardust très modifé
- Extensions en place :
Chunk Urls for WordPress
Contact Form 7
DMSGuestbook
Include It
My Category Order
Really Simple CAPTCHA
Sociable-italia
TDO Tags Fixes
wp-num-captcha
WP Page Numbers
xili-language
xili-tidy-tags
- Nom de l'hebergeur : moi
- Adresse du site : http://www.piprime.fr/
Problème(s) rencontré(s) :
Je fais un dump de la base de données WP de mon site distant et je recrée à partir de ce dump une base locale identique;
Je fais un rsync complet de mon serveur distant vers mon serveur local.
Si je me connecte à mon site WP local, qui est une copie conforme du site distant, je n'ai aucun problème sauf que :-) tous les liens faisant référence au site courant pointent vers le site distant; c'est normal !
Qu'à cela ne tienne... Je change dans le dump toutes les occurrences de « www.piprime.fr » en « localhost/wordpress ».
et je recrée la base à partir de ce dump modifié.
Tout rentre dans l'ordre sauf que :-) certains widgets (en particulier Mycategoryorder) ont perdu leur configuration d'origine.
Pour modifié le dump j'ai utilisé 3 méthodes différentes, avec sed, avec replace de MySQL et avec mon éditeur de texte favoris Emacs... le problème est le même.
Pour être sûr que le problème vient de WP, j'ai exécuté cette requête SQL directement sur une base dupliquée non modifiée:
Code: html
UPDATE wp_posts SET post_content = replace(post_content,'www.piprime.fr',
'localhost/wordpress');
Cela suffit à casser le configuration de certains widgets.
On ne peut pas véritablement qualifier ce comportement de bogue mais plutôt d'instabilité; et en général c'est plus difficile à corriger.
Mes questions (enfin):
1. comment remédier au problème ?
Autrement dit, existe-t-il une méthode automatisée pour modifier le nom de domaine d'un site WP ;
le but étant d'écrire un script (bash dans mon cas) qui permet de basculer entre un site en prod et un site en dev, il faut donc que la synchronisation soit parfaitement réussie, sans retouches manuelles à effectuer.
2. plus généralement, je ne trouve pas sain qu'un site comme le mien, vieux d'à peine 1 moins, contienne déjà 42 occurrences de l'adresse du site dans sa BD; pour comparer avec TYPO3 que je connais mieux, un site de plus de 37000 pages ne contient qu'une seule fois l'adresse du site, que ce soit en base ou dans les fichiers de conf.
Pourquoi WordPress a-t-il tant besoin de dupliquer cette information ?
Merci de votre attention.
Hors ligne
#2 09-10-2009 00:08:48
- viwiv
- Passionné WP
- Date d'inscription: 30-08-2007
- Messages: 834
Re: Dump de la base et changement de domaine
Bonsoir,
Pour répondre à ta question quasi-philosophique, il existe plusieurs milliers d'extensions pour WordPress et (presque) autant de développeurs, plus ou moins doués ou scrupuleux, sachant que le code d'origine dans WordPress n'est pas merveilleux non plus, parfois.
Autrement posé, l'usage d'un plugin s'effectue aux risques et périls de l'utilisateur.
Je pense qu'il vaut mieux éviter lex extensions en se posant les questions comment puis-je faire différemment ?, est-ce important ?. Ensuite, il faut juger l'auteur du plugin à l'aune de son travail (est-il l'auteur de thèmes et d'autres extensions), propose-t-il un support technique, met-il souvent à jour son programme ?...
Pour en revenir à ta question précise, plutôt que tenter des modifications massives avec une commande radicale, modifie un champ à la main, et regarde si ça fonctionne. Tu gagneras du temps.
Regarde aussi comment sont mémorisés certaines adresses... Selon ton hébergeur précédent et sa configuration, tu peux avoir des champs qui indiquent des adresses comme d125/etc/bonjour/www..
Une astuce, méconnue : vas dans http://www.monsite.tld/wp-admin/options.php et regarde chaque champ.
Cordialement,
V.
Hors ligne
#3 16-10-2009 17:26:00
Re: Dump de la base et changement de domaine
Bonjour,
Même si ta réponse ne me satisfait pas, je te remercie ; d'autant plus que tu as été le seul à essayer de m'aider (alors que la solution est simple).
Les propos qui suivent ne vont pas toujours être très... diplomates, n'y voit aucune animosité; tout au plus de l'agacement par rapport à ce problème à cause duquel j'ai perdu 5 heures.
(pas vraiment perdu puisque ça m'a donné l'occasion d'explorer les entrailles de WP)
viwiv a écrit:
Pour répondre à ta question quasi-philosophique,
Rien de philosophique là-dedans. Je migre un site WordPress d'un endroit à un autre et je remplace donc toutes les occurrences de l'ancienne adresse par la nouvelle.
Faire cela plante le site alors que c'est une opération de maintenance des plus banale.
Je m'interroge donc sur la stabilité de l'outil; rien de philosophique là-dedans (la philosophie s'occupe de questions beaucoup plus importantes).
viwiv a écrit:
il existe plusieurs milliers d'extensions pour WordPress et (presque) autant de développeurs, plus ou moins doués ou scrupuleux, sachant que le code d'origine dans WordPress n'est pas merveilleux non plus, parfois.
J'ai étudié le code de l'extension qui semble poser problème... et je n'y vois rien de sale, elle fait bien appelle aux routines de l'API.
viwiv a écrit:
Autrement posé, l'usage d'un plugin s'effectue aux risques et périls de l'utilisateur.
L'usage de WordPress aussi semble-t-il :-)
viwiv a écrit:
Je pense qu'il vaut mieux éviter le extensions en se posant les questions comment puis-je faire différemment ?
Au risque de réinventer la roue et de perdre en ergonomie ?
Pour le coup, oui je vais faire autrement car le site est pour moi.
Mais pour un client qui demande ce genre de fonctionnalité, j'aurai des scrupules à lui vendre une solution qui posera problème le jour où il changera de domaine.
viwiv a écrit:
est-ce important ?.
Oui, toujours !
L'outil est à mon service, non le contraire.
viwiv a écrit:
Pour en revenir à ta question précise, plutôt que tenter des modifications massives avec une commande radicale, modifie un champ à la main, et regarde si ça fonctionne. Tu gagneras du temps.
1. le commande est radicale car elle doit l'être; lors d'un changement de domaine je ne vois pas pourquoi il devrait rester des traces de l'ancien nom de domaine.
2. je voulais m'éviter de faire du débogage sur une table, wp_options en l'occurrence, qui mélange les options du moteur avec celles des extensions sur plusieurs centaines d'enregistrement en utilisant comme identifiant un varchar(64) (le champ option_id semble alors distinguer les options de même nom).
Mais finalement, je l'ai fait et j'ai trouvé d'où vient le problème.
MyCategoryOrder utilise le champ widget_mycategoryorder pour enregistrer les options de ses widgets.
Sur mon serveur distant la valeur de option_value pour l'id widget_mycategoryorder est
Code: html
a:10:{s:5:"count";b:1;s:12:"hierarchical";b:1;s:8:"dropdown";b:0;s:6:"update";b:0;s:10:"hide_empty";b:1;s:8:"feedtext";s:0:"";s:9:"feedimage";s:48:"http://www.piprime.fr/wp-includes/images/rss.png";s:5:"title";s:11:"Catégories";s:7:"include";s:33:"1,231,243,242,241,238,240,239,246";s:7:"exclude";s:0:"";}
il suffit de changer www.piprime.fr en localhost/wordpress pour que le widgets perde la configuration.
C'est évident... les options des « widgets » sont sérialisées et,du coup, il ne faut pas y toucher sans désérialiser.
Malheureusement, Mycategoryorder offre la possibilité de mettre une image personnalisée pour les flus rss, mais cette image doit être adressée de façon absolue. D'où le problème en cas de changement de domaine.
Je vais en parler sur le blog du développeur de Mycategoryorder mais je trouve quand même dommage que la fonction « built-in » start_el(&$output, $category, $depth, $args) définie dans le fichier wp-includes/classes.php à la ligne 1325, contiennent cette ligne de code $link .= "<img src='$feed_image'$alt$title" . ' />';
il serait peut-être judicieux d'effectuer un test pour savoir si $feed_image est relative ou absolue... (allo la lune, ici la base)
viwiv a écrit:
Cordialement,
Tout autant !
Hors ligne
#4 16-10-2009 17:34:08
Re: Dump de la base et changement de domaine
Hors ligne
#5 16-10-2009 18:50:25
Re: Dump de la base et changement de domaine
Bienvenue dans le code WP 
Faites un blog, un wiki... mais pas un forum!
Applh.com (Formation Web et WordPress)
Micro Web Agency (Création de sites internet / WordPress et Woothemes)
Hors ligne
#6 17-10-2009 09:12:16
Re: Dump de la base et changement de domaine
Un problème qui m'a très largement cassé les pieds il y a quelque temps… Je n'avais jamais rencontré le coup de la configuration de plugin jusqu'à présent.
Manip habituelle donc, le passage d'un site depuis un serveur "maquette" ou un localhost sur mon poste de travail vers le serveur de production.
Habituellement, j'utilise la méthode du rechercher / remplacer dans le backup de mySQL, sans la moindre difficulté. Mais je me méfierais un peu plus des plugins grâce à ce fil…
Depuis peu, j'utilise une méthode que je trouve nettement plus élégante.
Modification du fichier .hosts sous Windows pour faire pointer l'adresse finale du Wordpress de production sur ma machine locale
Rajout d'une entrée vhost dans le fichier de configuration de mon Apache local
Du coup, le développement se fait sous la même adresse que la production, et je n'ai plus qu'à copier le site WP terminé sans aucune manip' supplémentaire. Et normalement, même les vilains plugins ne devraient y voir que du feu.
Ceci dit, quelle mouche a piqué les développeurs de WP de tout coder en adresses absolues ?
Bien cordialement… Pierre
Hors ligne
#7 17-10-2009 19:05:38
Re: Dump de la base et changement de domaine
Salut,
piekes a écrit:
Du coup, le développement se fait sous la même adresse que la production, et je n'ai plus qu'à copier le site WP terminé sans aucune manip' supplémentaire. Et normalement, même les vilains plugins ne devraient y voir que du feu.
Attention: les "attachments" contiennent le chemin complet du fichier sur le serveur
(avec le DOCUMENT_ROOT
)
Si le DOCUMENT_ROOT change avec le serveur, il faut aussi remplacer toutes ces valeurs pour faire une migration propre...
Apparemment WP2.9 devrait intégrer des nouvelles types de données autres que "post" "page" ou "attachment", peut-être qu'il sera possible d'utiliser cette nouvelle fonctionnalité pour stocker les paramètres des plugins/thèmes ? Ca permettra à l'import/export en WXR d'être plus complet et de ne plus faire ce genre de manip ? 
Faites un blog, un wiki... mais pas un forum!
Applh.com (Formation Web et WordPress)
Micro Web Agency (Création de sites internet / WordPress et Woothemes)
Hors ligne
#8 17-10-2009 19:16:37
Re: Dump de la base et changement de domaine
LH a écrit:
Attention: les "attachments" contiennent le chemin complet du fichier sur le serveur
Si le DOCUMENT_ROOT change avec le serveur, il faut aussi remplacer toutes ces valeurs pour faire une migration propre...
Non, non et RE-NON ! Le but de la solution utilisant une redirection d'adresse sur le serveur local, c'est justement d'avoir strictement les même URL et donc les mêmes chemins complets sur le serveur de développement et sur le serveur de production. Et j'ai fait cette manip suffisamment souvent pour être sûr du résultat. 
Ce serait aimable de lire attentivement le post avant de faire des commentaires aux Emoticons agressifs !
Dernière modification par piekes (17-10-2009 19:18:58)
Bien cordialement… Pierre
Hors ligne
#9 17-10-2009 19:48:46
Re: Dump de la base et changement de domaine
piekes a écrit:
Non, non et RE-NON ! Le but de la solution utilisant une redirection d'adresse sur le serveur local, c'est justement d'avoir strictement les même URL et donc les mêmes chemins complets sur le serveur de développement et sur le serveur de production.
Je ne parle pas des URLs mais des chemins des fichiers uploadés, comme les photos et autres medias.
Pour que WP puisse les supprimer si l'utilisateur veut les supprimer, il faut bien garder un bout de chemin pour le trouver sur le serveur. Mais WP écrit tout le chemin absolu, y inclus le DOCUMENT_ROOT. Et il change souvent d'un serveur à un autre.
Have Fun!
EDIT:
piekes avait raison! 
Je viens de retester avec WP2.8.4 et il semble que le chemin soit relatif (au dossier WP_CONTENT ?).
Ca simplifie plus les migrations. 
Pour les liens en absolu dans les articles, c'est surement parce que c'est plus simple de les enlever que de les ajouter...
Par exemple, pour faire une newsletter en HTML, on peut intégrer le contenu de l'article tel quel dans le mail et les images s'afficheront correctement.
Dernière modification par LH (17-10-2009 20:11:52)
Faites un blog, un wiki... mais pas un forum!
Applh.com (Formation Web et WordPress)
Micro Web Agency (Création de sites internet / WordPress et Woothemes)
Hors ligne
#10 17-10-2009 20:13:17
Re: Dump de la base et changement de domaine
LH a écrit:
Je ne parle pas des URLs mais des chemins des fichiers uploadés, comme les photos et autres medias.
Pour que WP puisse les supprimer si l'utilisateur veut les supprimer, il faut bien garder un bout de chemin pour le trouver sur le serveur. Mais WP écrit tout le chemin absolu, y inclus le DOCUMENT_ROOT. Et il change souvent d'un serveur à un autre.
Have Fun!
Pour être sûr de ne pas me vautrer dans l'erreur comme le verrat dans la fange, je viens de vérifier le contenu de ma base de données. Les fichiers joints et autres images sont décrits dans la table wp_postmeta. Et je constate que la seule indication enregistrée ici est bien, comme je le pensais, le nom du fichier. Sans chemin…
Pas trace non plus du chemin dans wp_options...
Jamais eu le moindre problème avec ça. Mais il faut dire que, bien évidemment, je clone la structure du serveur de production sur mon localhost. Comme tout le monde, j'imagine…
Bien cordialement… Pierre
Hors ligne
#11 17-10-2009 20:25:13
Re: Dump de la base et changement de domaine
piekes a écrit:
Jamais eu le moindre problème avec ça. Mais il faut dire que, bien évidemment, je clone la structure du serveur de production sur mon localhost. Comme tout le monde, j'imagine…
Tant mieux pour toi si tu n'as connu les anciennes versions de WP où le chemin absolu était codé

Pour ma part, j'utilise en local Wampserver sur un PC et les chemins étaient donc avec un D:/wamp/blbala...
Alors que le serveur est sous linux... /var/www/blabla ... pas du tout pareil...
Have Fun
Faites un blog, un wiki... mais pas un forum!
Applh.com (Formation Web et WordPress)
Micro Web Agency (Création de sites internet / WordPress et Woothemes)
Hors ligne
#12 17-10-2009 21:39:20
Re: Dump de la base et changement de domaine
LH a écrit:
Tant mieux pour toi si tu n'as connu les anciennes versions de WP où le chemin absolu était codé
![]()
Pour ma part, j'utilise en local Wampserver sur un PC et les chemins étaient donc avec un D:/wamp/blbala...
Alors que le serveur est sous linux... /var/www/blabla ... pas du tout pareil...
J'ai lu l'autre jour un article sympa où l'auteur développe ses sites WP avec un Ubuntu server virtualisé sur son poste Windows. Solution élégante que j'ai bien envie d'essayer. Il faudra d'abord que je retrouve la page… 
Bien cordialement… Pierre
Hors ligne
#13 17-10-2009 23:23:43
Re: Dump de la base et changement de domaine
piekes a écrit:
Depuis peu, j'utilise une méthode que je trouve nettement plus élégante.
Modification du fichier .hosts sous Windows pour faire pointer l'adresse finale du Wordpress de production sur ma machine locale
Rajout d'une entrée vhost dans le fichier de configuration de mon Apache local
Excellent ! J'adopte ! (en adaptant à Linux).
piekes a écrit:
Pour ma part, j'utilise en local Wampserver sur un PC et les chemins étaient donc avec un D:/wamp/blbala...
Alors que le serveur est sous linux... /var/www/blabla ... pas du tout pareil...
J'ai récemment chercher dans le dump de la base un chemin absolu... j'en ai trouvé deux...
Je ne peux pas en dire plus car ils étaient perdus au milieu de cinq cent milles caractères et j'ai eu la flemme d'approfondir.
C'est pour cela que dans la conf de syncsite pour WordPress il y a un
Code: html
pre_process_dump_shell_script="sed -i \"s§${remote_baseurl}§${local_baseurl}§g;\
s§${remote_root_dir}§${local_root_dir}§g\""
piekes a écrit:
J'ai lu l'autre jour un article sympa où l'auteur développe ses sites WP avec un Ubuntu server virtualisé sur son poste Windows. Solution élégante que j'ai bien envie d'essayer. Il faudra d'abord que je retrouve la page…

C'est drôle comme idée ça ;-)
Je suis sous Dedian et le Windows virtualisé ne me sers que pour faire des testes de compatibilité...
Hors ligne
#14 18-10-2009 07:07:45
Re: Dump de la base et changement de domaine
pivaldi a écrit:
J'ai récemment chercher dans le dump de la base un chemin absolu... j'en ai trouvé deux...
Je ne peux pas en dire plus car ils étaient perdus au milieu de cinq cent milles caractères et j'ai eu la flemme d'approfondir.
Pas trace dans mes dumps… J'imagine que c'est parce que je déclare tout ça comme constante PHP dans mon fichier wp-config. Où que je n'ai pas encore les yeux en face des trous…
Code: html
define('WP_HOME', 'http://www.*****.fr/mini_cr/histarts');
define('WP_SITEURL', 'http://www.*****.fr/mini_cr/histarts');
define('TEMPLATEURL', 'http://www.*****.fr/mini_cr/histarts/wp-content/themes/hda');
define('TEMPLATEPATH', 'D:/mini_cr/histarts/wp-content/themes/hda');
define('STYLESHEETPATH', 'D:/mini_cr/histarts/wp-content/themes/hda');
Pour ce qui est de l'utilisation de Linux sur le poste de dvpt, ça fait longtemps que je suis tenté… malheureusement, pour la partie photo de mes activités, le pingouin est encore un peu à la traîne…
Bien cordialement… Pierre
Hors ligne
#15 18-10-2009 11:13:18
Re: Dump de la base et changement de domaine
Salut,
Maintenant, j'utilise pour le serveur de PROD un serveur virtuel en "Front-End" qui fait Cache+Proxy.
Le site de dev est directement sur un serveur "Back-End" et la mise en prod consiste simplement à lier le nom de domaine final à l'URL du site de dev 
...Aucune migration de BDD de dev à PROD 
Faites un blog, un wiki... mais pas un forum!
Applh.com (Formation Web et WordPress)
Micro Web Agency (Création de sites internet / WordPress et Woothemes)
Hors ligne
#16 18-10-2009 12:13:32
Re: Dump de la base et changement de domaine
piekes a écrit:
Code: html
[...] define('TEMPLATEPATH', 'D:/mini_cr/histarts/wp-content/themes/hda'); define('STYLESHEETPATH', 'D:/mini_cr/histarts/wp-content/themes/hda');
Ben voilà... du coup elle ne sont plus en base mais dans le fichier de configuration. Il faut donc faire aussi un replace dans ce fichier...
Peut être qu'un truc comme ça peut aider:
Code: html
function get_file_dir() {
$current_file = __FILE__;
if (is_link($current_file)) $current_file = readlink($current_file);
return dirname($current_file).DIRECTORY_SEPARATOR;
}
define('WP_CONF_PATH',get_file_dir());
echo 'WP_CONF_PATH='.WP_CONF_PATH.'<br>';
Chez moi ça retourne WP_CONF_PATH=/var/www/wordpress/ quelque soit le fichier d'inclusion.
Il suffit d'un php 4.4.0 ou + (ce qui est raisonnable) mais c'est à tester avec d'autres configurations...
piekes a écrit:
Pour ce qui est de l'utilisation de Linux sur le poste de dvpt, ça fait longtemps que je suis tenté… malheureusement, pour la partie photo de mes activités, le pingouin est encore un peu à la traîne…
Si c'est photoshop qui te manque, ya© Gimp mais j'imagine que tu connais.
Si c'est juste un soft particulier qui te manque, wine le fait peut-être tourner.
Bon... j'dis ça, j'dis rien...
Hors ligne
#17 18-10-2009 12:21:35
Re: Dump de la base et changement de domaine
C'est effectivement une solution que de faire déterminer le chemin "à la volée" par PHP. Ceci dit, c'est tellement simple de mettre les constantes qui vont bien dans wp-config…
Pour la discussion sur The Gimp… Il reste encore très, très loin de Photoshop, n'en déplaise aux afficionados du Pingouin. Au moins pour un travail de type "pro", les produits Adobe, sous MAC ou Windows, tiennent encore le devant de la scène. Et avec un Wine ou un VirtualBox, les performances ne sont pas vraiment au rendez-vous pour ces softs très, très gourmands en ressources.
Bien cordialement… Pierre
Hors ligne
#18 18-10-2009 12:36:53
Re: Dump de la base et changement de domaine
piekes a écrit:
c'est tellement simple de mettre les constantes qui vont bien dans wp-config…
Oui mais ce n'est pas portable.
Pour photoshop, je veux bien te croire car je n'ai pas une utilisation professionnelle de ce genre de soft.
Hors ligne