<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet title="XSL formatting" type="text/xsl" href="http://www.bonz.org/tech/feed/rss2/xslt" ?><rss version="2.0"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:wfw="http://wellformedweb.org/CommentAPI/"
  xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
  <title>ZenTech - dotclear 2</title>
  <link>http://www.bonz.org/tech/</link>
  <description>Om Mani Padme Hum</description>
  <language>fr</language>
  <pubDate>Tue, 16 Dec 2008 23:57:46 +0100</pubDate>
  <copyright></copyright>
  <docs>http://blogs.law.harvard.edu/tech/rss</docs>
  <generator>Dotclear</generator>
  
    
  <item>
    <title>Un blog bien sous tout rapport</title>
    <link>http://www.bonz.org/tech/post/2008/02/14/Un-blog-bien-sous-tout-rapport</link>
    <guid isPermaLink="false">urn:md5:0389153de5dab650769cc255f2f8d6cb</guid>
    <pubDate>Thu, 14 Feb 2008 16:39:00 +0100</pubDate>
    <dc:creator>hr</dc:creator>
        <category>système</category>
        <category>dotclear 2</category><category>freebsd</category><category>lighttpd</category><category>lighttpd 1.4</category>    
    <description>&lt;p&gt;Ce blog est un &lt;a href=&quot;http://dev.dotclear.net/2.0/&quot;&gt;dotclear 2&lt;/a&gt; installé sur un système &lt;a href=&quot;http://www.freebsd.org/&quot;&gt;FreeBSD&lt;/a&gt; et servi par un &lt;a href=&quot;http://www.lighttpd.net/&quot;&gt;lighty&lt;/a&gt;. J'ai choisi dotclear pour la possibilité de gérer de multiples blogs à partir d'un seul code, &lt;a href=&quot;http://www.wordpress.com/&quot;&gt;wordpress&lt;/a&gt; ne donnait pas cette possibilité simplement au moment de mon choix. Mon premier déploiement n'a pas été fait dans les règles FreeBSD, il est temps de remédier à cet insupportable état de fait.&lt;/p&gt;    &lt;p&gt;Les applications web sont déployées dans &lt;code&gt;/usr/local/www&lt;/code&gt; sous FreeBSD, le contenu des sites se trouve dans &lt;code&gt;/usr/local/www/data&lt;/code&gt;.&lt;/p&gt;
&lt;pre&gt;
# cd /usr/local/www
# tar zxvf ~/src/dotclear-2.0-beta7.tar.gz
# mv dotclear dotclear2
&lt;/pre&gt;

&lt;p&gt;Le renommage du répertoire permet d'éviter un conflit dans l'éventualité de l'installation d'un dotclear 1.&lt;/p&gt;


&lt;p&gt;Une fois le blog installé, il faut le &lt;a href=&quot;http://doc.dotclear.net/2.0/admin/install&quot;&gt;configurer&lt;/a&gt;. La configuration de lighty est très simple, il suffit d'ajouter l'alias suivant pour un blog qui est atteint par http://www.bon.org/blog par exemple&amp;nbsp;:&lt;/p&gt;
&lt;pre&gt;
alias.url += (
        &amp;quot;/blog&amp;quot; =&amp;gt; &amp;quot;/usr/local/www/dotclear2&amp;quot;
)
&lt;/pre&gt;

&lt;p&gt;La suite de la configuration a déjà été abordée dans un autre &lt;a href=&quot;http://www.bonz.org/tech/post/2007/11/07/Et-si-je-racontais-ma-vie-avec-lighttpd&quot;&gt;billet&lt;/a&gt;.&lt;/p&gt;


&lt;p&gt;Finalement la modification est assez mineure et revient uniquement à modifier le chemin d'alias pour tous les blogs hormis celui par défaut et ajouter un alias pour celui-ci.&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>ALETER Out of memory</title>
    <link>http://www.bonz.org/tech/post/2008/02/13/ALETER-Out-of-memory</link>
    <guid isPermaLink="false">urn:md5:9804e411ea169baee893505ddeed88e0</guid>
    <pubDate>Wed, 13 Feb 2008 18:29:00 +0100</pubDate>
    <dc:creator>hr</dc:creator>
        <category>système</category>
        <category>dotclear 2</category><category>freebsd</category><category>mysql5</category>    
    <description>&lt;p&gt;Si comme &lt;a href=&quot;http://fr.wikipedia.org/wiki/Le_Monde_de_Nemo&quot;&gt;Doris&lt;/a&gt; vous avez de petits problèmes de mémoire avec &lt;a href=&quot;http://dev.dotclear.net/2.0/&quot;&gt;dotclear 2&lt;/a&gt; (dc2 beta7) lors du chargement de la page d'administration des utilisateurs, le problème vient probablement de MySQL.&lt;/p&gt;    &lt;p&gt;Je me retrouve actuellement devant l'erreur suivante lorsque j'essaie d'administrer mes utilisateurs via l'interface d'administration&amp;nbsp;:&lt;/p&gt;
&lt;pre&gt;Out of memory; restart server and try again (needed 65528 bytes) (1037)
&lt;/pre&gt;

&lt;p&gt;&lt;img src=&quot;http://www.bonz.org/tech/public/tech/out_of_memory_dc2.png&quot; alt=&quot;Out of memory&quot; style=&quot;display:block; margin:0 auto;&quot; /&gt;
Le problème me semble venir du serveur MySQL, une petite recherche &lt;a href=&quot;http://www.google.com/search?q=Out+of+memory%3B+restart+server+and+try+again&amp;amp;ie=utf-8&amp;amp;oe=utf-8&amp;amp;aq=t&amp;amp;rls=com.ubuntu:en-US:official&amp;amp;client=firefox-a&quot;&gt;google&lt;/a&gt; me conforte dans cette idée, je mets donc un peu de code de debug dans &lt;code&gt;admin/users.php&lt;/code&gt; et je me retrouve avec cette requête SQL dantesque  générée par la fonction &lt;code&gt;getUsers()&lt;/code&gt;&amp;nbsp;:&lt;/p&gt;
&lt;pre&gt;SELECT U.user_id,user_super,user_status,user_pwd,user_name,user_firstname,user_displayname,user_email,user_url,user_desc, user_lang,user_tz, user_post_status,user_options, count(P.post_id) AS nb_post FROM dc_user U LEFT JOIN dc_post P ON U.user_id = P.user_id WHERE NULL IS NULL GROUP BY U.user_id,user_super,user_status,user_pwd,user_name,user_firstname,user_displayname,user_email,user_url,user_desc, user_lang,user_tz,user_post_status,user_options ORDER BY U.user_id ASC  LIMIT 30 OFFSET 0;
&lt;/pre&gt;

&lt;p&gt;Je comprends bien pourquoi mon petit serveur râle, devant l'adversité je me plie et je reconfigure mon serveur dans &lt;code&gt;/var/db/mysql/my.cnf&lt;/code&gt; en modifiant une seule ligne&amp;nbsp;:&lt;/p&gt;
&lt;pre&gt;sort_buffer_size = 128K
&lt;/pre&gt;

&lt;p&gt;Après un redémarrage du serveur MySQL, tout rentre dans l'ordre et everybody is content.
&lt;img src=&quot;http://www.bonz.org/tech/public/tech/users_dc2.png&quot; alt=&quot;Utilisateurs&quot; style=&quot;display:block; margin:0 auto;&quot; /&gt;&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Et si je racontais ma vie avec lighttpd</title>
    <link>http://www.bonz.org/tech/post/2007/11/07/Et-si-je-racontais-ma-vie-avec-lighttpd</link>
    <guid isPermaLink="false">urn:md5:a4826e05ee7e98ad922bb3de21dfeaf2</guid>
    <pubDate>Wed, 07 Nov 2007 00:37:00 +0100</pubDate>
    <dc:creator>hr</dc:creator>
        <category>système</category>
        <category>dotclear 2</category><category>lighttpd</category><category>lighttpd 1.4</category>    
    <description>&lt;p&gt;&lt;img src=&quot;http://www.dotclear.net/images/logo.png&quot; alt=&quot;logo dotclear&quot; style=&quot;float:right; margin: 0 0 1em 1em;&quot; /&gt;La France serait un des pays &lt;a href=&quot;http://archquo.nouvelobs.com/cgi/articles?ad=multimedia/20061116.REU48835.html&amp;amp;host=http://permanent.nouvelobs.com/&quot;&gt;comptant le plus de blogueurs&lt;/a&gt;, il n'y avait donc aucune raison que je fasse exception. Le problème étant que je souhaite séparer mes publications techniques de mes publications &quot;3615 MyLife&quot;. Comment donc faire fonctionner 2 blogs avec une seule version du code de &lt;a href=&quot;http://dev.dotclear.net/2.0/&quot;&gt;dotclear 2.0&lt;/a&gt;  et &lt;a href=&quot;http://www.lighttpd.net/&quot;&gt;lighty&lt;/a&gt;&amp;nbsp;?&lt;/p&gt;    &lt;p&gt;J'ai déjà expliqué, dans un &lt;a href=&quot;http://www.bonz.org/tech/post/2007/03/30/Et-si-on-mangeait-light&quot;&gt;post précédent&lt;/a&gt;, comment installer un dotclear 2.0 correctement avec lighty. En repartant de cette configuration, on va faire en sorte de créer un second blog sous l'url &lt;code&gt;http://www.bonz.org/tech/&lt;/code&gt; en utilisant le code placé dans le répertoire &lt;code&gt;/blog/&lt;/code&gt;. Sur mon serveur, ce code se trouve dans le répertoire &lt;code&gt;/usr/local/www/data/www.bonz.org/blog/&lt;/code&gt;.&lt;br /&gt;
L'intérêt d'un tel montage se trouve dans le partage du code du blog, la mise à jour de ce code se fait donc à la fois pour tous les blogs en un seul emplacement. Le partage de la zone publique dans laquelle se trouve les fichiers multimedia et le partage des thèmes. Dans l'ensemble on évite la duplication d'information.&lt;/p&gt;


&lt;p&gt;On va commencer par créer un nouveau blog via l'interface d'administration de dc2. Le lien &quot;Blogs&quot; dans la colonne de gauche, permet d'obtenir la liste des blogs gérés par le site. La création d'un nouveau blog se fait par le lien &quot;Créer un nouveau blog&quot;, les informations importantes sont l'identifiant et l'adresse du blog, respectivement &lt;code&gt;tech&lt;/code&gt; et &lt;code&gt;http://www.bonz.org/tech/&lt;/code&gt;.
&lt;img src=&quot;http://www.bonz.org/tech/public/tech/dc2_newblog.png&quot; alt=&quot;dc2 new blog&quot; style=&quot;display:block; margin:0 auto;&quot; /&gt;
Après avoir sélectionné le nouveau blog dans la liste déroulante du haut, utiliser le lien &quot;about:config&quot; dans les extensions pour obtenir l'accès à certaines variables de configuration. La variable &lt;strong&gt;&lt;code&gt;public_url&lt;/code&gt;&lt;/strong&gt; doit avoir la valeur &lt;code&gt;/tech/public&lt;/code&gt; et la variable &lt;strong&gt;&lt;code&gt;themes_url&lt;/code&gt;&lt;/strong&gt; la valeur &lt;code&gt;/tech/themes&lt;/code&gt;. Maintenant que le blog est correctement configuré, on peut passer à la configuration de lighty.&lt;/p&gt;


&lt;p&gt;La méthode consiste à créer un alias de lien en premier lieu et de réécrire les adresses ensuite. Pour créer un alias de lien, rien de plus facile.&lt;/p&gt;
&lt;pre&gt;
alias.url += (
        &amp;quot;/tech&amp;quot; =&amp;gt; &amp;quot;/usr/local/www/data/www.bonz.org/blog&amp;quot;
)
&lt;/pre&gt;

&lt;p&gt;Je crée un alias entre l'url &lt;code&gt;http://www.bonz.org/tech&lt;/code&gt; et le chemin système correspondant au code de mon blog. Je dois maintenant indiquer à dotclear 2 que je veux utiliser le blog dont l'identifiant est &quot;tech&quot;.&lt;/p&gt;
&lt;pre&gt;
# Dotclear2 env variable to get the right blog id
$HTTP[&amp;quot;url&amp;quot;] =~ &amp;quot;^/tech/&amp;quot; {  
    setenv.add-environment = (
        &amp;quot;DC_BLOG_ID&amp;quot; =&amp;gt; &amp;quot;tech&amp;quot;
    )
}
&lt;/pre&gt;

&lt;p&gt;Le code de dotclear embarque un système permettant de passer cette information par une variable d'environnement. Les réécritures se font sur le même principe que celui exposé dans mon &lt;a href=&quot;http://www.bonz.org/tech/post/2007/03/30/Et-si-on-mangeait-light&quot;&gt;billet précédent sur le sujet&lt;/a&gt;.&lt;/p&gt;
&lt;pre&gt;
url.rewrite-once += (
    &amp;quot;^/tech/(archive.*)&amp;quot; =&amp;gt; &amp;quot;/tech/index.php/$1&amp;quot;,
    &amp;quot;^/tech/(category.*)&amp;quot; =&amp;gt; &amp;quot;/tech/index.php/$1&amp;quot;,
    &amp;quot;^/tech/(feed.*)&amp;quot; =&amp;gt; &amp;quot;/tech/index.php/$1&amp;quot;,
    &amp;quot;^/tech/(page.*)&amp;quot; =&amp;gt; &amp;quot;/tech/index.php/$1&amp;quot;,
    &amp;quot;^/tech/(post.*)&amp;quot; =&amp;gt; &amp;quot;/tech/index.php/$1&amp;quot;,
    &amp;quot;^/tech/(tag.*)&amp;quot; =&amp;gt; &amp;quot;/tech/index.php/$1&amp;quot;,
    &amp;quot;^/tech/(trackback.*)&amp;quot; =&amp;gt; &amp;quot;/tech/index.php/$1&amp;quot;
)
&lt;/pre&gt;

&lt;p&gt;Il faut penser à mettre en place les quelques protections d'accès déjà abordées sur les répertoires sensibles.&lt;/p&gt;


&lt;p&gt;La configuration est terminée, après un redémarrage de lighty tout devrait se passer sans encombres!&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Et si on mangeait light</title>
    <link>http://www.bonz.org/tech/post/2007/03/30/Et-si-on-mangeait-light</link>
    <guid isPermaLink="false">urn:md5:eac365821039a6038128c48882b46244</guid>
    <pubDate>Fri, 30 Mar 2007 16:54:00 +0200</pubDate>
    <dc:creator>hr</dc:creator>
        <category>système</category>
        <category>dotclear 2</category><category>freebsd</category><category>lighttpd</category><category>lighttpd 1.4</category>    
    <description>&lt;p&gt;&lt;img src=&quot;http://www.bonz.org/tech/public/tech/300_cokezero.jpg&quot; alt=&quot;coke zero&quot; style=&quot;float:right; margin: 0 0 1em 1em;&quot; /&gt;Il  y a toujours un moment dans la vie où on se dit qu'on mange trop lourd et qu'il faudrait faire attention et que j'ai pris du gras de là. il n'y a pas longtemps c'est ma passerelle qui m'a dit ça. Alors hop un p'tit coup de régime, un avis de la part d'un &lt;a href=&quot;http://imil.net/&quot; hreflang=&quot;fr&quot;&gt;ami diététicien&lt;/a&gt; et c'est parti.
&lt;a href=&quot;http://www.lighttpd.net/&quot;&gt;lighttpd&lt;/a&gt; s'installe sans probléme sur un freebsd6.2 (lighttpd-1.4.13_2) et dès le premier démarrage, sans php, HAHAHA la blague.&lt;/p&gt;    &lt;pre&gt;
[root@backdoor ~]# ps ax -o 'user pid %cpu %mem command' -w|grep www
www      36654  0.0  0.7 /usr/local/sbin/lighttpd -f /usr/local/etc/lighttpd/lighttpd.conf
&lt;/pre&gt;

&lt;p&gt;A titre de comparaison, le port apache-1.3.37_2 sous freebsd, lancé avec la conf par défaut me donne ça&amp;nbsp;:&lt;/p&gt;
&lt;pre&gt;
[root@backdoor ~]# ps ax -o 'user pid %cpu %mem command' -w|grep www
www      49868  0.0  0.8  2716  2136  ??  S     2:25PM   0:00.01 /usr/local/sbin/httpd
www      49869  0.0  0.8  2716  2136  ??  S     2:25PM   0:00.01 /usr/local/sbin/httpd
www      49870  0.0  0.8  2716  2136  ??  S     2:25PM   0:00.01 /usr/local/sbin/httpd
www      49871  0.0  0.8  2716  2136  ??  S     2:25PM   0:00.01 /usr/local/sbin/httpd
www      49872  0.0  0.8  2716  2136  ??  S     2:25PM   0:00.01 /usr/local/sbin/httpd
&lt;/pre&gt;

&lt;p&gt;La bonne blague donc, il suffit ensuite d'installer php en version FastCgi et de donner le chemin vers le binaire fcgi à lighttpd&amp;nbsp;:&lt;/p&gt;
&lt;pre&gt;
fastcgi.server = ( &amp;quot;.php&amp;quot; =&amp;gt; ((
        &amp;quot;bin-path&amp;quot; =&amp;gt; &amp;quot;/usr/local/bin/php-cgi&amp;quot;,
        &amp;quot;socket&amp;quot; =&amp;gt; &amp;quot;/tmp/php.socket&amp;quot;)))
&lt;/pre&gt;

&lt;p&gt;Un petit restart et des processus &lt;code&gt;php-cgi&lt;/code&gt; apparaissent dans le sillage de notre serveur http sous aspartame.&lt;br /&gt;&lt;/p&gt;


&lt;p&gt;Dans la foulée je m'installe un &lt;a href=&quot;http://dev.dotclear.net/2.0/&quot;&gt;dotclear2&lt;/a&gt; et à condition de mettre une petite série de règles de réécriture, je peux même me faire de jolies URL pour les billets.&lt;/p&gt;
&lt;pre&gt;
url.rewrite-once += (
    &amp;quot;^/blog/(archive.*)&amp;quot; =&amp;gt; &amp;quot;/blog/index.php/$1&amp;quot;,
    &amp;quot;^/blog/(category.*)&amp;quot; =&amp;gt; &amp;quot;/blog/index.php/$1&amp;quot;,
    &amp;quot;^/blog/(feed.*)&amp;quot; =&amp;gt; &amp;quot;/blog/index.php/$1&amp;quot;,
    &amp;quot;^/blog/(page.*)&amp;quot; =&amp;gt; &amp;quot;/blog/index.php/$1&amp;quot;,
    &amp;quot;^/blog/(post.*)&amp;quot; =&amp;gt; &amp;quot;/blog/index.php/$1&amp;quot;,
    &amp;quot;^/blog/(tag.*)&amp;quot; =&amp;gt; &amp;quot;/blog/index.php/$1&amp;quot;,
    &amp;quot;^/blog/(trackback.*)&amp;quot; =&amp;gt; &amp;quot;/blog/index.php/$1&amp;quot;
)
$HTTP[&amp;quot;url&amp;quot;] =~ &amp;quot;/blog/(CHANGELOG|db|inc|cache|plugins)&amp;quot; {
    url.access-deny = (&amp;quot;&amp;quot;)
}
&lt;/pre&gt;

&lt;p&gt;Alors pour résumer, un fichier de configuration simpilissime à prendre en main, un système de modules niquel, une empreinte mémoire aussi imposante qu'un &lt;a href=&quot;http://fr.wikipedia.org/wiki/Pez&quot;&gt;PEZ&lt;/a&gt; et un système de vhosts que ma mère peut comprendre. Une vraie tuerie, seul bémol, l'absence de système ala &lt;code&gt;.htaccess&lt;/code&gt; qui, il faut l'avouer, est carrément convi (mais consommateur à chaque accès).&lt;/p&gt;</description>
    
    
    
      </item>
    
</channel>
</rss>