<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Soluo, mise en place de plateformes de blogs WordPress MU et intranets métier &#187; dump</title>
	<atom:link href="http://soluo.fr/tag/dump/feed/" rel="self" type="application/rss+xml" />
	<link>http://soluo.fr</link>
	<description>Soluo est spécialisée dans le déploiement de la plateforme de blogs WordPress MU, sites WEB2.0 ainsi que dans la réalisation d’intranets métiers riches.</description>
	<lastBuildDate>Thu, 12 Jan 2012 15:53:10 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Mise en ligne de son site wordpress</title>
		<link>http://soluo.fr/2008/10/mise-en-ligne-de-son-site-wordpress/</link>
		<comments>http://soluo.fr/2008/10/mise-en-ligne-de-son-site-wordpress/#comments</comments>
		<pubDate>Mon, 20 Oct 2008 20:37:05 +0000</pubDate>
		<dc:creator>Thibaut</dc:creator>
				<category><![CDATA[Industrialisation]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[base]]></category>
		<category><![CDATA[distant]]></category>
		<category><![CDATA[dump]]></category>
		<category><![CDATA[local]]></category>
		<category><![CDATA[procedure]]></category>
		<category><![CDATA[process]]></category>
		<category><![CDATA[serveur]]></category>
		<category><![CDATA[transfert]]></category>

		<guid isPermaLink="false">http://soluo.fr/?p=17</guid>
		<description><![CDATA[
<!-- Start Of Script Generated By sforms v0.1 [Julien Casanova | juliencasanova.com] -->
<script src="http://soluo.fr/wp-content/themes/soluo2010/sforms/sforms.js"></script>
<!-- End Of Script Generated By cforms -->


<!-- Start Of Style Generated By sforms v0.1 [Julien Casanova | juliencasanova.com] -->
<!-- End Of Style Generated By cforms -->

Lorsque l&#8217;on veut industrialiser le process de création de sites, il est nécessaire d&#8217;établir des procédures que l&#8217;on répète de manière similaire, sinon identiques à chaque nouveau projet. Je vous propose aujourd&#8217;hui notre procédure de synchronisation maison. Ne vous brûler pas, c&#8217;est tout chaud, ça sort à peine du four!!

Un développement de site se fait [...]]]></description>
			<content:encoded><![CDATA[
<!-- Start Of Script Generated By sforms v0.1 [Julien Casanova | juliencasanova.com] -->
<script src="http://soluo.fr/wp-content/themes/soluo2010/sforms/sforms.js"></script>
<!-- End Of Script Generated By cforms -->


<!-- Start Of Style Generated By sforms v0.1 [Julien Casanova | juliencasanova.com] -->
<!-- End Of Style Generated By cforms -->

<div id="attachment_28" class="wp-caption alignleft" style="width: 310px"><a href="http://soluo.fr/wp-content/uploads/2008/10/cookies.jpg" rel="lightbox[17]"><img class="size-medium wp-image-28" title="Ca sort du four!!" src="http://soluo.fr/wp-content/uploads/2008/10/cookies-300x199.jpg" alt="Ca sort du four!!" width="300" height="199" /></a><p class="wp-caption-text">Ca sort du four!!</p></div>
<p>Lorsque l&#8217;on veut industrialiser le process de création de sites, il est nécessaire d&#8217;établir des procédures que l&#8217;on répète de manière similaire, sinon identiques à chaque nouveau projet. Je vous propose aujourd&#8217;hui notre procédure de synchronisation maison. Ne vous brûler pas, c&#8217;est tout chaud, ça sort à peine du four!!</p>
<p><span id="more-17"></span><br />
Un développement de site se fait toujours en local, c&#8217;est à dire sur un poste client. Une fois les développements terminés, ou en cours de finalisation, il reste à uploader le contenu de son site sur son serveur distant. Cette tâche se compose de 2 parties distinctes :</p>
<ul>
<li>la copie des fichiers statiques :
<ul>
<li>core de wordpress</li>
<li>répertoires de plugins spécifiques au projet (wp-content/*plugins/*)</li>
<li>répertoire de thème du projet (wp-content/themes/monThemeProjet)</li>
</ul>
</li>
<li>la copie de la base de donnée</li>
</ul>
<p>Dans un monde parfait, une simple copie serait suffisante, wordpress détecterait que l&#8217;emplacement de l&#8217;installation a changé, et prendrai en compte ce changement. Mais dans la vrai vie, une procédure un peu plus compliquée s&#8217;impose.</p>
<p><span style="text-decoration: underline;">Pré-requis :</span></p>
<ul>
<li>le poste client est un linux-like (distribution linux ou Mac)</li>
<li>le serveur est également un linux-like (plus facile à trouver!)</li>
<li>un répertoire projet créé sur le serveur</li>
<li>On a fait le nécessaire pour se connecter au serveur distant sans mot de passe (comme expliqué <a title="Connexion serveur distant sans mot de passe" href="http://w3.nonsenz.org/openssh.html" target="_blank">ici</a>)</li>
</ul>
<p>Notre procédure se compose de 7 étapes :</p>
<ol>
<li>En local, exécuter le script suivant qui va réaliser un <code>rsync</code> (synchronisation du répertoire projet avec le répertoire cible sur le serveur :</li>
<pre># ./deploy_local_wordpress_rsync.sh
#!/bin/bash
# Ce script doit être exécuté depuis le répertoire contenant l'installation de wordpress
USER="julien"
HOST="monsite.com"
PORT=
RSYNC=`which rsync`
PROJECT_NAME=nom_de_mon_projet ## eg: portail_client_X
VERSION=1
DEPLOY_DIR=/var/www/html/staging/$PROJECT_NAME/$VERSION

echo "Deploiement de $PROJECT_NAME vers $DEPLOY_DIR"
$RSYNC -avz -e ssh ./ $USER@$HOST DEPLOY_DIR --exclude-from=wordpress_exclude.rsync</pre>
<p>avec wordpress_exclude.rsync (fichier regroupant les fichiers/répertoires à ne pas synchroniser) pouvant ressembler à :</p>
<pre>desktop.ini
.DS_Store
/wp-config.php
/wp-content/gallery
/wp-content/themes/blamatic
/wp-content/themes/classic
/wp-content/themes/default
/wp-content/themes/delight
/wp-content/themes/medical-theme
/wp-content/themes/modularity-lite
/wp-content/themes/retrospective
/wp-content/themes/simpleblocks
/wp-content/themes/thematic
/wp-content/themes/whiteboard
/wp-content/plugins/flexi-pages-widget
/wp-content/plugins/nextgen-gallery
/wp-content/plugins/wp-shopping-cart
/wp-content/plugins/wp_date_fr
/wp-content/uploads/wpsc
/wp-content/uploads/js_cache
/wp-config.php.BAK</pre>
<li>Sur le serveur modifier les droits du répertoire
<pre>wp-content</pre>
<p>(utilisé pour l&#8217;upload de contenus &#8211; images, attachements, etc -) :</p>
<pre>chmod -R 777 wp-content</pre>
</li>
<li>
<div id="attachment_20" class="wp-caption alignright" style="width: 160px"><a href="http://soluo.fr/wp-content/uploads/2008/10/wp_database.jpg" rel="lightbox[17]"><img class="size-thumbnail wp-image-20" title="Création de la base wordpress sur le serveur" src="http://soluo.fr/wp-content/uploads/2008/10/wp_database-150x150.jpg" alt="Création de la base wordpress sur le serveur" width="150" height="150" /></a><p class="wp-caption-text">Création de la base wordpress sur le serveur</p></div>
<p>Sur le serveur, créer de la base de donnée. Sous phpMyAdmin par exemple.</p>
<p>Donner un nom à votre base, ici <code>wp_database</code>, choisir l&#8217;interclassement utf8_general_ci si possible pour une meilleur gestion des caractères spéciaux.</li>
<li>Sur le serveur, modifier le fichier <code>wp-config</code> (situé à la racine de wordpress) pour que wordpress puisse se connecter à la nouvelle base (<code>DB_NAME, DB_USER, DB_PASSWORD, DB_HOST</code>)</li>
<li>Envoyer au serveur un Dump de la base locale (un Dump est un export de la base, onglet exporter sous phpMyAdmin) par exemple avec la commande :</li>
<pre>scp monDump.sql user@serveur:repertoire</pre>
<li>Importer le Dump dans la base du serveur (Onglet importer sous phpMyAdmin)</li>
<li>La base contient des chemins absolus correspondant à votre configuration locale : Mettez à jour tous les champs, via les commandes SQL suivantes :</li>
<pre>UPDATE wp_options
SET option_value = replace(option_value, 'http://www.old-domain.com', 'http://www.new-domain.com')
WHERE option_name = 'home' OR option_name = 'siteurl';

UPDATE wp_posts
SET guid = replace(guid, 'http://www.old-domain.com','http://www.new-domain.com');

UPDATE wp_posts
SET post_content = replace(post_content, 'http://www.old-domain.com', 'http://www.new-domain.com');</pre>
</ol>
<p><strong>TroubleShootings :</strong><br />
Attention au fichier .htaccess. Il semble que le fichier .htacess (utilisé pour gérer les Friendly URLs) se regénère automatiquement. Ce n&#8217;a pas été notre cas. Il a fallut éditer ce fichier pour le mettre à jour :<br />
<strong>de l&#8217;ancienne version en local (on y accède via http://localhost/WPlocalInstall)</strong></p>
<pre># BEGIN WordPress

RewriteEngine On
RewriteBase /WPlocalInstall/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /WPlocalInstall/index.php [L]

# END WordPress</pre>
<p><strong>à la nouvelle version sur le serveur :</strong></p>
<pre># BEGIN WordPress

RewriteEngine On
#RewriteBase /localInstall/ ## COMMENTÉ CAR LE SITE EST À LA RACINE DU DOMAINE ##
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L] ## LE SITE EST À LA RACINE DU DOMAINE ##

# END WordPress</pre>
<p>Bonne mise en ligne!!</p>
]]></content:encoded>
			<wfw:commentRss>http://soluo.fr/2008/10/mise-en-ligne-de-son-site-wordpress/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

