<?xml 
version="1.0" encoding="utf-8"?><?xml-stylesheet title="XSL formatting" type="text/xsl" href="https://falconnet.eu/spip.php?page=backend.xslt" ?>
<rss version="2.0" 
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:atom="http://www.w3.org/2005/Atom"
>

<channel xml:lang="fr">
	<title>Julien FALCONNET, Informaticien Ind&#233;pendant</title>
	<link>https://falconnet.fr/</link>
	<description>Julien FALCONNET est informaticien freelance sp&#233;cialiste des questions Internet. Conseil en strat&#233;gie Internet, r&#233;alisation de sites web et r&#233;f&#233;rencement sont ses principales prestations.
Vous trouverez aussi ici un certain nombre d'astuces et d'aides sur diff&#233;rents probl&#232;mes li&#233;s &#224; Internet.</description>
	<language>fr</language>
	<generator>SPIP - www.spip.net</generator>
	<atom:link href="https://falconnet.eu/spip.php?id_rubrique=1&amp;page=backend" rel="self" type="application/rss+xml" />




<item xml:lang="fr">
		<title>Migrer un serveur de production</title>
		<link>https://falconnet.eu/Migrer-un-serveur-de-production.html</link>
		<guid isPermaLink="true">https://falconnet.eu/Migrer-un-serveur-de-production.html</guid>
		<dc:date>2013-10-31T11:48:02Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Julien Falconnet</dc:creator>



		<description>
&lt;p&gt;Ca y est ! L'heure fatidique est arriv&#233;e, votre serveur web de production doit migrer vers un nouveau serveur. Quelques nuits blanches en perspective et une bonne dose d'adr&#233;naline dans le sang vous d&#233;cidez enfin de prendre le taureau par les cornes. &lt;br class='autobr' /&gt;
Voici quelques &#233;tapes que j'ai du mettre en place. &lt;br class='autobr' /&gt; Cadre La migration s'effectue entre deux serveurs chez online.net. L'ancien (que l'on appellera Aragorn) part &#224; la d&#233;charge, ils m'en ont gracieusement propos&#233; un nouveau (que l'on (&#8230;)&lt;/p&gt;


-
&lt;a href="https://falconnet.eu/-Administration-.html" rel="directory"&gt;Linux&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_chapo'&gt;&lt;p&gt;Ca y est ! L'heure fatidique est arriv&#233;e, votre serveur web de production doit migrer vers un nouveau serveur. Quelques nuits blanches en perspective et une bonne dose d'adr&#233;naline dans le sang vous d&#233;cidez enfin de prendre le taureau par les cornes.&lt;/p&gt;
&lt;p&gt;Voici quelques &#233;tapes que j'ai du mettre en place.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;h2 class=&#034;spip&#034;&gt;Cadre&lt;/h2&gt;
&lt;p&gt;La migration s'effectue entre deux serveurs chez online.net. L'ancien (que l'on appellera Aragorn) part &#224; la d&#233;charge, ils m'en ont gracieusement propos&#233; un nouveau (que l'on appellera Elessar) plus puissant sensiblement au m&#234;me prix. Par contre, c'est un serveur d&#233;di&#233; donc &#224; moi le cambouis de la migration.&lt;/p&gt;
&lt;p&gt;Au niveau syst&#232;me d'exploitation, on en profite pour passer de Debian 6.0.7 &#224; Debian 7.2&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Aragorn : GNU/Linux 2.6.32-5-amd64&lt;/li&gt;&lt;li&gt; Elessar : GNU/Linux 3.2.0-4-amd64&lt;/li&gt;&lt;/ul&gt;&lt;h2 class=&#034;spip&#034;&gt;Etape 1 : installer le nouveau serveur&lt;/h2&gt;
&lt;p&gt;installer le nouveau serveur(Elessar) ici un Debian 7.2&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Pour online, l'installation se fait par l'interface l'h&#233;bergeur.&lt;/li&gt;&lt;li&gt; Ensuite premi&#232;re connexion en ssh root&lt;/li&gt;&lt;li&gt; Mise &#224; jour des paquets
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;apt-get update
apt-get upgrade&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Prendre quelques informations sur la machine (et bien les garder quelque part)
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;uname -a
more /etc/debian_version cat /proc/cpuinfo free
free -h
more /etc/debian_version
/sbin/ifconfig df df -h
netstat -ltp&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt; S&#233;curiser ssh
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Installer un acc&#232;s par clef sur un des utilisateur (Attention ne pas sauter cette &#233;tape sinon vous n'aurez plus acc&#232;s &#224; votre machine)
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;ssh-copy-id utilisateur@000.000.000.000&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt; Modifier l'acc&#232;s ssh pour : changer le port par d&#233;faut, emp&#234;cher le login root et emp&#234;cher le login par mdp.
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;vi /etc/ssh/sshd_config &gt;&gt;Port {XXXX} (ou XXX est un port non standart)
...
&gt;&gt;PermitRootLogin {{no}} ...
&gt;&gt;PasswordAuthentication {{no}}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt; Relancer le serveur ssh pour que les modifications soient prisent en compte
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;/etc/init.d/ssh restart&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt; modifier en local dans .ssh/config le num&#233;ro du port&lt;/li&gt;&lt;li&gt; Tester une connexion par clef.&lt;br class='autobr' /&gt;
&lt;i&gt;PS : pourquoi s&#233;curiser tout de suite ? Parce que si vous vous trompez vous &#234;tes bon pour recommencer l'installation.&lt;/i&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt; V&#233;rifier le bon fonctionnement d'exim
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Reconfigurer pour permettre &#224; vos site d'envoyer des mails
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt; dpkg-reconfigure exim4-config&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt; Pour tester :
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;echo &#034;Un message de test&#034; | mail -s &#034;sujet de test&#034; vous@mail.tld&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Installer les paquets n&#233;cessaires :
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; LAMP : jouer sur les d&#233;pendances pour installer le n&#233;cessaire
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;apt-get install mysql-server phpmyadmin&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; NodeJS :
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;apt-get install mongodb build-essential git
wget http://nodejs.org/dist/v0.10.18/node-v0.10.18.tar.gz
tar xvf node-v0.10.18.tar.gz pushd node-v0.10.18/
make
make install&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt; S&#233;curiser les applications serveurs
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; PhpMyadmin : changer au moins la ligne d'alias
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;vi /etc/apache2/conf.d/phpmyadmin.conf &gt;&gt; Alias /unnomquinarienavoiravecphpmysql /usr/share/phpmyadmin&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt; Apache : modifier les lignes
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;vi /etc/apache2/conf.d/security
...
&gt;&gt; ServerSignature Off
...
&gt;&gt; ServerTokens Prod vi /etc/php5/apache2/php.ini ...
&gt;&gt; expose_php = Off&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;&lt;i&gt;ps : attention il existe des guides bien plus s&#233;rieux de s&#233;curisation d'un serveur, je n'indique ici que ce dont j'ai eu besoin.&lt;/i&gt;&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;&#201;tape 2 : en faire le plus possible sans toucher &#224; rien d'important&lt;/h2&gt;&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; faire un maximum de sauvegardes de l'ancien (Aragorn), un Debian 6.0.7.
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;tar -cvzf backup_etc.tar.gz /etc/ &lt;/code&gt;&lt;/li&gt;&lt;li&gt; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;tar -cvzf backup_var.tar.gz /var/ &lt;/code&gt; (on peut faire mieux)&lt;/li&gt;&lt;li&gt; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;tar -cvzf backup_web.tar.gz /sites/ &lt;/code&gt; (pour moi le r&#233;pertoire o&#249; sont stock&#233;s mes sites)&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt; Pr&#233;parer les noms de domaine
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Modifier la zone pour que ww.ndd.tld (avec 2w) redirigent sur le nouveau serveur (Elessar). Faire cela pour tous les sites qui tournent normalement sous www. Si vous avez d'autres sous domaines trouvez une variantes proche (avec un 2 &#224; la fin par exemple).&lt;/li&gt;&lt;li&gt; Pour chaque registrar impliqu&#233; (gandi, phpnet,etc)&lt;/li&gt;&lt;li&gt; Si possible, pr&#233;parez vos nouveaux &#034;fichiers de zone DNS&#034; pour ne plus avoir qu'&#224; les activer. (ou les www dirigent sur le nouveau serveur, Elessar )&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Ramener la configuration des sites
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &#233;tablir un lien ssh entre les deux.&lt;/li&gt;&lt;li&gt; les vhosts r&#233;cup&#233;rer &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;scp -r aragorn.dom.tld:/etc/apache2/sites-available/ /etc/apache2/sites-available/&lt;/code&gt;&lt;/li&gt;&lt;li&gt; les fichiers des sites &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;scp -r aragorn.dom.tld:/sites/* /sites/&lt;/code&gt;&lt;/li&gt;&lt;li&gt; corriger les vhost htaccess pour qu'ils supportent les ww.&lt;/li&gt;&lt;li&gt; comparer les &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;/etc/apache2/mods-enabled/&lt;/code&gt; pour r&#233;activer tous les modules n&#233;cessaires (rewrite, proxy, etc)&lt;/li&gt;&lt;li&gt; Remettre en place un syst&#232;me de sauvegarde !!!&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Faire une premi&#232;re importation temporaire des bases de donn&#233;es pour pouvoir tester que les sites fonctionnent
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;ssh aragorn.dom.tld 'mysqldump -q --skip_trigger -u root -p --database db1 --database db2 --database etc | mysql -u root -p&lt;/code&gt;&lt;/li&gt;&lt;li&gt; Si vous avez import&#233; la base mysql (important pour les user et leur droits sur les bases), les passwords risquent de ne plus fonctionner si comme moi vous passez d'une version 5.1 &#224; une version 5.5. Vous pouvez utiliser la commande &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;mysql_upgrade -u root -p&lt;/code&gt; pour r&#233;soudre ce probl&#232;me.&lt;/li&gt;&lt;li&gt; Recopier les crontab de tous les utilisateurs&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt; Tester TOUS les sites sur ww. (ou les sous domaines modifi&#233;s).&lt;/li&gt;&lt;/ul&gt;&lt;h2 class=&#034;spip&#034;&gt;&#201;tape 3 : bascule &lt;/h2&gt;
&lt;p&gt;Il va falloir ramener les informations les plus fra&#238;ches du serveur de production vers le nouveau. Id&#233;alement, couper l'ancien et tout rediriger sur le nouveau, pour limiter le temps ou une partie des gens seront sur l'ancien.&lt;/p&gt;
&lt;p&gt;Donc il faut faire dans un temps le plus court possible (si ce temps es trop important, il faut mettre les sites en travaux) ;&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; RE migrer les bases de donn&#233;es&lt;/li&gt;&lt;li&gt; RE migrer les fichiers qui bougent (attention aux droits)&lt;/li&gt;&lt;li&gt; sur l'ancien serveur utiliser les htaccess pour rediriger tout le trafic du www vers le ww.&lt;/li&gt;&lt;li&gt; Changer les dns pour y faire dispara&#238;tre l'ancien serveur.&lt;/li&gt;&lt;li&gt; tester, tester, tester et encore tester&lt;/li&gt;&lt;/ul&gt;&lt;h2 class=&#034;spip&#034;&gt;&#201;tape 4 : finaliser&lt;/h2&gt;
&lt;p&gt;La question du temps de propagation des DNS, c'est &#224; dire le temps que les noms de domaines redirigent sur les bons serveurs est toujours une question &#233;pineuse. Il vaut mieux laisser quelques heures, id&#233;alement 24h. Puis :&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &#201;teindre l'ancien serveur pour v&#233;rifier si tout continue d'&#234;tre ok.&lt;/li&gt;&lt;li&gt; remplacer le ww par www dans les htaccess locaux&lt;/li&gt;&lt;li&gt; Rallumer l'ancien serveur et effacer toutes les donn&#233;es possibles.&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>Installation Trac sur h&#233;bergement d&#233;di&#233;</title>
		<link>https://falconnet.eu/Installation-Trac-sur-hebergement.html</link>
		<guid isPermaLink="true">https://falconnet.eu/Installation-Trac-sur-hebergement.html</guid>
		<dc:date>2009-11-24T13:17:33Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Julien Falconnet</dc:creator>



		<description>
&lt;p&gt;&#199;a faisait des ann&#233;es que je tournais autour. On m'en avais parl&#233;, j'en avais vu quelques uns... Mais TRAC &#233;tait toujours rest&#233; la &#034;bonne id&#233;e qu'on adopterai d&#232;s qu'on aurait le temps&#034;. D'un autre c&#244;t&#233;, l'essentiel de mes projet n'impliquaient que moi, donc je m'en sortais tr&#232;s bien avec mon cahier. A deux, &#231;a passait encore. Mais &#224; quatre, j'ai am&#232;rement regrett&#233; de n'avoir pas un suivi de projet connect&#233; &#224; subversion. Je me suis finalement ressaisit et voici le r&#233;sultat de mes recherches. (&#8230;)&lt;/p&gt;


-
&lt;a href="https://falconnet.eu/-Administration-.html" rel="directory"&gt;Linux&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_chapo'&gt;&lt;p&gt;&#199;a faisait des ann&#233;es que je tournais autour. On m'en avais parl&#233;, j'en avais vu quelques uns... Mais &lt;a href=&#034;http://trac.edgewall.org/&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;TRAC&lt;/a&gt; &#233;tait toujours rest&#233; la &#034;bonne id&#233;e qu'on adopterai d&#232;s qu'on aurait le temps&#034;. D'un autre c&#244;t&#233;, l'essentiel de mes projet n'impliquaient que moi, donc je m'en sortais tr&#232;s bien avec mon cahier. A deux, &#231;a passait encore. Mais &#224; quatre, j'ai am&#232;rement regrett&#233; de n'avoir pas un suivi de projet connect&#233; &#224; subversion. Je me suis finalement ressaisit et voici le r&#233;sultat de mes recherches.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;h2 class=&#034;spip&#034;&gt;Choix&lt;/h2&gt;
&lt;p&gt;A titre de pr&#233;ambule, voici les choix que j'ai fait : &lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; version : tracd 0.11.1
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Subversion (&lt;strong&gt;SVN&lt;/strong&gt;) comme gestionnaire de version
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; trac est utilis&#233; en serveur '&lt;a href=&#034;http://trac.edgewall.org/wiki/TracStandalone&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;standalone&lt;/a&gt;' (ind&#233;pendant d'un serveur apache)
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; plusieurs projets sont g&#233;r&#233;s simultan&#233;ment
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; acc&#232;s priv&#233;
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; gestion des temps de d&#233;veloppement (estimation et d&#233;compte)
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; th&#232;me personnalis&#233; &lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; le serveur sera lanc&#233; par un utilisateur particulier&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Initialisation&lt;/h2&gt;
&lt;p&gt;Sur ma d&#233;dibox avec une installation Debian. Voici le protocole que j'ai suivi.&lt;/p&gt;
&lt;p&gt;En tant qu'administrateur :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre spip_cadre_block' dir='ltr'&gt;apt-get install trac apt-get install trac-spamfilter&lt;/textarea&gt;
&lt;p&gt;Puis en tant qu'utilisateur normal (j'en cr&#233;&#233; un sp&#233;cialement pour trac)&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='23' class='spip_cadre spip_cadre_block' dir='ltr'&gt;# cr&#233;ation des environnement qui serviront &#224; trac pour g&#233;rer chaque projet trac-admin repertoire_projet1 initenv trac-admin repertoire_projet2 initenv # g&#233;n&#233;ration des mots de passe et des utilisateurs htpasswd -c .htpasswd_projet1 user1 htpasswd .htpasswd_projet1 user2 ... htpasswd -c .htpasswd_projet2 user1 htpasswd .htpasswd_projet2 user3 ... # Ajout des droit admin &#224; au moins un utilisateur trac-admin repertoire_projet1/ permission add user1 TRAC_ADMIN trac-admin repertoire_projet2/ permission add user1 TRAC_ADMIN # pour v&#233;rifier que l'identification (et l'acc&#232;s admin) fonctionne tracd -p 8000 --basic-auth=repertoire_projet1,/home /TRAC/.htpasswd_projet1,TRAC_PROJ1 --basic-auth=repertoire_projet2,/home/TRAC/.htpasswd_projet2,TRAC_PROJ2 /home/TRAC/repertoire_projet1/ /home/TRAC/repertoire_projet2/ #ctl-c pour sortir&lt;/textarea&gt;
&lt;p&gt;Dans un navigateur, on peut ensuite tester avec http://adressDuServeur:8000&lt;/p&gt;
&lt;p&gt;Une fois que tout semble op&#233;rationnel on peut passer aux plugins&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Plugins&lt;/h2&gt;
&lt;p&gt;J'avais besoin de trois fonctionnalit&#233;s qui demandaient des plugins suppl&#233;mentaire :
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; La gestion des temps de d&#233;veloppement.
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Un acc&#232;s priv&#233; par d&#233;faut.
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Une interface un peu plus sympathique&lt;/p&gt;
&lt;p&gt;J'ai donc r&#233;cup&#233;r&#233; les plugins suivants :
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;a href=&#034;http://trac-hacks.org/wiki/TimingAndEstimationPlugin&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;TimingAndEstimation&lt;/a&gt;, qui permet d'estimer et de d&#233;compter le temps ticket part ticket.
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;a href=&#034;http://trac-hacks.org/wiki/NoAnonymousPlugin&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;NoAnonymous&lt;/a&gt;, qui permet d'interdire l'acc&#232;s si on est pas identifi&#233;
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;a href=&#034;http://trac-hacks.org/wiki/GnomeBrTheme&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;GnomeBR&lt;/a&gt; un th&#232;me plus (trop ?) color&#233;.
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;a href=&#034;http://trac-hacks.org/wiki/ThemeEnginePlugin&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;ThemeEngine&lt;/a&gt;, n&#233;cessaire pour pouvoir installer des th&#232;mes (et n&#233;cessaire pour le pr&#233;c&#233;dent).&lt;/p&gt;
&lt;p&gt;Apr&#232;s la proc&#233;dure est assez p&#233;nible, il va falloir r&#233;g&#233;n&#233;rer les plugins avec la version de python du serveur. Ce que j'ai trouv&#233; de plus simple c'est de mettre tous les plugins r&#233;cup&#233;r&#233; dans un r&#233;pertoire sp&#233;cialement cr&#233;&#233; pour &#231;a sur le serveur et d'ex&#233;cuter dans ce r&#233;pertoire (ATTENTION !!! pas ailleurs) le script suivant&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='17' class='spip_cadre spip_cadre_block' dir='ltr'&gt;find . -iname '*.zip' -exec unzip {} \; for setup in &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;find . -iname 'setup.py'&lt;/code&gt; do start=&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;pwd&lt;/code&gt; chmod -R 777 &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;dirname $setup&lt;/code&gt; cd &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;dirname $setup&lt;/code&gt; python setup.py bdist_egg cd $start echo &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;dirname $setup&lt;/code&gt; done find . -iname '*.egg' -exec cp {} . \;&lt;/textarea&gt;
&lt;p&gt;Ensuite il ne reste plus qu'&#224; d&#233;placer, les .egg (attention de bien choisir ceux li&#233;s &#224; la version de trac (pour moi 0.11) dans le r&#233;pertoire plugins de mes environnement (repertoire_projet1 et repertoire_projet2)&lt;/p&gt;
&lt;p&gt;Ensuite on peut tester chaque projet s&#233;par&#233;ment et on devra sans doute mettre &#224; jour la base de donn&#233;e :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre spip_cadre_block' dir='ltr'&gt;trac-admin /home/TRAC/repertoire_projet1 upgrade trac-admin /home/TRAC/repertoire_projet2 upgrade&lt;/textarea&gt;&lt;h2 class=&#034;spip&#034;&gt;Petits r&#233;glages compl&#233;mentaire&lt;/h2&gt;
&lt;p&gt;Dans trac.ini&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;les logs&lt;/strong&gt;&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre spip_cadre_block' dir='ltr'&gt;log_level = DEBUG log_type = file&lt;/textarea&gt;
&lt;p&gt;&lt;strong&gt;les mails&lt;/strong&gt;&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='5' class='spip_cadre spip_cadre_block' dir='ltr'&gt;always_notify_owner = true always_notify_reporter = true mime_encoding = quoted-printable smtp_enabled = true base_url = http://mon.site.com:port/projet/&lt;/textarea&gt;&lt;h2 class=&#034;spip&#034;&gt;Mise en route&lt;/h2&gt;
&lt;p&gt;Il reste en suite &#224; lancer pour de vrai l'application (notament pour qu'elle continue de fonctionner quand on se d&#233;loguera du ssh).&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='5' class='spip_cadre spip_cadre_block' dir='ltr'&gt;# le -d pour lancer le programme comme un daemon tracd -d -p 8520 --basic-auth=lunastars_v2,/home/TRAC/.htpasswd_luna,TRAC_LUNA --basic-auth=enov_bix,/home/TRAC/.htpasswd_enov,TRAC_ENOV /home/TRAC/lunastars_v2/ /home/TRAC/enov_bix/ &amp;&lt;/textarea&gt;
&lt;p&gt;puis quand on voudra l'arr&#233;ter : &lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; ps aux |grep tracd
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; kill &lt;i&gt;le pid trouv&#233;&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Voil&#224;, maintenant il ne reste plus qu'&#224; explorer les fonctionnalit&#233;s extraordinaire de cette application.&lt;/p&gt;
&lt;p&gt;En esp&#233;rant que cela aidera d'autres &#224; gagner un peu de temps.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_ps'&gt;&lt;p&gt;[edit : 2/12/2009] Pour pouvoir clore et ajouter du temps sur les tickets directement par les messages des commits SVN, il faut appliquer la proc&#233;dure indiqu&#233;e ici : &lt;a href=&#034;http://trac-hacks.org/wiki/TimingAndEstimationSVNPostCommitHook&#034; class=&#034;spip_url spip_out&#034; rel=&#034;external&#034;&gt;http://trac-hacks.org/wiki/TimingAn...&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>Exim : &#034;Message is frozen&#034; et &#034;unrouteable address&#034;</title>
		<link>https://falconnet.eu/Exim-Message-is-frozen-et.html</link>
		<guid isPermaLink="true">https://falconnet.eu/Exim-Message-is-frozen-et.html</guid>
		<dc:date>2007-12-17T18:27:23Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Julien Falconnet</dc:creator>



		<description>
&lt;p&gt;Les gestionnaires de courriers syst&#232;mes ou Mail Transfert Agent (MTA) sont sans doute ce que j'ai rencontr&#233; de plus compliqu&#233; en administration linux. Loin de dominer le sujet, je prie g&#233;n&#233;ralement pour que mon Exim fasse ce qu'il a &#224; faire sans rencontrer de probl&#232;me. Mais mes pri&#232;res ne sont pas toujours exauc&#233;es. R&#233;cit d'une gal&#232;re. &lt;br class='autobr' /&gt; Sur ma dedibox debian favorite (un serveur d&#233;di&#233; en somme) tourne un de mes plus jolis sites. Ce site de jeu de r&#244;le en ligne n&#233;cessite une inscription qui (&#8230;)&lt;/p&gt;


-
&lt;a href="https://falconnet.eu/-Administration-.html" rel="directory"&gt;Linux&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_chapo'&gt;&lt;p&gt;Les gestionnaires de courriers syst&#232;mes ou Mail Transfert Agent (MTA) sont sans doute ce que j'ai rencontr&#233; de plus compliqu&#233; en administration linux. Loin de dominer le sujet, je prie g&#233;n&#233;ralement pour que mon Exim fasse ce qu'il a &#224; faire sans rencontrer de probl&#232;me. Mais mes pri&#232;res ne sont pas toujours exauc&#233;es. R&#233;cit d'une gal&#232;re.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;p&gt;Sur ma dedibox debian favorite (un serveur d&#233;di&#233; en somme) tourne un de mes plus jolis sites. Ce site de jeu de r&#244;le en ligne n&#233;cessite une inscription qui est confirm&#233;e par email. Or depuis plusieurs jours, les mails ne voulaient plus partir.&lt;/p&gt;
&lt;p&gt;La cause de cette panne n'aura jamais pu &#234;tre compl&#232;tement &#233;lucid&#233;e mais j'ai finalement r&#233;ussi &#224; remettre mes mails en place, et au passage j'ai appris un certain nombre de choses int&#233;ressantes.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Le probl&#232;me&lt;/h2&gt;
&lt;p&gt;Tout d'abord les &lt;strong&gt;sympt&#244;mes&lt;/strong&gt; :&lt;/p&gt;
&lt;ol class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; les mails ne partent plus&lt;/li&gt;&lt;li&gt; apr&#232;s quelques recherches je d&#233;couvre que :
&lt;ol class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; le r&#233;pertoire /var/spool/exim4/input est rempli de mails en attente&lt;/li&gt;&lt;li&gt; le fichier /var/log/exim4/mainlog se remplit de lignes du type
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;2007-12-17 07:10:36 1J49BU-0004SI-IJ &lt;= truc@mondomaine.com U=www-data P=local S=630 id=1197871836.site@mondomaine.com 2007-12-17 07:10:36 1J49BU-0004SI-IJ ** utilisateur@wanadoo.fr: Unrouteable address 2007-12-17 07:10:36 1J49BU-0004SK-OJ &lt;= &lt;&gt; R=1J49BU-0004SI-IJ U=Debian-exim P=local S=1436 2007-12-17 07:10:36 1J49BU-0004SI-IJ Completed 2007-12-17 07:10:36 1J49BU-0004SK-OJ ** truc@mondomaine.com: Unrouteable address 2007-12-17 07:10:36 1J49BU-0004SK-OJ Frozen (delivery error message) 2007-12-17 07:29:15 Start queue run: pid=17137 2007-12-17 07:29:15 1J404B-0003uu-Vo Message is frozen 2007-12-17 07:29:15 1J3wWb-0003je-Q6 Message is frozen&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt; : les mails ne veulent pas partir, ils restent r&#233;solument sur ma machine.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;La recherche&lt;/h2&gt;
&lt;p&gt;Apr&#232;s de nombreuses heures pass&#233;es sur les forums et dans la documentation &lt;i&gt;un peu difficile d'exim&lt;/i&gt;, je finis par comprendre quelques secrets :
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Tout d'abord, &lt;strong&gt;/usr/sbin/exim4 -d -bt &lt;i&gt;mail&lt;/i&gt; &lt;/strong&gt; permet d'en savoir un peu plus sur le niveau o&#249; cela bloque, puisque cela montre en d&#233;tail toutes les tentatives pour traiter l'adressage de l'e-mail. Pour moi cela donnait quelque chose du genre :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;Exim version 4.63 uid=0 gid=0 pid=3588 D=fbb95cfd Berkeley DB: Sleepycat Software: Berkeley DB 4.3.29: (September 6, 2005) Support for: crypteq iconv() IPv6 GnuTLS move_frozen_messages Lookups: lsearch wildlsearch nwildlsearch iplsearch cdb dbm dbmnz dsearch nis nis0 passwd Authenticators: cram_md5 plaintext Routers: accept dnslookup ipliteral manualroute queryprogram redirect Transports: appendfile/maildir/mailstore autoreply lmtp pipe smtp Fixed never_users: 0 Size of off_t: 8 changed uid/gid: forcing real = effective uid=0 gid=0 pid=3588 auxiliary group list: &lt;none&gt; seeking password data for user &#034;uucp&#034;: cache not available getpwnam() succeeded uid=10 gid=10 configuration file is /var/lib/exim4/config.autogenerated log selectors = 00000ffc 00189001 trusted user admin user seeking password data for user &#034;mail&#034;: cache not available getpwnam() succeeded uid=8 gid=8 user name &#034;root&#034; extracted from gecos field &#034;root&#034; originator: uid=0 gid=0 login=root name=root sender address = root@domaine.com Address testing: uid=0 gid=102 euid=0 egid=102 &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; Testing mailtest@domaine.com &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; Considering mailtest@domaine.com &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; routing mailtest@domaine.com --------&gt; hubbed_hosts router &lt;-------- local_part=mailtest domain=domaine.com checking domains expansion of &#034;${if exists{/etc/exim4/hubbed_hosts}{partial-lsearch;/etc/exim4/hubbed_hosts}fail}&#034; forced failure: assume not in this list hubbed_hosts router skipped: domains mismatch --------&gt; real_local router &lt;-------- local_part=mailtest domain=domaine.com real_local router skipped: prefix mismatch --------&gt; system_aliases router &lt;-------- local_part=mailtest domain=domaine.com checking domains domaine.com in &#034;MAIN_LOCAL_DOMAINS&#034;? no (end of list) domaine.com in &#034;+local_domains&#034;? no (end of list) system_aliases router skipped: domains mismatch --------&gt; userforward router &lt;-------- local_part=mailtest domain=domaine.com checking domains cached no match for +local_domains cached lookup data = NULL domaine.com in &#034;+local_domains&#034;? no (end of list) userforward router skipped: domains mismatch --------&gt; procmail router &lt;-------- local_part=mailtest domain=domaine.com checking domains cached no match for +local_domains cached lookup data = NULL domaine.com in &#034;+local_domains&#034;? no (end of list) procmail router skipped: domains mismatch --------&gt; maildrop router &lt;-------- local_part=mailtest domain=domaine.com checking domains cached no match for +local_domains cached lookup data = NULL domaine.com in &#034;+local_domains&#034;? no (end of list) maildrop router skipped: domains mismatch --------&gt; lowuid_aliases router &lt;-------- local_part=mailtest domain=domaine.com checking domains cached no match for +local_domains cached lookup data = NULL domaine.com in &#034;+local_domains&#034;? no (end of list) lowuid_aliases router skipped: domains mismatch --------&gt; local_user router &lt;-------- local_part=mailtest domain=domaine.com checking domains cached no match for +local_domains cached lookup data = NULL domaine.com in &#034;+local_domains&#034;? no (end of list) local_user router skipped: domains mismatch --------&gt; mail4root router &lt;-------- local_part=mailtest domain=domaine.com checking domains cached no match for +local_domains cached lookup data = NULL domaine.com in &#034;+local_domains&#034;? no (end of list) mail4root router skipped: domains mismatch no more routers mailtest@domaine.com is undeliverable: Unrouteable address search_tidyup called &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; Exim pid=3588 terminating with rc=2 &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Bilan&lt;/strong&gt; : aucun des routers ne parvient &#224; router l'adresse.&lt;/p&gt;
&lt;p&gt;L&#224; je dois avouer que j'ai bloqu&#233; un bon moment. En effet, n'ayant fait aucune modification sur mon serveur, il m'a fallut un moment avant de chercher dans les fichiers de configuration ce que je pouvais y changer.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Une solution&lt;/h2&gt;
&lt;p&gt;Apr&#232;s de nombreuses recherches dans les fichiers de configuration et sur Internet, il semblerait que mon Exim ne tente jamais d'envoyer les mails vers l'ext&#233;rieur. Finalement, sous les conseils avis&#233;s de commentaires trouv&#233;s dans un fichier de conf (dans /etc/exim4/ ) je lance une reconfiguration g&#233;n&#233;rale d'exim :&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;dpkg-reconfigure exim4-config&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;L&#224; je fais bien attention &#224; choisir une connexion directe sur Internet, et apr&#232;s quelques tests, j'ai le plaisir de d&#233;couvrir que mes mails fonctionnent &#224; nouveau.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Pour finir&lt;/h2&gt;
&lt;p&gt;Apr&#232;s tout cela, il reste encore &#224; relancer l'exp&#233;dition de tous ces messages &#034;frozen&#034;. Ca va &#234;tre essentiellement des retours &#224; l'exp&#233;diteur mais &#231;a videra la queue et &#231;a sera plus carr&#233;. Pour cela la formule miracle c'est :&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;exim -qff&lt;/strong&gt; (pour relancer tous les message de la queue y compris les frozens)&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>fldiff : un diff graphique</title>
		<link>https://falconnet.eu/fldiff-un-diff-graphique.html</link>
		<guid isPermaLink="true">https://falconnet.eu/fldiff-un-diff-graphique.html</guid>
		<dc:date>2007-11-06T01:05:50Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Julien Falconnet</dc:creator>



		<description>&lt;p&gt;diff est un outils utile pour comparer deux fichiers sous linux, mais la version graphique est encore mieux...&lt;/p&gt;

-
&lt;a href="https://falconnet.eu/-Administration-.html" rel="directory"&gt;Linux&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_chapo'&gt;&lt;p&gt;La comparaison de fichier devient vite une tache incontournable pour l'administrateur, mais aussi pour le d&#233;veloppeur. Quoique tr&#232;s structur&#233;s les r&#233;sultats de diff en mode console sont parfois un peu p&#233;nibles &#224; lire. Pourtant, il existe un petit outil tr&#232;s pratique pour comparer de mani&#232;re tr&#232;s visuelle deux fichiers : &lt;strong&gt;fldiff&lt;/strong&gt;.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;p&gt;&lt;strong&gt;Version de travail&lt;/strong&gt; : v1.1&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Pr&#233;sentation&lt;/h2&gt;
&lt;p&gt;Deux parties : une &#224; gauche pour le premier fichier, une &#224; droite pour le second fichier. Les lignes identiques sont align&#233;e et les lignes modifi&#233;es sont colori&#233;es en jaunes, avec &#233;ventuellement un d&#233;calage pour que les lignes identiques restent toujours en vis &#224; vis. Entre les deux parties on trouve un ascenseur qui rappelle les zone variantes.&lt;/p&gt;
&lt;div class='spip_document_5 spip_document spip_documents spip_document_image spip_documents_center spip_document_center spip_document_avec_legende' data-legende-len=&#034;38&#034; data-legende-lenx=&#034;x&#034;
&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt; &lt;img src='https://falconnet.eu/IMG/png/fldiff.png' width='231' height='300' alt='' /&gt;
&lt;figcaption class='spip_doc_legende'&gt; &lt;div class='spip_doc_titre '&gt;&lt;strong&gt;Apper&#231;u de fldiff
&lt;/strong&gt;&lt;/div&gt; &lt;div class='spip_doc_descriptif '&gt;Vue de l'interface
&lt;/div&gt; &lt;/figcaption&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;Extr&#234;mement intuitif, on peut rep&#233;rer instantan&#233;ment la moindre variation de virgule.&lt;/p&gt;
&lt;p&gt;Attention, il suffit d'un &#034;espace&#034; de diff&#233;rence pour que les lignes soient consid&#233;r&#233;es comme diff&#233;rentes. Ce qui peut poser probl&#232;me lorsqu'on a seulement remis en forme un code sans avoir fait de vraies modifications. Il existe une option &#034;ignore whitespace&#034; dans le menu Edit-&gt;Preference qui permet de r&#233;gler ce probl&#232;me.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Syntaxe&lt;/h2&gt;
&lt;p&gt;Outre la possibilit&#233; de choisir les fichiers &#224; comparer gr&#226;ce au menu de l'interface graphique, on peut les sp&#233;cifier directement en ligne de commande.&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt; fldiff {fichier1} {fichier2}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 class=&#034;spip&#034;&gt;Avec SVN ? Que du bonheur !&lt;/h2&gt;
&lt;p&gt;Ma principale utilisation de ce g&#233;nial outil est avec le gestionnaire de version Subversion (SVN). Il permet en effet, de comparer, non pas deux fichiers mais deux versions d'un m&#234;me fichier g&#233;r&#233; par svn. Pour cela il suffit de se mettre dans le r&#233;pertoire de travail o&#249; se trouve le fichier et d'appeler :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt; fldiff {nom_du_fichier} :{revision1}:{revision2}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;ou&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;fldiff {nom_du_fichier} :{revisioninitiale}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;La premi&#232;re syntaxe compare les versions revision1 et revision2 du fichier (par exemple fldiff action.php :21:36) et la seconde version compare la version revisioninitiale et la version courante (par exemple fldiff action.php :36).&lt;/p&gt;
&lt;p&gt;Enfin la syntaxe suivante compare la version de travail &#224; la version de r&#233;f&#233;rence (utile seulement si vous avez travaill&#233; sur un fichier depuis son dernier update).&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt; fldiff {fichier}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Par exemple : fldiff action.php.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;R&#233;f&#233;rences&lt;/h2&gt;
&lt;p&gt;Le site de r&#233;f&#233;rence sur le sujet : &lt;a href=&#034;http://www.easysw.com/~mike/fldiff/index.html&#034; class=&#034;spip_url spip_out&#034; rel=&#034;external&#034;&gt;http://www.easysw.com/~mike/fldiff/...&lt;/a&gt; (enfin il me semble)&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>Foutu &#034;Brother2:net1 ;dev0&#034; (ou Foutu &#034;Brother2:net1 ;dev1&#034;)</title>
		<link>https://falconnet.eu/Foutu-Brother2-net1-dev0-ou-Foutu.html</link>
		<guid isPermaLink="true">https://falconnet.eu/Foutu-Brother2-net1-dev0-ou-Foutu.html</guid>
		<dc:date>2007-05-14T17:01:47Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Julien Falconnet</dc:creator>



		<description>&lt;p&gt;Une solution inattendue : Attendre.&lt;/p&gt;

-
&lt;a href="https://falconnet.eu/-Administration-.html" rel="directory"&gt;Linux&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_chapo'&gt;&lt;p&gt;Apr&#232;s plusieurs heures &#224; maudire tour &#224; tour Brother, Debian, Ubuntu, Linux, sane et xsane, j'ai fini par trouver la solution &#224; mon probl&#232;me.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;p&gt;Apr&#233;s l'installation sans difficult&#233; (enfin presque) des fonctionnalit&#233;s IMPRESSION de mon imprimante multifonction Brother DCP-340CW (par wifi svp), j'ai d&#233;cid&#233; de m'attaquer aux fonctions SCANNER.&lt;/p&gt;
&lt;p&gt;Apr&#233;s un petit tour sur le site officiel des &lt;a href=&#034;http://solutions.brother.com/linux/en_us/index.html&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;drivers Brother pour linux&lt;/a&gt;, je trouve la page des &lt;a href=&#034;http://solutions.brother.com/linux/sol/printer/linux/sane_drivers.html&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;scanners&lt;/a&gt; et je suis un &lt;a href=&#034;http://solutions.brother.com/linux/sol/printer/linux/sane_install-net.html&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;petit tutoriel tout ce qu'il y a de convivial&lt;/a&gt; pour installer le scanner r&#233;seau.&lt;/p&gt;
&lt;p&gt;Finalement je lance xsane, le logiciel charg&#233; de piloter le scanner... et l&#224; &lt;i&gt; message d'erreur&lt;/i&gt; !!! Le d&#233;but d'une gal&#232;re en perspective. Qu'&#224; cela ne tienne je commence &#224; chercher sur internet qui a rencontr&#233; une erreur similaire &#224; la mienne :&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Erreur d'ouverture du p&#233;riph&#233;rique 'Brother2:net1 ;dev0' &lt;br class='autobr' /&gt;
Argument invalide&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Je vais r&#233;installer tout depuis le d&#233;but, rebooter, manquer de modifier toute ma configuration USB (avant de me dire que c'est idiot vue que c'est une imprimante r&#233;seau qui passe par le Wifi et pas par un port usb), traduire des forums en allemand par un traducteur automatique (c'est sans doute la partie o&#249; j'ai le plus ris), pour finalement etre sur le point d'abandonner... et soudain alors que je faisait autre chose, une vieille tache d'impression qui se lance enfin...&lt;/p&gt;
&lt;p&gt;Et poum je retente xsane et &#231;a marche.... en fait l'imprimante avait d&#233;croch&#233; du r&#233;seau. Donc il fallait juste &lt;strong&gt;ATTENDRE&lt;/strong&gt; qu'elle raccroche. Et toutes les fois que je r&#233;installais, d&#233;sinstallais, red&#233;marrais l'ordinateur(je sais c'est pas biens sous linux, mais c'&#233;tait recommand&#233; sur un forum) ou l'imprimante, je retardais d'autant le fait que l'imprimante rapproche.&lt;/p&gt;
&lt;p&gt;Bilan : Quand &#231;a marche pas du premier coup, parfois faut commencer par laisser reposer, surtout quand le r&#233;seau (et encore plus un Wifi) est en cause.&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>Dedibox : Envoyer des mails &#224; partir d'un site.</title>
		<link>https://falconnet.eu/Dedibox-Envoyer-des-mails-a-partir.html</link>
		<guid isPermaLink="true">https://falconnet.eu/Dedibox-Envoyer-des-mails-a-partir.html</guid>
		<dc:date>2007-03-10T00:45:15Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Julien Falconnet</dc:creator>



		<description>&lt;p&gt;Comment faire pour envoyer des mails avec un serveur qui n'est pas &#034;&#224; priori&#034; reconnu comme un smtp &#034;de confiance&#034; ?&lt;/p&gt;

-
&lt;a href="https://falconnet.eu/-Administration-.html" rel="directory"&gt;Linux&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_chapo'&gt;&lt;p&gt;Avec le durcissement g&#233;n&#233;ralis&#233; de la lutte antispam, il devient de plus en plus difficile d'avoir simplement un site qui envoi des mail de r&#233;cup&#233;ration de mot de passe...&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;p&gt;Apr&#232;s bien des soucis pour h&#233;berger la Version 1 du site &lt;a href=&#034;http://www.lunastars.net/&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;Lunastars&lt;/a&gt;, sur un serveur mutualis&#233;, j'ai fini par opter pour une solution d&#233;di&#233;e chez &lt;a href=&#034;http://www.dedibox.fr/&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;DEDIBOX&lt;/a&gt;. Jusqu'&#224; pr&#233;sent j'en &#233;tais plut&#244;t content : installation facile, debian disponible, les lenteurs du d&#233;di&#233; disparues, mes joueurs heureux.... le top quoi.&lt;/p&gt;
&lt;p&gt;Mais apr&#232;s un mois, je regarde un peu les statistiques d'inscription et m'aper&#231;ois qu'aucune inscription n'a &#233;t&#233; valid&#233;e depuis la migration. En le recoupant avec des mails de personnes d&#233;clarant avoir du mal &#224; recevoir des mails du site, je me lance dans une enquete... et je d&#233;couvre que j'ai une pellet&#233; de mails refus&#233;s (pas tous par exemple les miens passent :( ). Plein de hotmail, mais aussi la poste, des domaines de particuliers etc.&lt;/p&gt;
&lt;p&gt;Apr&#232;s quelques recherches sur le net, il semblerait qu'il soit en train de s'&#233;tablir un syst&#232;me de serveur de confiance. Les serveurs qui ne seraient pas explicitement &#034;de confiance&#034; se verraient refus&#233; le droit de faire transiter les mails consid&#233;r&#233;s par d&#233;faut comme du spam.&lt;/p&gt;
&lt;p&gt;Il doit bien y avoir des moyens de r&#233;soudre le probl&#232;me mais lesquels. Voici le r&#233;cits de mes recherches et exp&#233;rimentations.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Mails insufisament renseign&#233;&lt;/h2&gt;
&lt;p&gt;Les serveurs qui relaient les mails sont de plus en plus difficiles sur le contenus des headers des mails (la partie qui est avant le mail et qu'en g&#233;n&#233;ral on affiche pas). En particulier la fonction PHP mail() par d&#233;faut ne rempli peut ou pas ces champs. Si les headers sont insuffisants les serveur vont carr&#233;ment refuser le mail.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Diagnostic&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Si des mails n'arrivent pas, et que dans vos log de message (sous Debian/Exim4 : /var/spool/exim4/msglog), vous avez des messages du type &lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; 501 (501 5.1.7 Bad sender address syntax, 501 Bad address syntax, 501 Invalid Address)... ou 553 (553 sorry, your envelope sender domain must exist (#5.7.1) , 501 FROM Invalid mail address, invalid domain name syntax)
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; 550 5.1.0 &lt;www-data@&gt; SIZE=1576 domain missing or malformed
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; 553 5.1.3 &lt;www-data@&gt;... Hostname required&lt;/p&gt;
&lt;p&gt;C'est probablement que les champs des headers sont mal renseign&#233;s. &lt;br class='autobr' /&gt;
V&#233;rifiez en particulier le return-path de vos mails, la plupart des prestataires de mails en exigent un pour accepter de faire transiter les mails.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Solution au niveau code PHP&lt;/strong&gt;&lt;br class='autobr' /&gt;
Il est possible de renseigner le 4e champs de la fonction &#034;mail()&#034; avec les headers (ou ent&#234;tes) importants. En particulier assurez vous que les champs ci dessous soient renseign&#233;s.&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;$entete = &#034;From: Nom Expediteur &lt;expediteur@monsite.tld&gt;\r\n&#034;; $entete .= &#034;Reply-To: Nom Expediteur &lt;expediteur@monsite.tld&gt;\r\n&#034;; $entete .= &#034;Return-Path: expediteur@monsite.tld\r\n&#034;; $entete .= &#034;Message-ID: &lt;&#034;.time().&#034;.site@monsite.tld&gt;\r\n&#034;; $entete .= &#034;X-Mailer: PHP v&#034;.phpversion().&#034;\r\n&#034; $entete .= &#034;X-Sender: expediteur@monsite.tld\r\n&#034;; $entete .= &#034;X-auth-smtp-user: expediteur@monsite.tld \r\n&#034;; $entete .= &#034;X-abuse-contact: abuse@monsite.tld &#034;;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;J'ai bien gal&#233;r&#233; pour en arriver l&#224;, mais rien &#224; faire... le return-path des mails envoy&#233;s restaient d&#233;s&#233;sp&#233;r&#233;ment : &lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Return-Path : &lt;www-data@&gt;&lt;/p&gt;
&lt;p&gt;alors j'ai du aller plus loins ...&lt;br class='autobr' /&gt;
&lt;strong&gt;Solution au niveau php.ini&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;apr&#233;s moult recherche il semble qu'il faille modifier le php.ini (/etc/php5/apache2/php.ini) pour moi apr&#233;se une recherche de sendmail :&lt;br class='autobr' /&gt;
sendmail_path = /usr/sbin/sendmail -fenvoyeur@monsite.tld -t -i&lt;/p&gt;
&lt;p&gt;et Oh joie Oh bonheur le return path des mails envoy&#233; est enfin correctement modifi&#233;.&lt;/p&gt;
&lt;p&gt;Et poum &#231;a passe pour les @poste.fr et sans doute les autres...&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Serveur en liste noire&lt;/h2&gt;
&lt;p&gt;&lt;i&gt;Ca j'ai pas eu le probl&#232;me, mais on sait jamais, autant garder la recherche sous le coude.&lt;br class='autobr' /&gt;
&lt;/i&gt;&lt;br class='autobr' /&gt;
Si vous avez fait trop d'erreurs, que votre serveur a &#233;t&#233; d&#233;tourn&#233; etc il est possible que votre serveur aie &#233;t&#233; mis en liste noire. Pour v&#233;rifier que le serveur n'est pas blacklist&#233; &lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;a href=&#034;http://www.mxtoolbox.com/blacklists.aspx&#034; class=&#034;spip_url spip_out&#034; rel=&#034;external&#034;&gt;http://www.mxtoolbox.com/blacklists.aspx&lt;/a&gt;
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;a href=&#034;http://www.spamhaus.org/sbl/index.lasso&#034; class=&#034;spip_url spip_out&#034; rel=&#034;external&#034;&gt;http://www.spamhaus.org/sbl/index.lasso&lt;/a&gt;
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;a href=&#034;http://www.spews.org/&#034; class=&#034;spip_url spip_out&#034; rel=&#034;external&#034;&gt;http://www.spews.org/&lt;/a&gt;
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;a href=&#034;http://dsbl.org/listing&#034; class=&#034;spip_url spip_out&#034; rel=&#034;external&#034;&gt;http://dsbl.org/listing&lt;/a&gt;
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;a href=&#034;http://www.mail-abuse.com/cgi-bin/lookup&#034; class=&#034;spip_url spip_out&#034; rel=&#034;external&#034;&gt;http://www.mail-abuse.com/cgi-bin/lookup&lt;/a&gt;
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;strong&gt;&lt;a href=&#034;http://www.senderbase.org/&#034; class=&#034;spip_url spip_out&#034; rel=&#034;external&#034;&gt;http://www.senderbase.org/&lt;/a&gt;&lt;/strong&gt;
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;a href=&#034;http://openrbl.org/client/&#034; class=&#034;spip_url spip_out&#034; rel=&#034;external&#034;&gt;http://openrbl.org/client/&lt;/a&gt;
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;a href=&#034;http://www.spamcop.net/bl.shtml&#034; class=&#034;spip_url spip_out&#034; rel=&#034;external&#034;&gt;http://www.spamcop.net/bl.shtml&lt;/a&gt;&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;SPF&lt;/h2&gt;
&lt;p&gt;Ca non plus j'ai pas encore eu besoin, mais je pense le faire bient&#244;t (notament pour un de mes domaines qui est utilis&#233; comme source apparente de spam). L'id&#233;e c'est de restreindre &#224; quelques ip les serveur qui ont le droit d'envoyer un mail semblant provenir d'un domaine. Ensuite on indique cette information au niveau du DNS et les serveurs 'intelligents' peuvent 'v&#233;rifier' au niveau DNS que les mails viennent bien d'un smtp 'autoris&#233;' avant de transmettre et d&#233;gager sinon.&lt;/p&gt;
&lt;p&gt;Une petite &lt;a href=&#034;http://fr.wikipedia.org/wiki/Sender_Policy_Framework&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;d&#233;finition&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Un outil pour g&#233;n&#233;rer le code spf : &lt;a href=&#034;http://old.openspf.org/wizard.html&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;OpenSPF wizard&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Sp&#233;cificit&#233; de certains grands fournisseurs de mail : &lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; HOTMAIL (&lt;a href=&#034;https://postmaster.live.com/snds/&#034; class=&#034;spip_url spip_out&#034; rel=&#034;external&#034;&gt;https://postmaster.live.com/snds/&lt;/a&gt; n&#233;cessite un compte msn- demande une ip a enregistrer, un mail de plainte)
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; AOL&lt;/p&gt;
&lt;hr class=&#034;spip&#034; /&gt;
&lt;p&gt;Quelques r&#233;f&#233;rences qui m'ont bien aid&#233;s :
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;a href=&#034;http://www.dedibox-news.com/viewtopic.php?id=1730&#034; class=&#034;spip_url spip_out&#034; rel=&#034;external&#034;&gt;http://www.dedibox-news.com/viewtop...&lt;/a&gt;
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;a href=&#034;http://www.webmasterclub.fr/forum/topic,43503,0.html&#034; class=&#034;spip_url spip_out&#034; rel=&#034;external&#034;&gt;http://www.webmasterclub.fr/forum/t...&lt;/a&gt;&lt;/p&gt;
&lt;hr class=&#034;spip&#034; /&gt;
&lt;p&gt;&lt;i&gt;D&#233;didox bloque son port 25&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;Attention &#224; partir 31 Mars 2007 mais il reste possible de l'activer manuellement par la console de gestion (Avanc&#233;- Configuration de la protection SMTP ) &lt;/i&gt;&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_ps'&gt;&lt;p&gt;Cet article n'est qu'un r&#233;sum&#233; de diverses recherches sur un domaine que je ma&#238;trise mal, il se peut que j'ai fait des erreurs de compr&#233;hension. Toutes les remarques sont les bienvenues.&lt;/p&gt;&lt;/div&gt;
		</content:encoded>


		

	</item>



</channel>

</rss>
