<?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>Le blog de NicoLargo &#187; Blog</title> <atom:link href="http://blog.nicolargo.com/category/blog/feed" rel="self" type="application/rss+xml" /><link>http://blog.nicolargo.com</link> <description>&#34;La connaissance est la seule chose qui s&#039;accroit lorsqu&#039;on la partage.&#34;</description> <lastBuildDate>Thu, 02 Sep 2010 08:38:02 +0000</lastBuildDate> <language>en</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <item><title>Le bug de rafraîchissement de Gwibber résolu</title><link>http://blog.nicolargo.com/2010/09/le-bug-de-rafraichissement-de-gwibber-resolu.html</link> <comments>http://blog.nicolargo.com/2010/09/le-bug-de-rafraichissement-de-gwibber-resolu.html#comments</comments> <pubDate>Wed, 01 Sep 2010 07:46:42 +0000</pubDate> <dc:creator>NicoLargo</dc:creator> <category><![CDATA[Blog]]></category> <category><![CDATA[Open-source]]></category> <category><![CDATA[gwibber]]></category> <category><![CDATA[identica]]></category> <category><![CDATA[linux]]></category> <category><![CDATA[pino]]></category> <category><![CDATA[twiiter]]></category> <category><![CDATA[ubuntu]]></category><guid
isPermaLink="false">http://blog.nicolargo.com/?p=3484</guid> <description><![CDATA[J&#8217;avais laissé tombé il y a quelque temps le client de micro blogging Gwibber pour passer à Pino car je rencontrais de manière récurrente un bug de mise à jour de la time-line Twitter. Ce bug (#533017), clairement identifié par les développeurs, vient d&#8217;être corrigé dans la dernière version de dev (2.31.91). Pour tester sur votre configuration [...]]]></description> <content:encoded><![CDATA[<p>J&#8217;avais laissé tombé il y a quelque temps le client de micro blogging Gwibber pour passer à Pino car je rencontrais de manière récurrente un bug de mise à jour de la time-line Twitter.</p><p>Ce bug (<a
href="https://bugs.launchpad.net/ubuntu/+source/gwibber/+bug/533017">#533017</a>), clairement identifié par les développeurs, <a
href="https://bugs.launchpad.net/ubuntu/+source/gwibber/+bug/533017/comments/45">vient d&#8217;être corrigé</a> dans la dernière version de dev (2.31.91).</p><p>Pour tester sur votre configuration Ubuntu:</p><p>On quitte Gwibber.</p><p>Puis on installe les dépôts de la dernière version:</p><blockquote><p>sudo add-apt-repository ppa:gwibber-daily/ppa</p><p>sudo apt-get update</p><p>sudo apt-get upgrade</p></blockquote><p>Puis on tue les processus *couch*:</p><blockquote><p>killall -r couch</p></blockquote><p>On relance ensuite Gwibber (<strong>Applications &gt; Internet &gt; Client de microblogage Gwibber</strong>).</p><p><a
href="http://blog.nicolargo.com/wp-content/uploads/2010/09/Microblogage_037.png" rel="lightbox[3484]"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large wp-image-3485" title="Microblogage_037" src="http://blog.nicolargo.com/wp-content/uploads/2010/09/Microblogage_037-475x580.png" alt="" width="475" height="580" /></a></p><p><strong>Attention</strong>: dans mon cas, le compte Twitter n&#8217;existait plus quand j&#8217;ai relancé Gwibber (alors que le compte Identica oui&#8230;). J&#8217;ai donc du le reconfigurer. <span
style="color: #ff6600;">Update: ceci est du à une nouvelle méthode d&#8217;authentification pour accéder à Twitter.</span></p><p>Je pense donc donner une chance a ce logiciel vu que Pino n&#8217;a toujours pas intégré une fonction de mixage des time-line (par exemple Twitter + Identica).</p><p>Et vous quel est votre client de micro blogging favori sous GNU/Linux ?</p><div
id="aspdf"> <a
href="http://blog.nicolargo.com/wp-content/plugins/as-pdf/generate.php?post=3484"> <span> </span> </a></div> ]]></content:encoded> <wfw:commentRss>http://blog.nicolargo.com/2010/09/le-bug-de-rafraichissement-de-gwibber-resolu.html/feed</wfw:commentRss> <slash:comments>9</slash:comments> </item> <item><title>Nouveau thème pour le blog !</title><link>http://blog.nicolargo.com/2010/08/nouveau-theme-pour-le-blog-2.html</link> <comments>http://blog.nicolargo.com/2010/08/nouveau-theme-pour-le-blog-2.html#comments</comments> <pubDate>Sun, 29 Aug 2010 20:18:14 +0000</pubDate> <dc:creator>NicoLargo</dc:creator> <category><![CDATA[Blog]]></category> <category><![CDATA[Open-source]]></category> <category><![CDATA[Web]]></category> <category><![CDATA[nicolargo]]></category> <category><![CDATA[theme]]></category> <category><![CDATA[wordpress]]></category><guid
isPermaLink="false">http://blog.nicolargo.com/?p=3465</guid> <description><![CDATA[Après 3 ans de bons et loyaux services, le thème Largo v1 prend sa retraite bien méritée. Il laisse sa place à Largo v2 (oui je sais, ce n&#8217;est pas très original&#8230;). Pourquoi un nouveau thème ? Tout simplement parce que je commençais à me lasser du précédent. De plus comme Largo v1 était le premier [...]]]></description> <content:encoded><![CDATA[<p>Après 3 ans de bons et loyaux services, le thème Largo v1 prend sa retraite bien méritée. Il laisse sa place à Largo v2 (oui je sais, ce n&#8217;est pas très original&#8230;).</p><h1>Pourquoi un nouveau thème ?</h1><p>Tout simplement parce que je commençais à me lasser du précédent. De plus comme Largo v1 était le premier thème WordPress que j&#8217;avais développé &#8220;from scratch&#8221; (<a
href="http://www.fran6art.com/wordpress/creez-votre-theme-wordpress-de-a-a-z/">merci encore aux tutos de Francis</a>), il était assez difficile à administrer et à faire évoluer.</p><p>Une fois la décision de changement de thème prise, j&#8217;ai commencé à regarder ce qu&#8217;il existait sur le marché, que ce soit au niveau des thèmes gratuits et payants. Je n&#8217;ai malheureusement jamais trouvé un thème qui réponde totalement à mes besoins. N&#8217;ayant pas les moyens de le faire développer par des professionnels du Webdesign (peut être la prochaine version&#8230;), j&#8217;ai mis la main dans le clavier et la souris.</p><h1>Petit tour du propriétaire</h1><h2>Le haut et le base du blog&#8230;</h2><p>On retrouve en haut à gauche une liste de liens vers les pages statiques du blog qui évoluera selon&#8230; mes envies. Pour l&#8217;instant des liens vers:</p><ul><li>la home page</li><li>la catégorie Open-source (le fond de commerce du blog;))</li><li>la &#8220;<em>famous</em>&#8221; page Nagios &amp; Co avec tous les billets sur la supervision système et réseau</li><li>la &#8220;<em>nouvelle</em>&#8221; page GStreamer avec tous les billets sur ce framework multimedia</li><li>la page Publicité pour les annonceurs (coucou)</li><li>la page A propos</li><li>la Contact</li></ul><p>En haut à droite, on a la liste des liens pour s&#8217;abonner au blog (c&#8217;est à dire recevoir les nouveaux billets sans forcement venir tout les jours sur le blog). Plusieurs solutions: par mail, via Facebook, par Twitter et enfin par RSS.</p><p><a
href="http://blog.nicolargo.com/wp-content/uploads/2010/08/largo2-top.jpg" rel="lightbox[3465]"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large wp-image-3466" title="largo2-top" src="http://blog.nicolargo.com/wp-content/uploads/2010/08/largo2-top-580x295.jpg" alt="" width="580" height="295" /></a></p><p>En bas du blog, on a le pas très original footer:</p><p><a
href="http://blog.nicolargo.com/wp-content/uploads/2010/08/largo2-bottom.jpg" rel="lightbox[3465]"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large wp-image-3468" title="largo2-bottom" src="http://blog.nicolargo.com/wp-content/uploads/2010/08/largo2-bottom-580x271.jpg" alt="" width="580" height="271" /></a></p><h2>La home page (index)</h2><p>On retrouve sur la page principale la liste des derniers billets avec quelques informations:</p><p><a
href="http://blog.nicolargo.com/wp-content/uploads/2010/08/largo2-index.jpg" rel="lightbox[3465]"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large wp-image-3467" title="largo2-index" src="http://blog.nicolargo.com/wp-content/uploads/2010/08/largo2-index-580x152.jpg" alt="" width="580" height="152" /></a></p><h2>Les billets</h2><p>C&#8217;est le coeur du blog, vu que ces pages représentent 95% des visites&#8230; A gauche du billet, j&#8217;ai mis en place une sidebar avec quelques informations et liens utiles aux lecteurs pour approfondir le sujet.</p><p><a
href="http://blog.nicolargo.com/wp-content/uploads/2010/08/largo2-singletop.jpg" rel="lightbox[3465]"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large wp-image-3469" title="largo2-singletop" src="http://blog.nicolargo.com/wp-content/uploads/2010/08/largo2-singletop-580x321.jpg" alt="" width="580" height="321" /></a></p><p>Au bas du billet, un menu permet de partager ou lire plus d&#8217;articles sur le sujet:</p><p><a
href="http://blog.nicolargo.com/wp-content/uploads/2010/08/largo2-singleshare.jpg" rel="lightbox[3465]"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large wp-image-3470" title="largo2-singleshare" src="http://blog.nicolargo.com/wp-content/uploads/2010/08/largo2-singleshare-580x345.jpg" alt="" width="580" height="345" /></a>Il suffit de cliquer sur le bandeau vert pour accéder aux différents sous menus&#8230;</p><p><a
href="http://blog.nicolargo.com/wp-content/uploads/2010/08/largo2-singlesimilar.jpg" rel="lightbox[3465]"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large wp-image-3471" title="largo2-singlesimilar" src="http://blog.nicolargo.com/wp-content/uploads/2010/08/largo2-singlesimilar-580x316.jpg" alt="" width="580" height="316" /></a>Enfin les commentaires se trouve après tout celà:</p><p><a
href="http://blog.nicolargo.com/wp-content/uploads/2010/08/largo2-comment.jpg" rel="lightbox[3465]"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large wp-image-3472" title="largo2-comment" src="http://blog.nicolargo.com/wp-content/uploads/2010/08/largo2-comment-580x304.jpg" alt="" width="580" height="304" /></a></p><h1>Conclusion</h1><p>Bien que j&#8217;ai testé en interne (et avec l&#8217;aide de Nicolas aka Ritchy) le thème, il doit sûrement y avoir quelques coquilles restantes. Je compte sur vous pour me les signaler. De plus si vous avez des questions ou des remarques sur ce nouveau thème je suis également preneur !</p><p>Ce blog est fait pour vous !</p><p>PS: suite au hack du blog et à mon changement d’hébergeur, il semble que certains utilisateurs du réseau Free utilisent des DNS pointant encore sur mon ancien serveur. J&#8217;ai envoyé un mail au support de Free en espérant que le problème soit vite résolu&#8230;</p><div
id="aspdf"> <a
href="http://blog.nicolargo.com/wp-content/plugins/as-pdf/generate.php?post=3465"> <span> </span> </a></div> ]]></content:encoded> <wfw:commentRss>http://blog.nicolargo.com/2010/08/nouveau-theme-pour-le-blog-2.html/feed</wfw:commentRss> <slash:comments>10</slash:comments> </item> <item><title>Un page fan Facebook pour le blog</title><link>http://blog.nicolargo.com/2010/08/un-page-fan-facebook-pour-le-blog.html</link> <comments>http://blog.nicolargo.com/2010/08/un-page-fan-facebook-pour-le-blog.html#comments</comments> <pubDate>Thu, 26 Aug 2010 13:09:40 +0000</pubDate> <dc:creator>NicoLargo</dc:creator> <category><![CDATA[Blog]]></category> <category><![CDATA[Web]]></category> <category><![CDATA[facebook]]></category> <category><![CDATA[page]]></category><guid
isPermaLink="false">http://blog.nicolargo.com/?p=3441</guid> <description><![CDATA[Pas mal de lecteurs me demandent comme &#8220;ami&#8221; dans Facebook&#8230; J&#8217;utilise principalement mon compte Facebook à des fins personnelles, il n&#8217;est donc pas possible pour moi d&#8217;accepter ces demandes. En contre partie, je viens de créer une &#8220;fan page&#8221; pour Le blog de Nicolargo. Elle va reprendre les articles publiés sur le blog et les news de [...]]]></description> <content:encoded><![CDATA[<p><img
style=' float: right; padding: 4px; margin: 0 0 2px 7px;'  class="size-full wp-image-3442 alignright" title="Sélection_036" src="http://blog.nicolargo.com/wp-content/uploads/2010/08/Sélection_036.png" alt="" width="250" height="125" />Pas mal de lecteurs me demandent comme &#8220;ami&#8221; dans Facebook&#8230; J&#8217;utilise principalement mon compte Facebook à des fins personnelles, il n&#8217;est donc pas possible pour moi d&#8217;accepter ces demandes.</p><p>En contre partie, je viens de créer une &#8220;fan page&#8221; pour Le blog de Nicolargo.</p><p>Elle va reprendre les articles publiés sur le blog et les news de ma timeline twitter. Pour devenir &#8220;fan&#8221; du blog, il suffit de cliquer sur le bouton &#8216;J&#8217;aime&#8217;&#8230;</p><p>La page Facebook du Blog de Nicolargo se trouve à l&#8217;adresse suivante:</p><p
style="text-align: center;"><a
href="http://www.facebook.com/pages/Le-blog-de-Nicolargo/151534574873311">http://www.facebook.com/pages/Le-blog-de-Nicolargo/151534574873311</a></p><p
style="text-align: left;">A bientôt sur Facebook ou ailleurs !</p><div
id="aspdf"> <a
href="http://blog.nicolargo.com/wp-content/plugins/as-pdf/generate.php?post=3441"> <span> </span> </a></div> ]]></content:encoded> <wfw:commentRss>http://blog.nicolargo.com/2010/08/un-page-fan-facebook-pour-le-blog.html/feed</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>Installation d&#8217;un blog WordPress sur un VPS Gandi</title><link>http://blog.nicolargo.com/2010/08/installation-dun-blog-wordpress-sur-un-vps-gandi.html</link> <comments>http://blog.nicolargo.com/2010/08/installation-dun-blog-wordpress-sur-un-vps-gandi.html#comments</comments> <pubDate>Wed, 25 Aug 2010 08:55:48 +0000</pubDate> <dc:creator>NicoLargo</dc:creator> <category><![CDATA[Blog]]></category> <category><![CDATA[Open-source]]></category> <category><![CDATA[Web]]></category> <category><![CDATA[apache]]></category> <category><![CDATA[gandi]]></category> <category><![CDATA[serveur]]></category> <category><![CDATA[ubuntu]]></category> <category><![CDATA[vps]]></category> <category><![CDATA[wordpress]]></category><guid
isPermaLink="false">http://blog.nicolargo.com/?p=3419</guid> <description><![CDATA[Comme vous le savez, je me suis fait hacké mon site pendant les &#8220;grandes vacances&#8221;. Cette petite contrariété m&#8217;a fait faire dans l&#8217;urgence une chose que j&#8217;avais planifier depuis un certain moment: la migration du Blog de Nicolargo sur un serveur privé virtuel de Gandi. Nous allons donc voir dans ce billet comment installer, sécuriser [...]]]></description> <content:encoded><![CDATA[<p>Comme vous le savez, <a
href="je me suis fait hacké mon site">je me suis fait hacké mon site</a> pendant les &#8220;grandes vacances&#8221;. Cette petite contrariété m&#8217;a fait faire dans l&#8217;urgence une chose que <a
href="http://blog.nicolargo.com/2009/05/creation-dun-serveur-chez-gandi.html">j&#8217;avais planifier depuis un certain moment</a>: la migration du Blog de Nicolargo sur <a
href="http://www.gandi.net/hebergement/">un serveur privé virtuel de Gandi</a>.</p><p>Nous allons donc voir dans ce billet comment installer, sécuriser et optimiser une blog WordPress sur une serveur privé virtuel !<span
id="more-3419"></span></p><h1>Commencons par le commencement</h1><p>Il faut d&#8217;abord choisir les performances initiales du serveur virtuel. J&#8217;ai utilisé le serveur que j&#8217;avais créé il y a quelques mois. C&#8217;est l&#8217;entrée de gamme, c&#8217;est à dire 1 part correspondant aux spécifications suivantes:</p><ul
id="dyn_specs"><li>1/64<sup>ème</sup> des capacités globales du serveur, soit environ <strong>1 GHz</strong></li><li>1/64<sup>ème</sup> des 16 Go de mémoire du serveur, soit <strong>256 Mo de RAM garantie avec un burst possible à 2 Go</strong> (+512 Mo de Swap)</li><li>1/64<sup>ème</sup> des capacités réseau, soit <strong>5 Mbits dédiés</strong></li><li>1/64<sup>ème</sup> du disque réservé au serveur, soit <strong>5 Go de disque data</strong> (+3 Go pour le système)</li></ul><p>Comme nous allons le voir plus tard cette configuration n&#8217;est pas adapté pour un blog avec un trafic relativement important (environ 1 00 000 pages vues par mois) . Je suis donc rapidement passé à la configuration suivante:</p><p><a
href="http://blog.nicolargo.com/wp-content/uploads/2010/08/Sélection_033.png" rel="lightbox[3419]"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-full wp-image-3435" title="Conf serveur blog.nicolargo.com 2010/08" src="http://blog.nicolargo.com/wp-content/uploads/2010/08/Sélection_033.png" alt="" width="428" height="304" /></a></p><p>Nous disposons donc d&#8217;un accès SSH (root) sur le serveur,. Après une mise à jour du système d&#8217;ecploitation (Ubuntu Server 9.04) nous pouvons enfin commencer les choses sérieuses&#8230;</p><h1>Installation du serveur Web Apache</h1><p>On commence par installer le serveur:</p><blockquote><p>sudo aptitude install apache2</p></blockquote><p>Puis on active les modules qui vont nous permettre d&#8217;optimiser les performances de WordPress:</p><blockquote><p>sudo a2enmod deflate</p><p>sudo a2enmod headers</p><p>sudo a2enmod rewrite</p><p>sudo a2enmod expires</p></blockquote><p>Il est également possible d&#8217;adapter la configuration des processus Apache (nombre de process, nombre maximal de client par process..) en modifiant le fichier /etc/apache2/apache2.conf:</p><blockquote><p>&lt;IfModule mpm_prefork_module&gt;</p><p>StartServers          5</p><p>MinSpareServers       5</p><p>MaxSpareServers      10</p><p>MaxClients          40</p><p>MaxRequestsPerChild   2000</p><p>&lt;/IfModule&gt;</p></blockquote><p><strong>StartServers</strong> permet de configurer le nombre de processus Apache lancés au démarrage.</p><p><strong>MinSpareServers</strong> et <strong>MaxSpareServers</strong> donnent respectivement le nombre minimum et maximum de processus Apache selon les besoins.</p><p><strong>MaxClients</strong> permet de configurer le nombre de clients (au sens session TCP) pouvant se connecter simultanément à un processus Apache. Pour des sites dynamiques (comme WordPress) il est plutôt conseillé de ne pas avoir une valeur trop élevée afin d&#8217;éviter les swap mémoire sur disque.</p><p>Une solution proposée <a
href="http://thethemefoundry.com/blog/optimize-apache-wordpress/">sur ce blog</a> pour calculer la valeur MaxClients est la suivantes: Il faut d&#8217;abord regarder combien de mémoire prend un processus apache2 (par exemple avec la commande <em>top</em>), puis diviser la mémoire système disponible par cette valeur. Par exemple, pour un serveur disposant de 1 Go de RAM (1000 Mo) et dont chaque processus Apache occupe 25 Mo, on a le calcul suivant:</p><p
style="padding-left: 30px;">MaxClients = 1000 / 25 = 40</p><p>Enfin <strong>MaxRequestsPerChild</strong> permet de définir le nombre maximal de requête qu&#8217;un processus peut prendre en charge avant d&#8217;être tué. Il est conseillé de mettre une valeur différente de 0 (le processus n&#8217;est alors jamais tué) pour éviter qu&#8217;une processus ne consomme trop de mémoire si un problème arrive.</p><p>On passe ensuite aux directives <strong>KeepAlive</strong> qui permette de configurer finement le temps de vie des sessions TCP. Pour un site dynamique comportant un nombre important d&#8217;images et de JS (comme mon blog), les valeurs suivants sont un bon point de départ:</p><blockquote><div
id="_mcePaste"># KeepAlive: Whether or not to allow persistent connections</div><div
id="_mcePaste">KeepAlive On</div><div
id="_mcePaste"># MaxKeepAliveRequests: The maximum number of requests to allow</div><div
id="_mcePaste">MaxKeepAliveRequests 200</div><div
id="_mcePaste"># KeepAliveTimeout: Number of seconds to wait for the next request</div><div
id="_mcePaste">KeepAliveTimeout 5</div><div><div># Timeout: The number of seconds before receives and sends time out.</div><div>Timeout 50</div></div></blockquote><p>Enfin on relance le serveur pour que la configuration soit prise en compte:</p><blockquote><p>sudo /etc/init.d/apache2 restart</p></blockquote><h1 style="font-size: 2em;">Installation de MySQL</h1><p>On commence par installer le serveur MySQL:</p><blockquote><p>sudo aptitude install mysql-server</p></blockquote><p>Puis on créé une base de donnée et un compte utilisateur associé qui va servir pour WordPress:</p><blockquote><p>mysql -u adminusername -p</p><p>mysql&gt; CREATE DATABASE databasename;</p><p>Query OK, 1 row affected (0.00 sec)</p><p>mysql&gt; GRANT ALL PRIVILEGES ON databasename.* TO &#8220;wordpressusername&#8221;@&#8221;hostname&#8221;</p><p>-&gt; IDENTIFIED BY &#8220;password&#8221;;</p><p>Query OK, 0 rows affected (0.00 sec)</p><p>mysql&gt; FLUSH PRIVILEGES;</p><p>Query OK, 0 rows affected (0.01 sec)</p><p>mysql&gt; EXIT</p></blockquote><p>On peut optimiser la base de donnée en éditant le fichier /etc/mysql/my.cnf:</p><blockquote><p>query_cache_type	= 1</p><p>query_cache_limit       = 2M</p><p>query_cache_size        = 32M</p></blockquote><p>Ne pas oublier de relancer le serveur MySQL pour prendre en compte les modifications.</p><h1>Installation de WordPress</h1><p>Depuis le hack de mon blog, j&#8217;ai décidé de travailler directement avec la version SVN de WordPress afin de disposer au plus vite des patchs de sécurité. Une fois de le répertoire racine de votre site Web (/home/nicolargo/web/blog dans mon cas), il faut saisir la commande suivante:</p><blockquote><p>svn co http://core.svn.wordpress.org/trunk/ .</p></blockquote><p>On ajoute ensuite la ligne suivante dans le fichier .htaccess afin de rendre invisible les sous répertoires .svn:</p><blockquote><p>RewriteRule ^(.*/)?\.svn/ &#8211; [F,L]</p></blockquote><p>Puis on finalise l&#8217;installation en suivant <a
href="http://codex.wordpress.org/Installing_WordPress#Famous_5-Minute_Install">la fameuse installation de WordPress en 5 minutes</a>.</p><p>Il est ensuite conseillé de supprimer le fichier wp-admin/install.php (qui ne servira plus une fois l&#8217;installation faite):</p><blockquote><p>rm wp-admin/install.php</p></blockquote><h1>Sécurisation de WordPress</h1><p>Cette sécurisation passe par deux étapes. Une première est de protéger le blog à l&#8217;aide du fichier .htaccess. La seconde est d&#8217;installer des plugins de sécurité qui vont nous permettre de faire régulièrement des audits sur notre serveur.</p><p>Pour le fichier .htaccess, j&#8217;utilise la base suivante:</p><blockquote><p># MAIN</p><p>RewriteEngine On</p><p>ServerSignature Off</p><p>Options All -Indexes</p><p>Options +FollowSymLinks</p><p><br
class="spacer_" /></p><p># SVN protect</p><p>RewriteRule ^(.*/)?\.svn/ &#8211; [F,L]</p><p><br
class="spacer_" /></p><p># Secure .htaccess</p><p>&lt;Files .htaccess&gt;</p><p>Order Allow,Deny</p><p>Deny from all</p><p>&lt;/Files&gt;</p><p><br
class="spacer_" /></p><p># Secure wp-config.php</p><p>&lt;Files wp-config.php&gt;</p><p>Order Deny,Allow</p><p>Deny from all</p><p>&lt;/Files&gt;</p><p><br
class="spacer_" /></p><p># FILTER REQUEST</p><p>&lt;IfModule mod_rewrite.c&gt;</p><p>RewriteBase /</p><p>RewriteCond %{REQUEST_FILENAME} !-f</p><p>RewriteCond %{REQUEST_FILENAME} !-d</p><p>RewriteRule . /index.php [L]</p><p>&lt;/IfModule&gt;</p><p><br
class="spacer_" /></p><p># BEGIN Expire Header</p><p>&lt;FilesMatch &#8220;\.(ico|jpg|jpeg|png|gif|js|css|swf)$&#8221;&gt;</p><p>ExpiresDefault &#8220;access plus 2 hours&#8221;</p><p>&lt;/FilesMatch&gt;</p><p><br
class="spacer_" /></p><p># BLACKLIST CANDIDATES</p><p>&lt;Limit GET POST PUT&gt;</p><p>Order Allow,Deny</p><p>Allow from all</p><p>Deny from 75.126.85.215   &#8220;# blacklist candidate 2008-01-02 = admin-ajax.php attack &#8220;</p><p>Deny from 128.111.48.138  &#8220;# blacklist candidate 2008-02-10 = cryptic character strings &#8220;</p><p>Deny from 87.248.163.54   &#8220;# blacklist candidate 2008-03-09 = block administrative attacks &#8220;</p><p>Deny from 84.122.143.99   &#8220;# blacklist candidate 2008-04-27 = block clam store loser &#8220;</p><p>Deny from 210.210.119.145 &#8220;# blacklist candidate 2008-05-31 = block _vpi.xml attacks &#8220;</p><p>Deny from 66.74.199.125   &#8220;# blacklist candidate 2008-10-19 = block mindless spider running &#8220;</p><p>Deny from 203.55.231.100  &#8220;# 1048 attacks in 60 minutes&#8221;</p><p>Deny from 24.19.202.10    &#8220;# 1629 attacks in 90 minutes&#8221;</p><p>&lt;/Limit&gt;</p><p><br
class="spacer_" /></p><p># QUERY STRING EXPLOITS</p><p>&lt;IfModule mod_rewrite.c&gt;</p><p>RewriteCond %{QUERY_STRING} \.\.\/    [NC,OR]</p><p>RewriteCond %{QUERY_STRING} boot\.ini [NC,OR]</p><p>RewriteCond %{QUERY_STRING} tag\=     [NC,OR]</p><p>RewriteCond %{QUERY_STRING} ftp\:     [NC,OR]</p><p>RewriteCond %{QUERY_STRING} http\:    [NC,OR]</p><p>RewriteCond %{QUERY_STRING} https\:   [NC,OR]</p><p>RewriteCond %{QUERY_STRING} mosConfig [NC,OR]</p><p>RewriteCond %{QUERY_STRING} ^.*(\[|\]|\(|\)|&lt;|&gt;|&#8217;|&#8221;|;|\?|\*).* [NC,OR]</p><p>RewriteCond %{QUERY_STRING} ^.*(%22|%27|%3C|%3E|%5C|%7B|%7C).* [NC,OR]</p><p>RewriteCond %{QUERY_STRING} ^.*(%0|%A|%B|%C|%D|%E|%F|127\.0).* [NC,OR]</p><p>RewriteCond %{QUERY_STRING} ^.*(globals|encode|config|localhost|loopback).* [NC,OR]</p><p>RewriteCond %{QUERY_STRING} ^.*(request|select|insert|union|declare|drop).* [NC]</p><p>RewriteRule ^(.*)$ &#8211; [F,L]</p><p>&lt;/IfModule&gt;</p><p><br
class="spacer_" /></p><p># CHARACTER STRINGS</p><p>&lt;IfModule mod_alias.c&gt;</p><p># BASIC CHARACTERS</p><p>RedirectMatch 403 \,</p><p>RedirectMatch 403 \:</p><p>RedirectMatch 403 \;</p><p>RedirectMatch 403 \=</p><p>RedirectMatch 403 \@</p><p>RedirectMatch 403 \[</p><p>RedirectMatch 403 \]</p><p>RedirectMatch 403 \^</p><p>RedirectMatch 403 \`</p><p>RedirectMatch 403 \{</p><p>RedirectMatch 403 \}</p><p>RedirectMatch 403 \~</p><p>RedirectMatch 403 \&#8221;</p><p>RedirectMatch 403 \$</p><p>RedirectMatch 403 \&lt;</p><p>RedirectMatch 403 \&gt;</p><p>RedirectMatch 403 \|</p><p>RedirectMatch 403 \.\.</p><p>RedirectMatch 403 \/\/</p><p>RedirectMatch 403 \%0</p><p>RedirectMatch 403 \%A</p><p>RedirectMatch 403 \%B</p><p>RedirectMatch 403 \%C</p><p>RedirectMatch 403 \%D</p><p>RedirectMatch 403 \%E</p><p>RedirectMatch 403 \%F</p><p>RedirectMatch 403 \%22</p><p>RedirectMatch 403 \%27</p><p>RedirectMatch 403 \%28</p><p>RedirectMatch 403 \%29</p><p>RedirectMatch 403 \%3C</p><p>RedirectMatch 403 \%3E</p><p>RedirectMatch 403 \%3F</p><p>RedirectMatch 403 \%5B</p><p>RedirectMatch 403 \%5C</p><p>RedirectMatch 403 \%5D</p><p>RedirectMatch 403 \%7B</p><p>RedirectMatch 403 \%7C</p><p>RedirectMatch 403 \%7D</p><p># COMMON PATTERNS</p><p>Redirectmatch 403 \_vpi</p><p>RedirectMatch 403 \.inc</p><p>Redirectmatch 403 xAou6</p><p>Redirectmatch 403 db\_name</p><p>Redirectmatch 403 select\(</p><p>Redirectmatch 403 convert\(</p><p>Redirectmatch 403 \/query\/</p><p>RedirectMatch 403 ImpEvData</p><p>Redirectmatch 403 \.XMLHTTP</p><p>Redirectmatch 403 proxydeny</p><p>RedirectMatch 403 function\.</p><p>Redirectmatch 403 remoteFile</p><p>Redirectmatch 403 servername</p><p>Redirectmatch 403 \&amp;rptmode\=</p><p>Redirectmatch 403 sys\_cpanel</p><p>RedirectMatch 403 db\_connect</p><p>RedirectMatch 403 doeditconfig</p><p>RedirectMatch 403 check\_proxy</p><p>Redirectmatch 403 system\_user</p><p>Redirectmatch 403 \/\(null\)\/</p><p>Redirectmatch 403 clientrequest</p><p>Redirectmatch 403 option\_value</p><p>RedirectMatch 403 ref\.outcontrol</p><p># SPECIFIC EXPLOITS</p><p>RedirectMatch 403 errors\.</p><p>RedirectMatch 403 config\.</p><p>RedirectMatch 403 include\.</p><p>RedirectMatch 403 display\.</p><p>RedirectMatch 403 register\.</p><p>Redirectmatch 403 password\.</p><p>RedirectMatch 403 maincore\.</p><p>RedirectMatch 403 authorize\.</p><p>Redirectmatch 403 macromates\.</p><p>RedirectMatch 403 head\_auth\.</p><p>RedirectMatch 403 submit\_links\.</p><p>RedirectMatch 403 change\_action\.</p><p>Redirectmatch 403 com\_facileforms\/</p><p>RedirectMatch 403 admin\_db\_utilities\.</p><p>RedirectMatch 403 admin\.webring\.docs\.</p><p>Redirectmatch 403 Table\/Latest\/index\.</p><p>&lt;/IfModule&gt;</p></blockquote><p>On passe ensuite à l&#8217;installation des plugins de sécurité suivants:</p><ul><li><a
href="http://wordpress.org/extend/plugins/secure-wordpress/">Secure WordPress</a></li><li><a
href="http://wordpress.org/extend/plugins/wp-security-scan/">WP Security Scan</a></li></ul><p>Le premier (Secure WordPress) permet d&#8217;effectuer simplement et automatiquement une liste d&#8217;actions essentielle à la sécurité de votre site:</p><p><a
href="http://blog.nicolargo.com/wp-content/uploads/2010/08/Sélection_032.png" rel="lightbox[3419]"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large wp-image-3434" title="Secure WordPress screenshot" src="http://blog.nicolargo.com/wp-content/uploads/2010/08/Sélection_032-580x337.png" alt="" width="580" height="337" /></a></p><p>Le second (WP Security Scan) effectue régulièrement un scan de l&#8217;arborescence de votre site et remonte dans l&#8217;interface d&#8217;administration de WordPress les fichiers modifiés.</p><h1>Optimisation de WordPress</h1><p>Pour l&#8217;optimisation des performance du blog, je me base sur l&#8217;indispensable plugin <a
href="http://wordpress.org/extend/plugins/w3-total-cache/">W3 Total Cache</a>. Bien qu&#8217;il ne se limite pas qu&#8217;a cela, il permet de mettre facilement en place un système de cache ou les pages sont directement gérées en mémoire RAM plutôt qu&#8217;en lecture sur le disque dur. J&#8217;ai choisi de coupler W3 Total Cache avec Memcached (un cache mémoire sous licence libre).</p><p>L&#8217;installation de Memcached est des plus simple:</p><blockquote><p>sudo aptitude install libcache-memcached-perl memcached</p></blockquote><p>Si votre serveur est protégé par un Firewall (ce que je conseille évidemment&#8230;), il ne faut pas oublier d&#8217;ajouter la règle suivante:</p><blockquote><p>iptables -A OUTPUT -p tcp &#8211;destination 127.0.0.1 &#8211;dport 11211 -j ACCEPT</p></blockquote><p>La configuration de W3 Total Cache se fait via l&#8217;onglet Performance / General settings:</p><p><a
href="http://blog.nicolargo.com/wp-content/uploads/2010/08/Sélection_034.png" rel="lightbox[3419]"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large wp-image-3436" title="Sélection_034" src="http://blog.nicolargo.com/wp-content/uploads/2010/08/Sélection_034-580x461.png" alt="" width="580" height="461" /></a></p><p>Une dernière optimisation consiste à installer le plugin <a
href="http://wordpress.org/extend/plugins/wp-dbmanager/">WP-DBManager </a>et de suivre régulièrement (tout les mois environ) les procédures d&#8217;optimisation (onglet Database).</p><h1>Test et validation</h1><p>Pour tester les performances de votre serveur, vous pouvez utiliser la commande suivante:</p><blockquote><p>ab -t 30 -c 5 http://votreblog.com/</p></blockquote><p>L&#8217;information intéressante se trouve sur la ligne:</p><blockquote><p>Requests per second:    159.46 [#/sec] (mean)</p></blockquote><p>Il est également important de surveiller les paramètres suivant: charge CPU, mémoire RAM disponible, accès disque et réseau. Gandi propose pour cela une interface d&#8217;administration Web avec un système de sonde permettant de remonter des alertes par mail ou même d&#8217;augmenter dynamiquement le nombre de part lors d&#8217;un pic de trafic.</p><p><a
href="http://blog.nicolargo.com/wp-content/uploads/2010/08/Sélection_035.png" rel="lightbox[3419]"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large wp-image-3438" title="Gandi monitoring" src="http://blog.nicolargo.com/wp-content/uploads/2010/08/Sélection_035-580x445.png" alt="" width="580" height="445" /></a></p><p>Personnellement, je surveille mon serveur via <a
href="http://blog.nicolargo.com/nagios-tutoriels-et-documentations">Nagios</a> mais cela sera le sujet d&#8217;un prochain billet&#8230;</p><div
id="aspdf"> <a
href="http://blog.nicolargo.com/wp-content/plugins/as-pdf/generate.php?post=3419"> <span> </span> </a></div> ]]></content:encoded> <wfw:commentRss>http://blog.nicolargo.com/2010/08/installation-dun-blog-wordpress-sur-un-vps-gandi.html/feed</wfw:commentRss> <slash:comments>14</slash:comments> </item> <item><title>Nicolargo is back&#8230;</title><link>http://blog.nicolargo.com/2010/08/nicolargo-is-back.html</link> <comments>http://blog.nicolargo.com/2010/08/nicolargo-is-back.html#comments</comments> <pubDate>Tue, 24 Aug 2010 07:47:22 +0000</pubDate> <dc:creator>NicoLargo</dc:creator> <category><![CDATA[Blog]]></category> <category><![CDATA[Open-source]]></category> <category><![CDATA[hack]]></category><guid
isPermaLink="false">http://blog.nicolargo.com/?p=3412</guid> <description><![CDATA[Voilà, après deux semaines de coupure le blog de Nicolargo est de nouveau en ligne&#8230; Retour en arrière le mercredi 11 août 2010. En congés depuis 2 semaines et comme tout les jours je profite de ma superbe connexion &#8220;Edge super bas débit&#8221; pour consulter mes mails depuis mon smartphone. J&#8217;apprend alors que mon blog a été [...]]]></description> <content:encoded><![CDATA[<p
style="text-align: center;"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-full wp-image-3413" title="2043_fail_camera_Fail-s500x420-10287-580" src="http://blog.nicolargo.com/wp-content/uploads/2010/08/2043_fail_camera_Fail-s500x420-10287-580.jpg" alt="" width="300" height="252" /></p><p
style="text-align: left;">Voilà, après deux semaines de coupure le blog de Nicolargo est de nouveau en ligne&#8230;</p><p
style="text-align: left;">Retour en arrière le mercredi 11 août 2010. En congés depuis 2 semaines et comme tout les jours je profite de ma superbe connexion &#8220;Edge super bas débit&#8221; pour consulter mes mails depuis mon smartphone. J&#8217;apprend alors que mon blog a été hacké pendant la nuit (au passage, merci à tout les lecteurs pour vos message d&#8217;alertes, vous êtes encore plus rapide que Nagios <img
src='http://blog.nicolargo.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> ).</p><p
style="text-align: left;">Je me retrouve dans la pire situation pour une webmaster: ne rien pouvoir faire&#8230; Pas de PC, pas de connexion Internet&#8230;</p><p
style="text-align: left;">Le lendemain matin, iWeb (mon hébergeur au moment du hack) bloque mon compte pour d&#8217;évidentes raisons de sécurités&#8230; Le blog de Nicolargo n&#8217;existe plus sur la toile&#8230;</p><p
style="text-align: left;">Je décide alors de laisser tomber l&#8217;affaire et d&#8217;attendre mon retour de congés pour intervenir. Pas envies de gâcher mes vacances à cause d&#8217;un hacker pré-pubère qui cible de manière aléatoire ses cibles. A l&#8217;heure actuelle, je ne sais pas si le hack vient de WordPress (j&#8217;ai pu laisser passer une mise à jour quand j&#8217;étais en congés) ou d&#8217;un plugin&#8230;</p><p
style="text-align: left;">A mon retour (hier), voici les actions que j&#8217;ai menées:</p><ul><li>Récupération des sauvegardes datant du 1 août (fichiers + base de donnée)</li><li>Modification du DNS du domaine nicolargo.com pour faire pointer sur un <a
href="http://www.gandi.net/hebergement/">Gandi Serveur</a></li><li>Installation Apache + MySQL sur le serveur</li><li>Installation de la dernière version de WordPress (depuis le SVN)</li><li>Restauration des fichiers et de la base de donnée</li><li>Sécurisation du blog <a
href="http://net.tutsplus.com/tutorials/wordpress/20-steps-to-a-flexible-and-secure-wordpress-installation/ ">en suivant ce tutoriel</a></li><li>Tests et validations internes</li><li>Mise en ligne</li></ul><p
style="text-align: left;">Il me reste a surveiller la montée en charge du serveur en adaptant le nombre de part pour le blog si nécessaire (je suis pour l&#8217;instant sur 1 part avec 512 Mo de RAM).</p><p
style="text-align: left;">Les impacts du hack  ne sont pas négligeables, outre le stress et la perte de temps, je ne suis pour l&#8217;instant plus référencé dans Google (sic&#8230;), je perd donc 80% de mon trafic&#8230;</p><p
style="text-align: left;">Mea culpa pour ma coupable négligence qui a surement pénaliser des lecteurs voulant trouver des informations sur le blog et encore merci à toute la communauté qui n&#8217;a pas hésité à proposer son aide via <a
href="http://twitter.com/nicolargo">mon compte twitter</a>.</p><p
style="text-align: left;">A bientôt sur le blog pour de nouveaux billets !</p><p
style="text-align: left;">PS: le nouveau thème est presque finalisé&#8230; Il devrait être disponible début septembre.</p><div
id="aspdf"> <a
href="http://blog.nicolargo.com/wp-content/plugins/as-pdf/generate.php?post=3412"> <span> </span> </a></div> ]]></content:encoded> <wfw:commentRss>http://blog.nicolargo.com/2010/08/nicolargo-is-back.html/feed</wfw:commentRss> <slash:comments>11</slash:comments> </item> <item><title>Blog en pause</title><link>http://blog.nicolargo.com/2010/07/blog-en-pause-2.html</link> <comments>http://blog.nicolargo.com/2010/07/blog-en-pause-2.html#comments</comments> <pubDate>Fri, 30 Jul 2010 14:16:27 +0000</pubDate> <dc:creator>NicoLargo</dc:creator> <category><![CDATA[Blog]]></category><guid
isPermaLink="false">http://blog.nicolargo.com/?p=3388</guid> <description><![CDATA[Comme chaque année, une petite pause de 3 semaines pour le mois d&#8217;août. Au menu de la rentrée, une nouvelle version pour le blog (et oui enfin): design et navigation ont été repensés. Et bien entendu de nouveaux billet sur les logiciels libres et le Web  ! Retour vers le 23 août !]]></description> <content:encoded><![CDATA[<p>Comme chaque année, une petite pause de 3 semaines pour le mois d&#8217;août.</p><p>Au menu de la rentrée, une nouvelle version pour le blog (et oui enfin): design et navigation ont été repensés. Et bien entendu de nouveaux billet sur les logiciels libres et le Web  !</p><p><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large wp-image-3409" title="Sélection_031" src="http://blog.nicolargo.com/wp-content/uploads/2010/07/Sélection_031-580x92.png" alt="" width="580" height="92" /></p><p>Retour vers le 23 août !</p><div
id="aspdf"> <a
href="http://blog.nicolargo.com/wp-content/plugins/as-pdf/generate.php?post=3388"> <span> </span> </a></div> ]]></content:encoded> <wfw:commentRss>http://blog.nicolargo.com/2010/07/blog-en-pause-2.html/feed</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Transformer son site/blog en Google Chrome Web Apps</title><link>http://blog.nicolargo.com/2010/07/transformer-son-siteblog-en-google-chrome-web-apps.html</link> <comments>http://blog.nicolargo.com/2010/07/transformer-son-siteblog-en-google-chrome-web-apps.html#comments</comments> <pubDate>Fri, 16 Jul 2010 08:09:52 +0000</pubDate> <dc:creator>NicoLargo</dc:creator> <category><![CDATA[Blog]]></category> <category><![CDATA[Developpement]]></category> <category><![CDATA[Open-source]]></category> <category><![CDATA[Web]]></category> <category><![CDATA[apps]]></category> <category><![CDATA[chromium]]></category> <category><![CDATA[ctx]]></category> <category><![CDATA[google chrome]]></category><guid
isPermaLink="false">http://blog.nicolargo.com/?p=3326</guid> <description><![CDATA[Dans quelques jours, le Chrome Web Store va ouvrir ses portes. Ce site va permettre au utilisateur de Google Chrome ou de la version libre Chromium d&#8217;installer des applications Web dans leur navigateur. Quelques applications sont déjà disponible (Gmail, Calendar, Google Reader&#8230;), elle se présente sous la forme d&#8217;une icône en haut à gauche des [...]]]></description> <content:encoded><![CDATA[<p><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-full wp-image-3328" title="Sélection_022" src="http://blog.nicolargo.com/wp-content/uploads/2010/07/Sélection_022.png" alt="" width="488" height="96" /></p><p>Dans quelques jours, le <a
href="https://chrome.google.com/webstore">Chrome Web Store</a> va ouvrir ses portes. Ce site va permettre au utilisateur de Google Chrome ou de la version libre Chromium d&#8217;installer des applications Web dans leur navigateur. Quelques applications sont déjà disponible (Gmail, Calendar, Google Reader&#8230;), elle se présente sous la forme d&#8217;une icône en haut à gauche des onglets et permet l&#8217;accès direct aux sites. Des fonctions de notifications seront bientôt disponibles (par exemple pour vous avertir lors de l&#8217;arrivée d&#8217;un nouveau message).</p><p>Rien de neuf par rapport aux nombreux plugins (extensions) que l&#8217;on peut trouver la toile&#8230; oui et non. En effet, comme nous allons le voir dans ce billet il est très facile de créer une application à partir d&#8217;un site Web existant. On a ainsi un accès immédiat à ces sites.</p><p>Assez de blabla, nous allons voir comment transformer votre site/blog dans une belle application Webs que vous pourrez mettre à disposition de vos lecteurs !</p><p>Toutes les manipulations suivantes marchent aussi bien sous Google Chrome ou sur Chromium (la version libre !). Il faut juste avoir la dernière version (voir instruction <a
href="http://blog.nicolargo.com/2009/09/une-semaine-avec-chromium.html">ici</a> pour Chromium sous GNU/Linux Ubuntu). <span
id="more-3326"></span></p><h1>Activer la prise en charge des Web Apps</h1><p>Avant de commencer, il faut activer la prise en charge des Web Apps dans votre navigateur (cette fonction est en développement et n&#8217;est donc pas active par défaut). Sous GNU/Linux, le plus simple est de modifier le lanceur Gnome (<strong>bouton droit</strong> sur l&#8217;icône puis <strong>Propriétés</strong>).</p><pre class="brush: bash;">chromium-browser  --enable-apps --enable-extension-timeline-api %U</pre><p>Il faut ensuite relancer votre navigateur.</p><h1>Création de votre application</h1><p>Les Google Chrome Webs Apps sont des fichiers au format (.crx). En fait un bête fichier ZIP contenant un répertoire au format <strong>nomapplication_app</strong> et les fichiers suivants:</p><ul><li><strong>manifest.json</strong>: Le fichier principal d&#8217;écrivant votre application</li><li><strong>128.png</strong>: Une icône de 128&#215;128 pixels au format PNG représentant votre application</li><li><strong>24.png</strong>: Une icône de 24&#215;24 pixels au format PNG représentant votre application</li></ul><p>On va donc commencer par créer l&#8217;arborescence suivante: ~/chromiumapps/nicolargo_app/</p><p>On copie ensuite les deux icônes dans le répertoire ~/chromiumapps/nicolargo_app/</p><p>Puis on édite le fichier ~/chromiumapps/nicolargo_app/manifest.json (permettant de créer une application à partir de mon blog):</p><pre class="brush: bash;">

{

&quot;name&quot;: &quot;Le blog de Nicolargo&quot;,

&quot;version&quot;: &quot;1&quot;,

&quot;icons&quot;: {

&quot;128&quot;: &quot;128.png&quot;,

&quot;24&quot;: &quot;24.png&quot;

},

&quot;permissions&quot;: [ &quot;notifications&quot; ],

&quot;app&quot;: {

&quot;launch&quot;: {

&quot;web_url&quot;: &quot;http://blog.nicolargo.com/&quot;

}

}

}
</pre><p>Rien de bien compliqué <img
src='http://blog.nicolargo.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p><h1>Test de votre application</h1><p>Pour tester l&#8217;application, on clique sur le bouton <img
class="alignnone size-full wp-image-3333" title="toolsmenu" src="http://blog.nicolargo.com/wp-content/uploads/2010/07/toolsmenu.gif" alt="" width="43" height="34" />du navigateur puis on va dans le menu<strong> Tools &gt; Extensions</strong>:</p><p>On clique ensuite sur le bouton <strong>&#8220;+ Developer mode&#8221;</strong>:</p><p><a
href="http://blog.nicolargo.com/wp-content/uploads/2010/07/Extensions-Chromium_018.png" rel="lightbox[3326]"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large wp-image-3332" title="Extensions - Chromium_018" src="http://blog.nicolargo.com/wp-content/uploads/2010/07/Extensions-Chromium_018-580x488.png" alt="" width="580" height="488" /></a></p><p>Puis sur <strong>&#8220;Load unpacked extension&#8230;&#8221;</strong>:</p><p><a
href="http://blog.nicolargo.com/wp-content/uploads/2010/07/Extensions-Chromium_019.png" rel="lightbox[3326]"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large wp-image-3331" title="Extensions - Chromium_019" src="http://blog.nicolargo.com/wp-content/uploads/2010/07/Extensions-Chromium_019-580x488.png" alt="" width="580" height="488" /></a></p><p>On sélectionne le répertoire ou se trouve l&#8217;application: ~/chromiumapps/nicolargo_app/, elle devrait se charger:</p><p><a
href="http://blog.nicolargo.com/wp-content/uploads/2010/07/Sélection_020.png" rel="lightbox[3326]"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large wp-image-3330" title="Sélection_020" src="http://blog.nicolargo.com/wp-content/uploads/2010/07/Sélection_020-580x253.png" alt="" width="580" height="253" /></a></p><p>Il ne reste plus qu&#8217;a faire un CTRL-T (pour ouvrir un nouvel onglet et cliquer sur l&#8217;icône de l&#8217;application):</p><p><a
href="http://blog.nicolargo.com/wp-content/uploads/2010/07/Sélection_024.png" rel="lightbox[3326]"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large wp-image-3334" title="Sélection_024" src="http://blog.nicolargo.com/wp-content/uploads/2010/07/Sélection_024-580x139.png" alt="" width="580" height="139" /></a></p><p>Si tout va bien, l&#8217;application devrait s&#8217;afficher en haut à gauche de votre navigateur !</p><p><a
href="http://blog.nicolargo.com/wp-content/uploads/2010/07/Le-blog-de-Nicolargo-Chromium_021.png" rel="lightbox[3326]"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large wp-image-3329" title="Le blog de Nicolargo - Chromium_021" src="http://blog.nicolargo.com/wp-content/uploads/2010/07/Le-blog-de-Nicolargo-Chromium_021-580x488.png" alt="" width="580" height="488" /></a></p><h1>Création du fichier .CTX</h1><p>Maintenant que votre application fonctionne, il faut créer un package pour la distribuer à vos utilisateurs. Chromium (ou Google Chrome) permet d&#8217;automatiser cette création en cliquant sur le bouton <strong>&#8220;Pack extension&#8221;</strong> du menu <strong>&#8220;Extension &gt; + Developer mode&#8221;</strong>. Il suffit de sélectionner le répertoire de votre application: ~/chromiumapps/nicolargo_app/. Le navigateur va automatiquement créer le package ~/chromiumapps/nicolargo_app.ctx (ainsi qu&#8217;une clé privée ~/chromiumapps/nicolargo_app.pem).</p><p><a
href="http://blog.nicolargo.com/wp-content/uploads/2010/07/Extensions-Chromium_023.png" rel="lightbox[3326]"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large wp-image-3327" title="Extensions - Chromium_023" src="http://blog.nicolargo.com/wp-content/uploads/2010/07/Extensions-Chromium_023-580x488.png" alt="" width="580" height="488" /></a></p><p>Il ne vous reste plus qu&#8217;a distribuer le fichier nicolargo_app.ctx à vos utilisateur. En attendant la disponibilité du <a
href="https://chrome.google.com/webstore">Chrome Web Store</a> la procédure à suivre pour installer le fichier .ctx sur votre navigateur <a
href="http://www.omgubuntu.co.uk/2010/07/enable-chrome-web-apps-in-chromium-on.html?utm_source=feedburner&amp;utm_medium=feed&amp;utm_campaign=Feed:+d0od+(Omg!+Ubuntu!)">est disponible ici</a>.</p><p>Pour finir, si vous voulez tester la <a
href="http://www.nicolargo.com/blogdata/nicolargo_app.crx">Web Application du Blog de Nicolargo</a> <a
href="http://www.nicolargo.com/blogdata/nicolargo_app.crx"><img
class="alignnone size-full wp-image-3335" title="Donwload icon" src="http://blog.nicolargo.com/wp-content/uploads/2010/07/arrow-boite-telechargement-icone-7439-32.png" alt="" width="32" height="32" /></a> !</p><div
id="aspdf"> <a
href="http://blog.nicolargo.com/wp-content/plugins/as-pdf/generate.php?post=3326"> <span> </span> </a></div> ]]></content:encoded> <wfw:commentRss>http://blog.nicolargo.com/2010/07/transformer-son-siteblog-en-google-chrome-web-apps.html/feed</wfw:commentRss> <slash:comments>9</slash:comments> </item> <item><title>Sauvegarde automatique de son site Internet</title><link>http://blog.nicolargo.com/2010/06/sauvegarde-automatique-de-son-site-internet.html</link> <comments>http://blog.nicolargo.com/2010/06/sauvegarde-automatique-de-son-site-internet.html#comments</comments> <pubDate>Fri, 11 Jun 2010 10:26:22 +0000</pubDate> <dc:creator>NicoLargo</dc:creator> <category><![CDATA[Blog]]></category> <category><![CDATA[Open-source]]></category> <category><![CDATA[Systeme]]></category> <category><![CDATA[backup]]></category> <category><![CDATA[lftp]]></category> <category><![CDATA[site web]]></category><guid
isPermaLink="false">http://blog.nicolargo.com/?p=3223</guid> <description><![CDATA[A moins d&#8217;être très joueur (ou fou), la sauvegarde de son site Internet doit être pensée et mise en œuvre dès le début d&#8217;un projet. Voici une solution basée sur une solution libre (lftp) qui sera très facile de caser dans une crontab pour automatiser cette tache ingrate. L&#8217;architecture est la suivante: Il faut disposer: [...]]]></description> <content:encoded><![CDATA[<p>A moins d&#8217;être très joueur (ou fou), la sauvegarde de son site Internet doit être pensée et mise en œuvre dès le début d&#8217;un projet. Voici une solution basée sur une solution libre (lftp) qui sera très facile de caser dans une <a
href="http://fr.wikipedia.org/wiki/Crontab">crontab</a> pour automatiser cette tache ingrate.</p><p>L&#8217;architecture est la suivante:</p><p><a
href="http://blog.nicolargo.com/wp-content/uploads/2010/06/Backup-site-FTP.png" rel="lightbox[3223]"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large wp-image-3224" title="Backup site FTP" src="http://blog.nicolargo.com/wp-content/uploads/2010/06/Backup-site-FTP-580x223.png" alt="" width="580" height="223" /></a>Il faut disposer:</p><ul><li>d&#8217;un serveur Web avec un accès FTP (ce qui est le plus standard chez les hébergeurs)</li><li>d&#8217;un PC de backup connecté en permanence à Internet (histoire d&#8217;automatiser le backup)</li></ul><h1>Préparation du PC de backup</h1><p>Pas grand chose à installer mis à part l&#8217;indispensable client FTP lftp qui va nous permettre de faire un backup incrémental (seul les nouveaux fichiers seront téléchargés).</p><p>Exemple d&#8217;installation de lftp sous Ubuntu (à adapter à votre OS&#8230;):</p><pre class="brush: bash;">sudo aptitude install lftp</pre><p>On créé ensuite un répertoire dans lequel le site Web/blo  sera sauvegardé.</p><pre class="brush: bash;">mkdir ~/backup</pre><h1>Configuration de la sauvegarde</h1><p>On édite le fichier ~/monsite.lftp avec les informations suivantes (à adapter à vos besoins):</p><pre class="brush: bash;">

set ftp:list-options -a
set cmd:fail-exit true
set ftp:ssl-allow false
set ftp:passive-mode on
set net:timeout 10
set net:max-retries 2
set net:reconnect-interval-base 5
set net:reconnect-interval-multiplier 1

open -p 21 login:password@monsite.com
lcd ~/backup
mirror -e -x dossier-a-exclure/

quit
</pre><p>On teste la sauvegarde:</p><pre class="brush: bash;">

lftp -f ~/monsite.lftp
</pre><p>Et voilà, le répertoire ~/backup devrait contenir une image exacte de votre site Internet !</p><p>Il ne reste plus qu&#8217;à automatiser le backup toutes les nuits (crontab -e):</p><pre class="brush: bash;">

0 1 * * * lftp ~/monsite.lftp
</pre><h1>Et si je veux sauver ma base de données WordPress ?</h1><p>Bonne question Michel&#8230; Personnellement j&#8217;utilise le plugin <a
href="http://wordpress.org/extend/plugins/wp-dbmanager/">WP-DatabaseManager</a> qui me permet de:</p><ul><li>sauvegarder ma base de donnée dans un des répertoire de mon site Web (donc le backup se fera automatiquement avec la procédure décrite ci-dessus)</li><li>optimiser ma base de donnée</li><li>restaurer si besoin ma base de donnée</li></ul><p>Et vous, comment faite vous la sauvegarde de votre site ?</p><div
id="aspdf"> <a
href="http://blog.nicolargo.com/wp-content/plugins/as-pdf/generate.php?post=3223"> <span> </span> </a></div> ]]></content:encoded> <wfw:commentRss>http://blog.nicolargo.com/2010/06/sauvegarde-automatique-de-son-site-internet.html/feed</wfw:commentRss> <slash:comments>10</slash:comments> </item> <item><title>Un blog WordPress local pour vos développements</title><link>http://blog.nicolargo.com/2010/04/un-blog-wordpress-local-pour-vos-developpements.html</link> <comments>http://blog.nicolargo.com/2010/04/un-blog-wordpress-local-pour-vos-developpements.html#comments</comments> <pubDate>Fri, 30 Apr 2010 11:00:30 +0000</pubDate> <dc:creator>NicoLargo</dc:creator> <category><![CDATA[Blog]]></category> <category><![CDATA[Developpement]]></category> <category><![CDATA[Open-source]]></category> <category><![CDATA[debian]]></category> <category><![CDATA[lamp]]></category> <category><![CDATA[linux]]></category> <category><![CDATA[ubuntu]]></category> <category><![CDATA[wordpress]]></category><guid
isPermaLink="false">http://blog.nicolargo.com/?p=2975</guid> <description><![CDATA[Envie de vous lancer dans le développement de votre propre thème WordPress ? Envie tester votre dernier plugin sur une copie de votre blog sans impact pour vos lecteurs ? Envies de tester cette fameuses version 3.0bêta de WordPress ? Ces quelques exemples justifient l&#8217;installation en local (donc disponible même sans liaison Internet), sur votre [...]]]></description> <content:encoded><![CDATA[<p><a
href="http://blog.nicolargo.com/wp-content/uploads/2008/03/wordpresslogo.jpg" rel="lightbox[2975]"><img
style=' float: right; padding: 4px; margin: 0 0 2px 7px;'  class="alignright size-full wp-image-832" title="wordpresslogo.jpg" src="http://blog.nicolargo.com/wp-content/uploads/2008/03/wordpresslogo.jpg" alt="" width="322" height="69" /></a>Envie de vous lancer dans le développement de votre propre thème WordPress ? Envie tester votre dernier plugin sur une copie de votre blog sans impact pour vos lecteurs ? Envies de tester cette fameuses version 3.0bêta de WordPress ?</p><p>Ces quelques exemples justifient l&#8217;installation en local (donc disponible même sans liaison Internet), sur votre PC GNU/Linux d&#8217;un environnement de développement de blog complet. Celui-ci se composera:</p><ul><li>d&#8217;un serveur LAMP à jour (Linux, Apache, MySQL, PHP)</li><li>de la dernière version de WordPress</li><li>de votre IDE préférée (Bluefish, Eclipse, Anjuta, NetBeans, Emacs, vi&#8230;)</li></ul><p><span
id="more-2975"></span></p><h1>Installation de LAMP</h1><p>En deux lignes de commande, sous Debian ou Ubuntu:</p><pre class="brush: bash;">

sudo tasksel install lamp-server
sudo /etc/init.d/apache2 restart
</pre><p>Lors de l&#8217;installation, un mot de passe vous sera demandé (deux fois). C&#8217;est celui-ci qui sera utilisé pour administrer votre base de donnée MySQL (utilisateur root).</p><p>Pour vérifier l&#8217;installation de votre serveur Web local, le plus simple est d&#8217;ouvrir le navigateur du PC et de saisir l&#8217;adresse <a
href="http://127.0.0.1/">http://127.0.0.1/</a> (qui est toujours l&#8217;adresse de votre PC ou adresse de loopback pour les intimes). La page suivante devrait apparaitre:</p><p
style="text-align: center;"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="size-full wp-image-2977 aligncenter" title="screenshot_001" src="http://blog.nicolargo.com/wp-content/uploads/2010/04/screenshot_001-e1270930276672.png" alt="" width="589" height="173" /><em>Test de LAMP</em></p><h1>Installation de WordPress</h1><p>On passe ensuite à l&#8217;installation de WordPress (je teste la version 3.0 en bêta 1, qui sortira prochainement).</p><pre class="brush: bash;">

mkdir ~/src
cd ~/src
wget http://wordpress.org/wordpress-3.0-beta1.zip
unzip wordpress-3.0-beta1.zip
cd wordpress
sudo cp -r * /var/www/

cd /var/www
sudo rm index.html
sudo touch wp-config.php
sudo chmod u+rw wp-config.php
sudo chown -R www-data:www-data *
</pre><h1>Configuration de la base de données</h1><p>Le plus simple pour les béotiens est d&#8217;installer l&#8217;interface Web d&#8217;administration de MySQL nommée PHPMyAdmin :</p><pre class="brush: bash;">

sudo aptitude install phpmyadmin
</pre><p>Puis de se rendre à l&#8217;URL suivante: <a
href="http://127.0.0.1/phpmyadmin">http://127.0.0.1/phpmyadmin</a> (login: root, password: celui entré lors de l&#8217;installation) puis:</p><ul><li>cliquer sur <strong>base de données</strong></li><li>dans la section <strong>créer une base de donnée</strong>, entrer <strong>blog</strong></li><li>cliquer sur le bouton <strong>créer</strong></li><li>cliquer sur <strong>privilège </strong></li><li>cliquer sur <strong>ajouter un utilisateur</strong></li><li>saisir un <strong>nom d&#8217;utilisateur</strong> puis un <strong>mot de passe</strong></li><li>cliquer enfin sur <strong>executer</strong></li></ul><h1>Configuration de WordPress</h1><p>Il faut se rendre à l&#8217;adresse suivante: <a
href="http://127.0.0.1/wp-admin/install.php">http://127.0.0.1/wp-admin/install.php</a></p><p>Il faut cliquer sur le bouton &#8220;Create a configuration file&#8221; puis entrer les informations suivantes:</p><p
style="text-align: left;"><a
href="http://blog.nicolargo.com/wp-content/uploads/2010/04/Sélection_001.png" rel="lightbox[2975]"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="size-medium wp-image-3069 aligncenter" title="WP config" src="http://blog.nicolargo.com/wp-content/uploads/2010/04/Sélection_001-300x141.png" alt="" width="300" height="141" /></a></p><p
style="text-align: left;">Puis à configurer votre Blog:</p><p
style="text-align: left;"><a
href="http://blog.nicolargo.com/wp-content/uploads/2010/04/Sélection_0011.png" rel="lightbox[2975]"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-medium wp-image-3070" title="Sélection_001" src="http://blog.nicolargo.com/wp-content/uploads/2010/04/Sélection_0011-300x173.png" alt="" width="300" height="173" /></a></p><p>On finalise en sécurisant le fichier de configuration:</p><pre class="brush: bash;">
sudo chmod a-w wp-config.php
</pre><p>Et voilà le travail, votre blog local sera donc:</p><ul><li> accessible par l&#8217;URL: <a
href="http://127.0.0.1/">http://127.0.0.1/</a></li><li>administrable par l&#8217;URL: <a
href="http://127.0.0.1/wp-admin/">http://127.0.0.1/wp-admin/</a></li></ul><p>Il ne reste plus qu&#8217;a installer votre environnement de développement favori, personnellement pour le Web Dev, j&#8217;utilise <a
href="http://bluefish.openoffice.nl/">Bluefish</a> qui est bien adapté pour le PHP/CSS</p><div
id="aspdf"> <a
href="http://blog.nicolargo.com/wp-content/plugins/as-pdf/generate.php?post=2975"> <span> </span> </a></div> ]]></content:encoded> <wfw:commentRss>http://blog.nicolargo.com/2010/04/un-blog-wordpress-local-pour-vos-developpements.html/feed</wfw:commentRss> <slash:comments>7</slash:comments> </item> <item><title>Comment je diffuse sur Twitter et Identi.ca</title><link>http://blog.nicolargo.com/2010/04/comment-je-diffuse-sur-twitter-et-identi-ca.html</link> <comments>http://blog.nicolargo.com/2010/04/comment-je-diffuse-sur-twitter-et-identi-ca.html#comments</comments> <pubDate>Wed, 14 Apr 2010 13:56:51 +0000</pubDate> <dc:creator>NicoLargo</dc:creator> <category><![CDATA[Blog]]></category> <category><![CDATA[Web]]></category> <category><![CDATA[diffusion]]></category> <category><![CDATA[identi.ca]]></category> <category><![CDATA[twitter]]></category><guid
isPermaLink="false">http://blog.nicolargo.com/?p=2987</guid> <description><![CDATA[En une image, une explication de comment je diffuse mes informations sur les réseaux sociaux Twitter et Identi.ca. Et vous comment ça marche ?]]></description> <content:encoded><![CDATA[<p>En une image, une explication de comment je diffuse mes informations sur les réseaux sociaux <a
href="http://twitter.com/nicolargo">Twitter</a> et <a
href="http://identi.ca/nicolargo/">Identi.ca</a>.</p><p><a
href="http://blog.nicolargo.com/wp-content/uploads/2010/04/messervicesweb2-v1.png" rel="lightbox[2987]"><img
src="http://blog.nicolargo.com/wp-content/uploads/2010/04/messervicesweb2-v1-580x435.png" alt="" title="messervicesweb2-v1" width="580" height="435" class="alignnone size-large wp-image-2990" /></a></p><p>Et vous comment ça marche ?</p><div
id="aspdf"> <a
href="http://blog.nicolargo.com/wp-content/plugins/as-pdf/generate.php?post=2987"> <span> </span> </a></div> ]]></content:encoded> <wfw:commentRss>http://blog.nicolargo.com/2010/04/comment-je-diffuse-sur-twitter-et-identi-ca.html/feed</wfw:commentRss> <slash:comments>6</slash:comments> </item> </channel> </rss>
<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using memcached
Page Caching using memcached
Database Caching 4/32 queries in 0.047 seconds using memcached
Object Caching 906/965 objects using memcached

Served from: blog.nicolargo.com @ 2010-09-02 20:22:58 -->