<?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>Je veux devenir mon propre patron &#187; eclipse</title>
	<atom:link href="http://www.monproprepatron.fr/tag/eclipse/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.monproprepatron.fr</link>
	<description>Le chemin vers l&#039;indépendance en tant qu&#039;entrepreneur dans le monde d&#039;Internet</description>
	<lastBuildDate>Sun, 18 Dec 2011 23:09:51 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.2</generator>
		<item>
		<title>Script de mise en production sur serveur mutualisé</title>
		<link>http://www.monproprepatron.fr/2010/02/script-de-mise-en-production-sur-serveur-mutualise/</link>
		<comments>http://www.monproprepatron.fr/2010/02/script-de-mise-en-production-sur-serveur-mutualise/#comments</comments>
		<pubDate>Tue, 02 Feb 2010 10:01:45 +0000</pubDate>
		<dc:creator>monproprepatron</dc:creator>
				<category><![CDATA[Technique]]></category>
		<category><![CDATA[1and1]]></category>
		<category><![CDATA[ant]]></category>
		<category><![CDATA[cvs]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[ftp]]></category>
		<category><![CDATA[hébergement]]></category>
		<category><![CDATA[htaccess]]></category>
		<category><![CDATA[mise en production]]></category>
		<category><![CDATA[script]]></category>

		<guid isPermaLink="false">http://www.monproprepatron.fr/?p=551</guid>
		<description><![CDATA[Mon projet étant bientôt prêt, j'ai préparé la semaine dernière un script de mise en production du site, afin d'automatiser au maximum cette procédure pour la rendre plus simple, mais aussi plus sûre. N'ayant qu'un hébergement mutualisé chez 1and1, je ne dispose pas de connexion SSH, ce qui limite un peu les actions disponibles.]]></description>
			<content:encoded><![CDATA[<p>Mon projet étant bientôt prêt, j&#8217;ai préparé la semaine dernière un script de mise en production du site, afin d&#8217;automatiser au maximum cette procédure pour la rendre plus simple, mais aussi plus sûre. N&#8217;ayant qu&#8217;un hébergement mutualisé chez <a href="http://www.1and1.fr?k_id=16664319" target="_blank" rel="nofollow">1and1</a>, je ne dispose pas de connexion SSH, ce qui limite un peu les actions disponibles.</p>
<p>J&#8217;ai choisi de faire ce script avec <a title="Ant Apache" href="http://ant.apache.org/" target="_blank">Ant</a>, tout simplement parce que je le connais pour l&#8217;avoir utilisé dans mes jobs précédents et qu&#8217;il me convient parfaitement. Il s&#8217;intègre de plus très bien dans Eclipse, que j&#8217;utilise pour développer, à condition d&#8217;avoir installé le plugin adéquat, soit l&#8217;environnement JDT (Java Development Tools), si on a choisi comme moi, une installation Eclipse PDT (Php Development Tools) qui n&#8217;inclue pas d&#8217;utilitaires pour Java. Car Ant tourne à l&#8217;aide de Java.</p>
<h2>Que fait ce script?</h2>
<p>Avec ce script, j&#8217;ai voulu automatiser 3 opérations : la sauvegarde, la construction du projet à déployer et le déploiement.</p>
<p><span id="more-551"></span></p>
<h3>La sauvegarde</h3>
<p>Dans cette &#8220;target&#8221;, je fais simplement un export des fichiers sources sur le serveur de production. Etant contraint par mon type d&#8217;hébergement, je ne peux que passer par une tâche ftp pour les récupérer. Ensuite, je créé une archive compressée à la date du jour, puis je supprime les fichiers importés.</p>
<p><code></p>
<div id="_mcePaste">&lt;target name="backup" description="Sauvegarde de la prod"&gt;</div>
<div id="_mcePaste">&lt;echo&gt;Backup des fichiers&lt;/echo&gt;</div>
<div id="_mcePaste">&lt;mkdir dir="${BACKUP_TEMP_DIR}" /&gt;</div>
<div id="_mcePaste">&lt;ftp action="get"</div>
<div>server="${FTP_SERVER}" userid="${FTP_USER}" password="${FTP_PWD}"</div>
<div>depends="false"&gt;</div>
<div id="_mcePaste">&lt;fileset dir="${BACKUP_TEMP_DIR}" /&gt;</div>
<div id="_mcePaste">&lt;/ftp&gt;</div>
<div id="_mcePaste">&lt;echo&gt;Creation de l'archive&lt;/echo&gt;</div>
<div id="_mcePaste">&lt;tstamp /&gt;</div>
<div id="_mcePaste">&lt;tar basedir="${BACKUP_TEMP_DIR}" tarfile="${BACKUP_DIR}/${BACKUP_FILE_PREFIX}-${DSTAMP}.tar" /&gt;</div>
<div id="_mcePaste">&lt;gzip zipfile="${BACKUP_DIR}/${BACKUP_FILE_PREFIX}-${DSTAMP}.tar.gz" src="${BACKUP_DIR}/${BACKUP_FILE_PREFIX}-${DSTAMP}.tar" /&gt;</div>
<div id="_mcePaste">&lt;delete file="${BACKUP_DIR}/${BACKUP_FILE_PREFIX}-${DSTAMP}.tar" /&gt;</div>
<div id="_mcePaste">&lt;delete dir="${BACKUP_TEMP_DIR}" /&gt;</div>
<div id="_mcePaste">&lt;echo&gt;Faire un dump de la base!!!&lt;/echo&gt;</div>
<div id="_mcePaste">&lt;/target&gt;</div>
<p></code></p>
<p>Pour les mêmes contraintes, il n&#8217;est pas possible de se connecter à la base de données. On ne peut donc pas automatiser un dump de la base. Il faut donc le faire à la main&#8230; Ce n&#8217;est ni long, ni compliqué à faire, c&#8217;est juste qu&#8217;il ne faut pas l&#8217;oublier.</p>
<p>Cette étape peut être relativement longue en fonction du nombre de fichiers et de leur taille. Mais on peut le faire un peu à l&#8217;avance.</p>
<h3>La construction du projet</h3>
<p>Cette étape consiste à générer un ensemble de fichiers destinés à être copiés sur le serveur. Ayant plusieurs projets CVS, je récupère le projet avec les sources en environnement de dev, que je surcharge avec celui contenant les fichiers de l&#8217;environnement de production.</p>
<p><code></p>
<div id="_mcePaste">&lt;target name="build_dist" depends="cvs_checkout" description="Préparation des fichiers à distribuer"&gt;</div>
<div id="_mcePaste">&lt;echo&gt;Suppression des fichiers du build precedent&lt;/echo&gt;</div>
<div id="_mcePaste">&lt;delete dir="${CHECKOUT_DIR}" /&gt;</div>
<div id="_mcePaste">&lt;delete dir="${DIST_DIR}" /&gt;</div>
<div id="_mcePaste">&lt;mkdir dir="${CHECKOUT_DIR}"/&gt;</div>
<div id="_mcePaste">&lt;mkdir dir="${DIST_DIR}"/&gt;</div>
<div id="_mcePaste">&lt;echo message="Recuperation du repository CVS"/&gt;</div>
<div id="_mcePaste">&lt;cvspass cvsroot="${CVSROOT}" password="${CVS_PWD}" passfile="./.cvspass" /&gt;</div>
<div id="_mcePaste">&lt;cvs cvsRoot="${CVSROOT}" package="${CVS_MODULE}" dest="${CHECKOUT_DIR}"</div>
<div id="_mcePaste">failonerror="true" quiet="true" reallyquiet="true" /&gt;</div>
<div id="_mcePaste">&lt;cvs cvsRoot="${CVSROOT}" package="${CVS_MODULE_ENV}" dest="${CHECKOUT_DIR}"</div>
<div id="_mcePaste">failonerror="true" quiet="true" reallyquiet="true" /&gt;</div>
<div id="_mcePaste">&lt;echo message="Preparation des fichiers a distribuer" /&gt;</div>
<div id="_mcePaste">&lt;move todir="${DIST_DIR}" preservelastmodified="true"&gt;</div>
<div id="_mcePaste">&lt;fileset dir="${CHECKOUT_DIR}/${CVS_MODULE}" /&gt;</div>
<div id="_mcePaste">&lt;/move&gt;</div>
<div id="_mcePaste">&lt;move todir="${DIST_DIR}" preservelastmodified="false"&gt;</div>
<div id="_mcePaste">&lt;fileset dir="${CHECKOUT_DIR}/${CVS_MODULE_ENV}" /&gt;</div>
<div id="_mcePaste">&lt;/move&gt;</div>
<div id="_mcePaste">&lt;/target&gt;</div>
<p></code></p>
<h3>Le déploiement</h3>
<p>Cette étape s&#8217;effectue en 2 fois, là aussi pour cause d&#8217;impossibilité de connexion à la base de données via le script.</p>
<p>Dans un premier temps, on copie un fichier .htaccess, permettant de renvoyer toutes les requêtes HTTP vers une page d&#8217;attente, et on copie les fichiers construits à l&#8217;étape précédente (sauf le .htaccess) sur le serveur de production.</p>
<p><code></p>
<div id="_mcePaste">&lt;target name="deploy_start" description="Deploiement en prod"&gt;</div>
<div id="_mcePaste"><span style="white-space: pre;"> </span>&lt;echo message="Deploiement en prod" /&gt;</div>
<div id="_mcePaste"><span style="white-space: pre;"> </span>&lt;ftp server="${FTP_SERVER}"<span style="white-space: pre;"> </span>userid="${FTP_USER}" password="${FTP_PWD}"&gt;</div>
<div id="_mcePaste"><span style="white-space: pre;"> </span>&lt;fileset dir="."&gt;</div>
<div id="_mcePaste"><span style="white-space: pre;"> </span>&lt;include name=".htaccess" /&gt;</div>
<div id="_mcePaste"><span style="white-space: pre;"> </span>&lt;/fileset&gt;</div>
<div id="_mcePaste"><span style="white-space: pre;"> </span>&lt;/ftp&gt;</div>
<div id="_mcePaste"><span style="white-space: pre;"> </span>&lt;!-- Mettre depends a true pour n'envoyer que les fichiers nouveaux ou modifiés --&gt;</div>
<div id="_mcePaste"><span style="white-space: pre;"> </span>&lt;ftp server="${FTP_SERVER}"<span style="white-space: pre;"> </span>userid="${FTP_USER}" password="${FTP_PWD}" depends="yes"&gt;</div>
<div id="_mcePaste"><span style="white-space: pre;"> </span>&lt;fileset dir="${DIST_DIR}"&gt;</div>
<div id="_mcePaste"><span style="white-space: pre;"> </span>&lt;exclude name="./.htaccess" /&gt;</div>
<div id="_mcePaste"><span style="white-space: pre;"> </span>&lt;/fileset&gt;</div>
<div id="_mcePaste"><span style="white-space: pre;"> </span>&lt;/ftp&gt;</div>
<div id="_mcePaste"><span style="white-space: pre;"> </span>&lt;echo&gt;!!! Faire la mise a jour de la base !!!&lt;/echo&gt;</div>
<div id="_mcePaste">&lt;/target&gt;</div>
<p></code></p>
<p>Ensuite, au besoin, il faut faire la mise à jour de la base de données à la main.</p>
<p>Dans un second temps, on copie le .htaccess de l&#8217;environnement de production qui n&#8217;a pas été copié précédemment pour rétablir l&#8217;accès au site.</p>
<p><code></p>
<div id="_mcePaste">&lt;target name="deploy_end" description="Deploiement en prod"&gt;</div>
<div id="_mcePaste"><span style="white-space: pre;"> </span>&lt;echo message="Remise de l'acces au site" /&gt;</div>
<div id="_mcePaste"><span style="white-space: pre;"> </span>&lt;ftp server="${FTP_SERVER}"<span style="white-space: pre;"> </span>userid="${FTP_USER}" password="${FTP_PWD}"&gt;</div>
<div id="_mcePaste"><span style="white-space: pre;"> </span>&lt;fileset dir="${DIST_DIR}"&gt;</div>
<div id="_mcePaste"><span style="white-space: pre;"> </span>&lt;include name=".htaccess" /&gt;</div>
<div id="_mcePaste"><span style="white-space: pre;"> </span>&lt;/fileset&gt;</div>
<div id="_mcePaste"><span style="white-space: pre;"> </span>&lt;/ftp&gt;</div>
<div id="_mcePaste">&lt;/target&gt;</div>
<p></code><br />
Y&#8217;a surement de meilleures méthodes, mais celle-ci fonctionne pour moi pour l&#8217;instant.</p>
<div id="crp_related"><h3>Continuez votre lecture :</h3><ul><li><a href="http://www.monproprepatron.fr/2010/02/script-de-mise-en-prod-tag-de-sources-dans-cvs/" rel="bookmark" class="crp_title">Script de mise en prod : tag de sources dans CVS</a></li><li><a href="http://www.monproprepatron.fr/2009/11/salon-des-entrepreneurs-de-nantes/" rel="bookmark" class="crp_title">Salon des entrepreneurs de Nantes</a></li><li><a href="http://www.monproprepatron.fr/2009/08/vacances-joublie-tout/" rel="bookmark" class="crp_title">Vacances, j&#8217;oublie tout&#8230;</a></li><li><a href="http://www.monproprepatron.fr/2009/09/besoin-dun-editeur-de-texte-riche/" rel="bookmark" class="crp_title">Besoin d&#8217;un éditeur de texte riche</a></li><li><a href="http://www.monproprepatron.fr/2010/03/script-de-mise-en-prod-gestion-des-magic-quotes-chez-1and1/" rel="bookmark" class="crp_title">Script de mise en prod : gestion des magic quotes chez 1and1</a></li><li>Powered by <a href="http://ajaydsouza.com/wordpress/plugins/contextual-related-posts/">Contextual Related Posts</a></li></ul></div>
<div class="sociable">
<div class="sociable_tagline">
<em>Faire suivre cet article :</em>
</div>
<ul>
	<li class="sociablefirst"><a rel="nofollow"  href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.monproprepatron.fr%2F2010%2F02%2Fscript-de-mise-en-production-sur-serveur-mutualise%2F&amp;t=Script%20de%20mise%20en%20production%20sur%20serveur%20mutualis%C3%A9" title="Facebook"><img src="http://www.monproprepatron.fr/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="http://twitter.com/home?status=Script%20de%20mise%20en%20production%20sur%20serveur%20mutualis%C3%A9%20-%20http%3A%2F%2Fwww.monproprepatron.fr%2F2010%2F02%2Fscript-de-mise-en-production-sur-serveur-mutualise%2F" title="Twitter"><img src="http://www.monproprepatron.fr/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fwww.monproprepatron.fr%2F2010%2F02%2Fscript-de-mise-en-production-sur-serveur-mutualise%2F&amp;title=Script%20de%20mise%20en%20production%20sur%20serveur%20mutualis%C3%A9&amp;annotation=Mon%20projet%20%C3%A9tant%20bient%C3%B4t%20pr%C3%AAt%2C%20j%27ai%20pr%C3%A9par%C3%A9%20la%20semaine%20derni%C3%A8re%20un%20script%20de%20mise%20en%20production%20du%20site%2C%20afin%20d%27automatiser%20au%20maximum%20cette%20proc%C3%A9dure%20pour%20la%20rendre%20plus%20simple%2C%20mais%20aussi%20plus%20s%C3%BBre.%20N%27ayant%20qu%27un%20h%C3%A9bergement%20mutualis%C3%A9%20chez%201and1%2C%20je%20ne%20dispose%20pas%20de%20connexion%20SSH%2C%20ce%20qui%20limite%20un%20peu%20les%20actions%20disponibles." title="Google Bookmarks"><img src="http://www.monproprepatron.fr/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="http://buzz.yahoo.com/submit/?submitUrl=http%3A%2F%2Fwww.monproprepatron.fr%2F2010%2F02%2Fscript-de-mise-en-production-sur-serveur-mutualise%2F&amp;submitHeadline=Script%20de%20mise%20en%20production%20sur%20serveur%20mutualis%C3%A9&amp;submitSummary=Mon%20projet%20%C3%A9tant%20bient%C3%B4t%20pr%C3%AAt%2C%20j%27ai%20pr%C3%A9par%C3%A9%20la%20semaine%20derni%C3%A8re%20un%20script%20de%20mise%20en%20production%20du%20site%2C%20afin%20d%27automatiser%20au%20maximum%20cette%20proc%C3%A9dure%20pour%20la%20rendre%20plus%20simple%2C%20mais%20aussi%20plus%20s%C3%BBre.%20N%27ayant%20qu%27un%20h%C3%A9bergement%20mutualis%C3%A9%20chez%201and1%2C%20je%20ne%20dispose%20pas%20de%20connexion%20SSH%2C%20ce%20qui%20limite%20un%20peu%20les%20actions%20disponibles.&amp;submitCategory=science&amp;submitAssetType=text" title="Yahoo! Buzz"><img src="http://www.monproprepatron.fr/wp-content/plugins/sociable/images/yahoobuzz.png" title="Yahoo! Buzz" alt="Yahoo! Buzz" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="http://www.wikio.fr/vote?url=http%3A%2F%2Fwww.monproprepatron.fr%2F2010%2F02%2Fscript-de-mise-en-production-sur-serveur-mutualise%2F" title="Wikio FR"><img src="http://www.monproprepatron.fr/wp-content/plugins/sociable/images/wikio.png" title="Wikio FR" alt="Wikio FR" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.monproprepatron.fr%2F2010%2F02%2Fscript-de-mise-en-production-sur-serveur-mutualise%2F&amp;title=Script%20de%20mise%20en%20production%20sur%20serveur%20mutualis%C3%A9&amp;source=Je+veux+devenir+mon+propre+patron+Le+chemin+vers+l%26%23039%3Bind%C3%A9pendance+en+tant+qu%26%23039%3Bentrepreneur+dans+le+monde+d%26%23039%3BInternet&amp;summary=Mon%20projet%20%C3%A9tant%20bient%C3%B4t%20pr%C3%AAt%2C%20j%27ai%20pr%C3%A9par%C3%A9%20la%20semaine%20derni%C3%A8re%20un%20script%20de%20mise%20en%20production%20du%20site%2C%20afin%20d%27automatiser%20au%20maximum%20cette%20proc%C3%A9dure%20pour%20la%20rendre%20plus%20simple%2C%20mais%20aussi%20plus%20s%C3%BBre.%20N%27ayant%20qu%27un%20h%C3%A9bergement%20mutualis%C3%A9%20chez%201and1%2C%20je%20ne%20dispose%20pas%20de%20connexion%20SSH%2C%20ce%20qui%20limite%20un%20peu%20les%20actions%20disponibles." title="LinkedIn"><img src="http://www.monproprepatron.fr/wp-content/plugins/sociable/images/linkedin.png" title="LinkedIn" alt="LinkedIn" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="" title="Viadeo"><img src="http://www.monproprepatron.fr/wp-content/plugins/sociable/images/" title="Viadeo" alt="Viadeo" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="http://delicious.com/post?url=http%3A%2F%2Fwww.monproprepatron.fr%2F2010%2F02%2Fscript-de-mise-en-production-sur-serveur-mutualise%2F&amp;title=Script%20de%20mise%20en%20production%20sur%20serveur%20mutualis%C3%A9&amp;notes=Mon%20projet%20%C3%A9tant%20bient%C3%B4t%20pr%C3%AAt%2C%20j%27ai%20pr%C3%A9par%C3%A9%20la%20semaine%20derni%C3%A8re%20un%20script%20de%20mise%20en%20production%20du%20site%2C%20afin%20d%27automatiser%20au%20maximum%20cette%20proc%C3%A9dure%20pour%20la%20rendre%20plus%20simple%2C%20mais%20aussi%20plus%20s%C3%BBre.%20N%27ayant%20qu%27un%20h%C3%A9bergement%20mutualis%C3%A9%20chez%201and1%2C%20je%20ne%20dispose%20pas%20de%20connexion%20SSH%2C%20ce%20qui%20limite%20un%20peu%20les%20actions%20disponibles." title="del.icio.us"><img src="http://www.monproprepatron.fr/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.monproprepatron.fr%2F2010%2F02%2Fscript-de-mise-en-production-sur-serveur-mutualise%2F&amp;title=Script%20de%20mise%20en%20production%20sur%20serveur%20mutualis%C3%A9&amp;bodytext=Mon%20projet%20%C3%A9tant%20bient%C3%B4t%20pr%C3%AAt%2C%20j%27ai%20pr%C3%A9par%C3%A9%20la%20semaine%20derni%C3%A8re%20un%20script%20de%20mise%20en%20production%20du%20site%2C%20afin%20d%27automatiser%20au%20maximum%20cette%20proc%C3%A9dure%20pour%20la%20rendre%20plus%20simple%2C%20mais%20aussi%20plus%20s%C3%BBre.%20N%27ayant%20qu%27un%20h%C3%A9bergement%20mutualis%C3%A9%20chez%201and1%2C%20je%20ne%20dispose%20pas%20de%20connexion%20SSH%2C%20ce%20qui%20limite%20un%20peu%20les%20actions%20disponibles." title="Digg"><img src="http://www.monproprepatron.fr/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="http://www.myspace.com/Modules/PostTo/Pages/?u=http%3A%2F%2Fwww.monproprepatron.fr%2F2010%2F02%2Fscript-de-mise-en-production-sur-serveur-mutualise%2F&amp;t=Script%20de%20mise%20en%20production%20sur%20serveur%20mutualis%C3%A9" title="MySpace"><img src="http://www.monproprepatron.fr/wp-content/plugins/sociable/images/myspace.png" title="MySpace" alt="MySpace" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="http://www.netvibes.com/share?title=Script%20de%20mise%20en%20production%20sur%20serveur%20mutualis%C3%A9&amp;url=http%3A%2F%2Fwww.monproprepatron.fr%2F2010%2F02%2Fscript-de-mise-en-production-sur-serveur-mutualise%2F" title="Netvibes"><img src="http://www.monproprepatron.fr/wp-content/plugins/sociable/images/netvibes.png" title="Netvibes" alt="Netvibes" class="sociable-hovers" /></a></li>
	<li class="sociablelast"><a rel="nofollow"  href="http://technorati.com/faves?add=http%3A%2F%2Fwww.monproprepatron.fr%2F2010%2F02%2Fscript-de-mise-en-production-sur-serveur-mutualise%2F" title="Technorati"><img src="http://www.monproprepatron.fr/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a></li>
</ul>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.monproprepatron.fr/2010/02/script-de-mise-en-production-sur-serveur-mutualise/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Java ou PHP : Le choix d&#8217;une technologie</title>
		<link>http://www.monproprepatron.fr/2009/06/le-choix-dune-technologie-java-ou-php/</link>
		<comments>http://www.monproprepatron.fr/2009/06/le-choix-dune-technologie-java-ou-php/#comments</comments>
		<pubDate>Tue, 30 Jun 2009 13:16:16 +0000</pubDate>
		<dc:creator>monproprepatron</dc:creator>
				<category><![CDATA[Technologies]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[gwt]]></category>
		<category><![CDATA[hébergement]]></category>
		<category><![CDATA[innodb]]></category>
		<category><![CDATA[j2ee]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[lamp]]></category>
		<category><![CDATA[myisam]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[projet]]></category>
		<category><![CDATA[serveur]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://monproprepatron.wordpress.com/?p=36</guid>
		<description><![CDATA[Avant d&#8217;entrevoir les questions sur un modèle économique, le marketing, les statuts juridiques, &#8230; Il nous faut un peu parler technique! Tout d&#8217;abord, petit point sur les origines et la situation de mon projet. J&#8217;ai commencé par développer un site web pour un besoin personnel. Après les retours de certaines personnes qui trouvaient les fonctionnalités [...]]]></description>
			<content:encoded><![CDATA[<p>Avant d&#8217;entrevoir les questions sur un modèle économique, le marketing, les statuts juridiques, &#8230; Il nous faut un peu parler technique!</p>
<p>Tout d&#8217;abord, petit point sur les origines et la situation de mon projet.</p>
<p>J&#8217;ai commencé par développer un site web pour un besoin personnel. Après les retours de certaines personnes qui trouvaient les fonctionnalités intéressantes et qui se disaient même prêtes à <strong>payer</strong> (c&#8217;est là que j&#8217;ai du avoir le déclic!), je me suis dit que je pourrais peut-être en faire quelque chose&#8230;</p>
<p>Maintenant que j&#8217;en suis à la phase de refonte plus sérieuse du site en vue de son automatisation, je suis confronté au dilemne suivant : PHP ou Java / J2EE?</p>
<p>Naturellement au début, dans l&#8217;optique d&#8217;un simple et modeste site, j&#8217;ai opté pour le package PHP + MySQL, facile, simple&#8230; J&#8217;ai toujours utilisé ces technos lorsque j&#8217;ai développé d&#8217;autres petits site web.</p>
<p>Mais maintenant que je me lance dans un projet plus conséquent et plus long terme, je me suis dis &#8220;Et pourquoi pas faire ça en Java / J2EE?&#8221;</p>
<p><span id="more-36"></span></p>
<p>Ce sont des technologies que j&#8217;utilise quotidiennement pour mon boulot depuis 5 ans maintenant, avec lesquels je me sens donc beaucoup plus à l&#8217;aise que dans l&#8217;univers LAMP (Linux, Apache, MySQL, PHP). Selon moi, c&#8217;est un environnement beaucoup plus professionnel, permettant le développement d&#8217;applications beaucoup plus conséquentes. Et coder en Java avec un IDE (environnement de développement) comme Eclipse, c&#8217;est vraiment plus facile qu&#8217;en PHP.</p>
<p>Donc il est clair que mon coeur penche plus que fortement du côté Java/J2EE.</p>
<p>MAIS, car bien sûr il y a <span style="text-decoration: line-through;">un</span> plusieurs &#8220;mais&#8221;. Si jusqu&#8217;ici je n&#8217;ai fait que des sites en PHP, c&#8217;est que les offres d&#8217;hébergement de sites en J2EE sont quasi-inexistantes. En France, je n&#8217;ai trouvé qu&#8217;<a title="Althosting" href="http://www.althosting.fr/hebergement/site-java-jsp.php" target="_blank">althosting</a>, qui offre un pack à 6€ HT. Mais mes enquêtes pour avoir l&#8217;avis de clients m&#8217;ont fait comprendre que la prise en main était limitée, à priori pas moyen par exemple de redéployer soi-même son application. Mon e-mail auprès du service commercial est resté sans réponse&#8230;</p>
<p>L&#8217;autre solution serait de prendre un serveur virtuel (à partir de 12€ TTC sur <a href="http://www.1and1.fr?k_id=16664319" target="_blank" rel="nofollow">1and1</a>), mais ça commence à revenir plus cher pour un projet qui ne garantie pour l&#8217;instant aucun revenu (on y reviendra plus tard).</p>
<p>De plus, l&#8217;existant de ce projet est en PHP, et tout recoder prendrait tout de même un certain temps. Même si je pense que je pourrais rattraper ce temps sur le long terme, notamment avec des outils comme GWT.</p>
<p>S&#8217;ajoute à cela le fait que j&#8217;ai fait tomber certaines limitations (qui ne tenaient qu&#8217;à moi) en faisant quelques découvertes intéressantes.</p>
<p>Ma mauvaise appréciation de la solution PHP venait en partie du serveur de base de données qui lui ai systématiquement associé (dans les offres d&#8217;hébergement, car il peut fonctionner avec toutes bases de données) MySQL. Car je n&#8217;avais jamais prêté attention à l&#8217;intérêt des moteurs de stockage MyIsam et InnoDB. Le premier étant celui par défaut, je n&#8217;avais jamais tenté de changé ça, ne sachant ce que cela allait engendré.</p>
<p>Et bien InnoDB, c&#8217;est mieux! Et c&#8217;est peut-être la clé d&#8217;un début de réconciliation avec PHP + MySQL. En effet, contrairement à MyIsam, InnoDB permet de définir des contraintes de clés étrangères, ce qui garantie une meilleure intégrité des informations. Mais ce n&#8217;est pas tout, il permet aussi l&#8217;utilisation de transactions!</p>
<p>De quoi rendre la solution PHP un peu plus convenable dans un contexte professionnel. Il me faut encore trouver un système de mise en cache, qui existe mais que je ne connais pas encore, et ce sera pas mal.</p>
<p>J&#8217;ai donc décidé de rester sur PHP + MySQL, histoire d&#8217;avancer tout de suite, et en fonction de l&#8217;évolution de l&#8217;application une fois en place, j&#8217;envisagerais peut-être la migration vers J2EE.</p>
<p>Ca me permet aussi de rester pluri-disciplinaire plutôt que d&#8217;être un intégriste du J2EE!</p>
<div id="crp_related"><h3>Continuez votre lecture :</h3><ul><li><a href="http://www.monproprepatron.fr/2010/02/script-de-mise-en-production-sur-serveur-mutualise/" rel="bookmark" class="crp_title">Script de mise en production sur serveur mutualisé</a></li><li><a href="http://www.monproprepatron.fr/2009/08/attendre-pour-acheter-un-nom-de-domaine-erreur/" rel="bookmark" class="crp_title">Attendre pour acheter un nom de domaine? Erreur!</a></li><li><a href="http://www.monproprepatron.fr/2009/08/rt-premieres-difficultes-pour-twitter/" rel="bookmark" class="crp_title">RT : Premières difficultés pour Twitter ?</a></li><li><a href="http://www.monproprepatron.fr/2010/04/refuser-un-projet/" rel="bookmark" class="crp_title">Refuser un projet</a></li><li><a href="http://www.monproprepatron.fr/2009/09/se-lancer-a-plein-temps-ou-sur-son-temps-libre/" rel="bookmark" class="crp_title">Se lancer à plein temps ou sur son temps libre?</a></li><li>Powered by <a href="http://ajaydsouza.com/wordpress/plugins/contextual-related-posts/">Contextual Related Posts</a></li></ul></div>
<div class="sociable">
<div class="sociable_tagline">
<em>Faire suivre cet article :</em>
</div>
<ul>
	<li class="sociablefirst"><a rel="nofollow"  href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.monproprepatron.fr%2F2009%2F06%2Fle-choix-dune-technologie-java-ou-php%2F&amp;t=Java%20ou%20PHP%20%3A%20Le%20choix%20d%27une%20technologie" title="Facebook"><img src="http://www.monproprepatron.fr/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="http://twitter.com/home?status=Java%20ou%20PHP%20%3A%20Le%20choix%20d%27une%20technologie%20-%20http%3A%2F%2Fwww.monproprepatron.fr%2F2009%2F06%2Fle-choix-dune-technologie-java-ou-php%2F" title="Twitter"><img src="http://www.monproprepatron.fr/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fwww.monproprepatron.fr%2F2009%2F06%2Fle-choix-dune-technologie-java-ou-php%2F&amp;title=Java%20ou%20PHP%20%3A%20Le%20choix%20d%27une%20technologie&amp;annotation=Avant%20d%27entrevoir%20les%20questions%20sur%20un%20mod%C3%A8le%20%C3%A9conomique%2C%20le%20marketing%2C%20les%20statuts%20juridiques%2C%20...%20Il%20nous%20faut%20un%20peu%20parler%20technique%21%0D%0A%0D%0ATout%20d%27abord%2C%20petit%20point%20sur%20les%20origines%20et%20la%20situation%20de%20mon%20projet.%0D%0A%0D%0AJ%27ai%20commenc%C3%A9%20par%20d%C3%A9velopper" title="Google Bookmarks"><img src="http://www.monproprepatron.fr/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="http://buzz.yahoo.com/submit/?submitUrl=http%3A%2F%2Fwww.monproprepatron.fr%2F2009%2F06%2Fle-choix-dune-technologie-java-ou-php%2F&amp;submitHeadline=Java%20ou%20PHP%20%3A%20Le%20choix%20d%27une%20technologie&amp;submitSummary=Avant%20d%27entrevoir%20les%20questions%20sur%20un%20mod%C3%A8le%20%C3%A9conomique%2C%20le%20marketing%2C%20les%20statuts%20juridiques%2C%20...%20Il%20nous%20faut%20un%20peu%20parler%20technique%21%0D%0A%0D%0ATout%20d%27abord%2C%20petit%20point%20sur%20les%20origines%20et%20la%20situation%20de%20mon%20projet.%0D%0A%0D%0AJ%27ai%20commenc%C3%A9%20par%20d%C3%A9velopper&amp;submitCategory=science&amp;submitAssetType=text" title="Yahoo! Buzz"><img src="http://www.monproprepatron.fr/wp-content/plugins/sociable/images/yahoobuzz.png" title="Yahoo! Buzz" alt="Yahoo! Buzz" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="http://www.wikio.fr/vote?url=http%3A%2F%2Fwww.monproprepatron.fr%2F2009%2F06%2Fle-choix-dune-technologie-java-ou-php%2F" title="Wikio FR"><img src="http://www.monproprepatron.fr/wp-content/plugins/sociable/images/wikio.png" title="Wikio FR" alt="Wikio FR" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.monproprepatron.fr%2F2009%2F06%2Fle-choix-dune-technologie-java-ou-php%2F&amp;title=Java%20ou%20PHP%20%3A%20Le%20choix%20d%27une%20technologie&amp;source=Je+veux+devenir+mon+propre+patron+Le+chemin+vers+l%26%23039%3Bind%C3%A9pendance+en+tant+qu%26%23039%3Bentrepreneur+dans+le+monde+d%26%23039%3BInternet&amp;summary=Avant%20d%27entrevoir%20les%20questions%20sur%20un%20mod%C3%A8le%20%C3%A9conomique%2C%20le%20marketing%2C%20les%20statuts%20juridiques%2C%20...%20Il%20nous%20faut%20un%20peu%20parler%20technique%21%0D%0A%0D%0ATout%20d%27abord%2C%20petit%20point%20sur%20les%20origines%20et%20la%20situation%20de%20mon%20projet.%0D%0A%0D%0AJ%27ai%20commenc%C3%A9%20par%20d%C3%A9velopper" title="LinkedIn"><img src="http://www.monproprepatron.fr/wp-content/plugins/sociable/images/linkedin.png" title="LinkedIn" alt="LinkedIn" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="" title="Viadeo"><img src="http://www.monproprepatron.fr/wp-content/plugins/sociable/images/" title="Viadeo" alt="Viadeo" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="http://delicious.com/post?url=http%3A%2F%2Fwww.monproprepatron.fr%2F2009%2F06%2Fle-choix-dune-technologie-java-ou-php%2F&amp;title=Java%20ou%20PHP%20%3A%20Le%20choix%20d%27une%20technologie&amp;notes=Avant%20d%27entrevoir%20les%20questions%20sur%20un%20mod%C3%A8le%20%C3%A9conomique%2C%20le%20marketing%2C%20les%20statuts%20juridiques%2C%20...%20Il%20nous%20faut%20un%20peu%20parler%20technique%21%0D%0A%0D%0ATout%20d%27abord%2C%20petit%20point%20sur%20les%20origines%20et%20la%20situation%20de%20mon%20projet.%0D%0A%0D%0AJ%27ai%20commenc%C3%A9%20par%20d%C3%A9velopper" title="del.icio.us"><img src="http://www.monproprepatron.fr/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.monproprepatron.fr%2F2009%2F06%2Fle-choix-dune-technologie-java-ou-php%2F&amp;title=Java%20ou%20PHP%20%3A%20Le%20choix%20d%27une%20technologie&amp;bodytext=Avant%20d%27entrevoir%20les%20questions%20sur%20un%20mod%C3%A8le%20%C3%A9conomique%2C%20le%20marketing%2C%20les%20statuts%20juridiques%2C%20...%20Il%20nous%20faut%20un%20peu%20parler%20technique%21%0D%0A%0D%0ATout%20d%27abord%2C%20petit%20point%20sur%20les%20origines%20et%20la%20situation%20de%20mon%20projet.%0D%0A%0D%0AJ%27ai%20commenc%C3%A9%20par%20d%C3%A9velopper" title="Digg"><img src="http://www.monproprepatron.fr/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="http://www.myspace.com/Modules/PostTo/Pages/?u=http%3A%2F%2Fwww.monproprepatron.fr%2F2009%2F06%2Fle-choix-dune-technologie-java-ou-php%2F&amp;t=Java%20ou%20PHP%20%3A%20Le%20choix%20d%27une%20technologie" title="MySpace"><img src="http://www.monproprepatron.fr/wp-content/plugins/sociable/images/myspace.png" title="MySpace" alt="MySpace" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="http://www.netvibes.com/share?title=Java%20ou%20PHP%20%3A%20Le%20choix%20d%27une%20technologie&amp;url=http%3A%2F%2Fwww.monproprepatron.fr%2F2009%2F06%2Fle-choix-dune-technologie-java-ou-php%2F" title="Netvibes"><img src="http://www.monproprepatron.fr/wp-content/plugins/sociable/images/netvibes.png" title="Netvibes" alt="Netvibes" class="sociable-hovers" /></a></li>
	<li class="sociablelast"><a rel="nofollow"  href="http://technorati.com/faves?add=http%3A%2F%2Fwww.monproprepatron.fr%2F2009%2F06%2Fle-choix-dune-technologie-java-ou-php%2F" title="Technorati"><img src="http://www.monproprepatron.fr/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a></li>
</ul>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.monproprepatron.fr/2009/06/le-choix-dune-technologie-java-ou-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

