Déc 192011
 

j’ai enfin pris le temps de migrer le portail de développement. c’est du wordpress donc c’est pas forcément intuitif, voici pour mémoire la procédure à suivre. au final, changement du nom de domaine et changement de répertoire. voici la méthode utilisée.

la première chose à faire est de copier l’arborescence de votre wordpress :

# cd /var/www/thesite
# tar cvpf – . |gzip -c |(cd /var/www/newsite ; gunzip -d |tar xpf -)

ensuite on va créer une nouvelle base de donnée puis répliquer l’ancienne dedans

# mysqladmin create NEW_BASE -u DBUSER --password=DBPASS
# mysqldump -u DBUSER --password=DBPASS OLD_BASE | mysql -u DBUSER --password=DBPASS -h localhost NEW_BASE

puis changer les référence à l’ancien nom de domaine pour le nouveau

# mysql -u DBUSER -p
mysql> use NEW_BASE
mysql> UPDATE wp_posts SET guid = replace(guid, 'http://dev.mobidyc.net', 'http://www.mobidyc.net');
mysql> UPDATE wp_posts SET post_content = replace(post_content, 'http://dev.mobidyc.net', 'http://www.mobidyc.net');
mysql> UPDATE wp_anchors SET post_url = replace(post_url, 'http://dev.mobidyc.net', 'http://www.mobidyc.net');
mysql> UPDATE wp_posts SET pinged = replace(pinged, 'http://dev.mobidyc.net', 'http://www.mobidyc.net');
mysql> UPDATE wp_comments SET comment_author_url = replace(comment_author_url, 'http://dev.mobidyc.net', 'http://www.mobidyc.net');
mysql> UPDATE wp_options SET option_value = replace(option_value, '/var/www/thesite', '/var/www/newsite');
mysql> UPDATE wp_postmeta SET meta_value = replace(meta_value, '/var/www/thesite', '/var/www/newsite');

il reste à modifier la configuration de wordpress (remplacez OLD_BASE et NEW_BASE par VOS valeurs)

# sed -i "s@define('DB_NAME', 'OLD_BASE');@define('DB_NAME', 'NEW_BASE');@" /var/www/newsite/wp-config.php

comme j’aime bien automatiser, voici un script tout fait, pensez à bien

#!/bin/bash

# connexion à mysql
USERMYSQL=adminsql
PASSWORDSQL=thepassword
HOST=localhost

# la source et destination de la base mysql
SRCSQL=SOURCE_DB_NAME
DSTSQL=DEST_DB_NAME

# la source et destination du répertoire contenant wordpress
SRCDIR=/home/mobidyc/dev_mobidyc
DSTDIR=/home/mobidyc/www.mobidyc.net

# l'ancien et nouveau domaine
OLDFQDN=http://dev.mobidyc.net
NEWFQDN=http://www.mobidyc.net

[ -d "${DSTDIR}" ] && {
  echo "ERREUR: DESTINATION EXISTANTE"
  exit 1
}

# copie du site de la source à la destination
cd "${SRCDIR}"
tar cvpf – . |gzip -c |(cd "${DSTDIR}" ; gunzip -d |tar xpf -)

# Creation de la nouvelle base de données
mysqladmin create $DESTSQL -u $USERMYSQL --password=$PASSWORDSQL

# duplication de l'ancienne base sur la nouvelle
mysqldump -u $USERMYSQL --password=$PASSWORDSQL $SRCSQL | mysql -u $USERMYSQL --password=$PASSWORDSQL -h $HOST $DSTSQL

# on modifie les valeurs référence de l'ancien site dans la nouvelle base de donnée (dupliquée) de wordpress
echo "UPDATE wp_options SET option_value = replace(option_value, '${OLDFQDN}', '${NEWFQDN}') WHERE option_name = 'home' OR option_name = 'siteurl';" |mysql -u $USERMYSQL --password=$PASSWORDSQL $DSTSQL
echo "UPDATE wp_posts SET guid = replace(guid, '${OLDFQDN}', '${NEWFQDN}');" |mysql -u $USERMYSQL --password=$PASSWORDSQL $DSTSQL
echo "UPDATE wp_posts SET post_content = replace(post_content, '${OLDFQDN}', '${NEWFQDN}');" |mysql -u $USERMYSQL --password=$PASSWORDSQL $DSTSQL
echo "UPDATE wp_anchors SET post_url = replace(post_url, '${OLDFQDN}', '${NEWFQDN}');" |mysql -u $USERMYSQL --password=$PASSWORDSQL $DSTSQL
echo "UPDATE wp_posts SET pinged = replace(pinged, '${OLDFQDN}', '${NEWFQDN}');" |mysql -u $USERMYSQL --password=$PASSWORDSQL $DSTSQL
echo "UPDATE wp_comments SET comment_author_url = replace(comment_author_url, '${OLDFQDN}', '${NEWFQDN}');" |mysql -u $USERMYSQL --password=$PASSWORDSQL $DSTSQL
echo "UPDATE wp_options SET option_value = replace(option_value, '${SRCDIR}', '${DSTDIR}');" |mysql -u $USERMYSQL --password=$PASSWORDSQL $DSTSQL
echo "UPDATE wp_postmeta SET meta_value = replace(meta_value, '${SRCDIR}', '${DSTDIR}');" |mysql -u $USERMYSQL --password=$PASSWORDSQL $DSTSQL

# on défini la nouvelle base à utiliser dans la conf de wordpress
sed -i "s@define('DB_NAME', '${SRCSQL}');@define('DB_NAME', '${DSTSQL}');@" ${DSTDIR}/wp-config.php

 Laisser un commentaire

Vous pouvez utiliser ces tags et attributs HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

(requis)

(requis)

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.