<?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>Blog Symfony - Lexik Montpellier &#187; Ubuntu</title>
	<atom:link href="http://www.lexik.fr/blog/symfony/category/ubuntu/feed" rel="self" type="application/rss+xml" />
	<link>http://www.lexik.fr/blog/symfony</link>
	<description>Blog sur le développement Web PHP</description>
	<lastBuildDate>Tue, 20 Jul 2010 08:35:36 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Déployer un projet Symfony avec Rsync</title>
		<link>http://www.lexik.fr/blog/symfony/symfony/deployer-un-projet-symfony-avec-rsync-840</link>
		<comments>http://www.lexik.fr/blog/symfony/symfony/deployer-un-projet-symfony-avec-rsync-840#comments</comments>
		<pubDate>Fri, 07 Aug 2009 14:01:29 +0000</pubDate>
		<dc:creator>Calu</dc:creator>
				<category><![CDATA[Symfony]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[rsync]]></category>

		<guid isPermaLink="false">http://www.lexik.fr/sfblog/?p=840</guid>
		<description><![CDATA[Le développement de votre projet Symfony arrive à son terme, vous confrontant ainsi à l&#8217;étape de la mise en ligne. Si vous vous apprêtez à lancer votre client FTP pour le dépôt de vos fichiers, alors cet article est fait pour vous. Nous allons voir la configuration et l&#8217;utilisation d&#8217;un petit utilitaire de synchronisation : [...]]]></description>
			<content:encoded><![CDATA[<p>Le développement de votre projet Symfony arrive à son terme, vous confrontant ainsi à l&#8217;étape de la mise en ligne. Si vous vous apprêtez à lancer votre client FTP pour le dépôt de vos fichiers, alors <span style="text-decoration: underline;">cet article est fait pour vous</span>. Nous allons voir la configuration et l&#8217;utilisation d&#8217;un petit utilitaire de synchronisation : <strong>RSync</strong>.</p>
<p><span id="more-840"></span></p>
<h3>Pourquoi utiliser RSync ?</h3>
<p>A l&#8217;instart du FTP, <strong>rsync</strong> permet d&#8217;effectuer une synchronisation distante basée sur des sauvegardes incrémentales. En clair, à l&#8217;aide d&#8217;une seule commande, vous pouvez mettre à jour sur votre serveur, <span style="text-decoration: underline;">seulement l&#8217;ensemble des fichiers modifiés</span> depuis votre dernière synchonisation.</p>
<p><strong>Rsync </strong>utilise le protocole SSH permettant  une communication sécurisée lors du transfert des fichiers. Un autre avantage indéniable par rapport au protocole FTP beaucoup trop bavard sur le réseau, lors de la transmission de vos paramètres d&#8217;authentification.</p>
<p>Outre le confort et la rapidité du déploiement par <strong>rsync</strong>, il ne faut pas oublier son <span style="text-decoration: underline;">support natif</span> par Symfony.</p>
<h3>Configuration RSync</h3>
<p>Avant de voir les différents paramètres de configuration, nous allons rapidement installer ce petit utilitaire via notre gestionnaire de packet sur notre<strong> </strong> Debian-Like :</p>
<pre>apt-get install rsync</pre>
<p>Pour les paramètres de connection, il faut  créer/modifier le fichier <em>config/properties.ini </em>:<em><br />
</em></p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p840code3'); return false;">View Code</a> INI</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table width="100%" ><tr id="p8403"><td class="code" id="p840code3"><pre class="ini" style="font-family:monospace;"><span style="color: #000066; font-weight:bold;"><span style="">&#91;</span>maconfig<span style="">&#93;</span></span>
<span style="color: #000099;">name</span><span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;">MonSite</span>
<span style="color: #000099;">author</span><span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;">Lexik.fr</span>
<span style="color: #000099;">host</span><span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;">66.249.64.0                               #IP du serveur</span>
<span style="color: #000099;">port</span><span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;"><span style="">22</span>                                        #Port par default pour ssh</span>
<span style="color: #000099;">user</span><span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;">votre-login                               #Utilisateur qui se connectera au serveur de destination</span>
<span style="color: #000099;">dir</span><span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;">/home/lexik/domains/lexik.fr/public_html   #Dossier qui recevera le projet symfony sur le serveur de destination</span>
<span style="color: #000099;">type</span><span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;">rsync                                     #Type de deploiement</span></pre></td></tr></table></div>

<p>Symfony permet de spécifier les dossiers à exclure lors de la synchronisation. Créer/Modifier le fichier <em>config/rsync_exclude.txt</em> :</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p840code4'); return false;">View Code</a> TXT</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table width="100%" ><tr id="p8404"><td class="code" id="p840code4"><pre class="txt" style="font-family:monospace;">.svn
/web/uploads/*
/web/*_dev.php
/cache/*
/log/*
.DS_Store
.cache
.project
.settings</pre></td></tr></table></div>

<p>Nous allons ensuite tester nos paramètres de configuration. Cette commande est utile pour effectuer une simulation du transfert. Cela signifie que rien ne sera synchronisé :<strong> </strong></p>
<pre>php symfony project:deploy <span>maconfig</span></pre>
<p>Nous y voila, effectuez votre <strong>rsynchronisation</strong> :</p>
<pre>php symfony project:deploy <span>maconfig</span> --go</pre>
<p><span style="text-decoration: underline;">Et voila </span>!</p>
<h3>Déploiement sans spécifier le mot de passe</h3>
<p>Dans un souci d&#8217;automatisation de synchronisation, il peut être embêtant de se faire demander le mot de passe serveur à chaque déploiement par <strong>rsync</strong> (ou même lorsque l&#8217;on souhaite se connecter au serveur directement par SSH).</p>
<p>Dans cette logique, on peut utiliser une encryption asymétrique (clé publique, clé privée) afin de rester &laquo;&nbsp;connu&nbsp;&raquo; par le serveur:<br />
On génère le couple de clé en local avec la commande :</p>
<pre>ssh-keygen -t rsa</pre>
<p>On garde le chemin par défault pour la sauvegarde des clés, et nous n&#8217;aurons pas besoin dans notre cas de passphrase, en vue d&#8217;une possible automatisation des synchronisations.</p>
<p>Les 2 clés sont donc générées dans ~/.ssh/</p>
<p>Il suffit alors de copier la clé publique sur le serveur, dans le répertoire courant de l&#8217;utilisateur avec lequel on se connecte.</p>
<p>Voici une procédure possible avec <strong>scp</strong> (<strong>man scp </strong>pour plus d&#8217;information) :</p>
<pre>scp /home/moi/.ssh/id_rsa.pub monlogin@ip-du-server:.ssh/authorized_keys</pre>
<p>(Il faudra peut être créer le dossier .ssh à la racine du dossier personnel de l&#8217;utilisateur).</p>
<h3><span style="text-decoration: underline;">Bugs courant :</span></h3>
<pre>Agent admitted failure to sign using the key.</pre>
<p>Peut se produire alors que la clé publique a bien été transmise au serveur (le bug semblerait provenir du client SSH natif d&#8217;ubuntu: <a href="http://www.google.com/url?q=https%3A%2F%2Fbugs.launchpad.net%2Fubuntu%2F%2Bsource%2Fopenssh%2F%2Bbug%2F201786&amp;sa=D&amp;sntz=1&amp;usg=AFrqEzdjX5r1Ryyi2TdvRa4CL8jIlXk7ew">https://bugs.launchpad.net/ubuntu/+source/openssh/+bug/201786</a>).</p>
<p>Voici la commande salvatrice :</p>
<pre>export SSH_AUTH_SOCK=0</pre>
<h3>En savoir plus</h3>
<ul>
<li><a href="http://fr.wikipedia.org/wiki/Cryptographie_asym%C3%A9trique" target="_blank">Cryptographie asymétrique</a></li>
<li><a title="Pratical symfony - Day 23 : The deployment " href="http://www.symfony-project.org/jobeet/1_2/Doctrine/en/23#chapter_23_deploying" target="_blank">Pratical symfony : Day 23</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.lexik.fr/blog/symfony/symfony/deployer-un-projet-symfony-avec-rsync-840/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Symfony : Utilisation de la classe sfFilter</title>
		<link>http://www.lexik.fr/blog/symfony/symfony/symfony-utilisation-de-la-classe-sffilter-792</link>
		<comments>http://www.lexik.fr/blog/symfony/symfony/symfony-utilisation-de-la-classe-sffilter-792#comments</comments>
		<pubDate>Thu, 16 Jul 2009 09:48:23 +0000</pubDate>
		<dc:creator>yoye</dc:creator>
				<category><![CDATA[1.2.x]]></category>
		<category><![CDATA[Symfony]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[cookie]]></category>
		<category><![CDATA[sfFilter]]></category>

		<guid isPermaLink="false">http://www.lexik.fr/sfblog/?p=792</guid>
		<description><![CDATA[Nous allons voir l&#8217;utilisation de la classe sfFilter. Attention à ne pas confondre sfFilter et les classes auto-générés lors du build de l&#8217;application qui sont des classes principalement utilisées dans le backend pour faire le tri sur les colonnes. Mais concentrons nous d&#8217;abord sur sfFilter. Comme on peut le voir en parcourant rapidement le code [...]]]></description>
			<content:encoded><![CDATA[<p>Nous allons voir l&#8217;utilisation de la classe sfFilter. Attention à ne pas confondre sfFilter et les classes auto-générés lors du build de l&#8217;application qui sont des classes principalement utilisées dans le backend pour faire le tri sur les colonnes.</p>
<p>Mais concentrons nous d&#8217;abord sur <a href="http://www.symfony-project.org/api/1_2/sfFilter">sfFilter</a>. Comme on peut le voir en parcourant rapidement le code c&#8217;est une classe abstraite on ne pourra donc l&#8217;utiliser que part héritage.<br />
Les filters sont en fait une couche du Framework qui permet d&#8217;effectuer des actions avant ou après l&#8217;affichage d&#8217;une page, ce qui peut s&#8217;avérer très pratique.<br />
<span id="more-792"></span><br />
On va donc partir d&#8217;un exemple simple :<br />
Imaginons deux sites internet, un site A qui va faire une redirection vers mon site B. Sur mon site B les utilisateurs peuvent s&#8217;inscrire et j&#8217;ai besoin de stocker le site de provenance, ce qui va se faire à l&#8217;aide d&#8217;un cookie.<br />
Une méthode primaire pourrait consister à faire une page qui va poser le cookie et faire la redirection. Seulement le jour ou je souhaite que mon site A redirige vers une page précise de mon site B il va falloir que je vienne changer le code.<br />
<strong>Heureusement sfFilter est là !</strong></p>
<p>Grâce à cette couche du framework je vais pouvoir créer une classe que je vais appeler TrackerFilter et qui va me faire tout le traitement nécessaire. Voici le code :</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p792code9'); return false;">View Code</a> PHP</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table width="100%" ><tr id="p7929"><td class="code" id="p792code9"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">class</span> TrackerFilter <span style="color: #000000; font-weight: bold;">extends</span> sfFilter <span style="color: #009900;">&#123;</span>
     <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> execute<span style="color: #009900;">&#40;</span><span style="color: #000088;">$filterChain</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #000088;">$context</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getContext</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #000088;">$request</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$context</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getRequest</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
        <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">isFirstCall</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #000088;">$request</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getParameter</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'r'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
        <span style="color: #009900;">&#123;</span>
            <span style="color: #000088;">$user</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$context</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getUser</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
            <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #000088;">$request</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getCookie</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'reservation'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
            <span style="color: #009900;">&#123;</span>
                <span style="color: #000088;">$time</span> <span style="color: #339933;">=</span> <span style="color: #990000;">time</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">+</span><span style="color: #cc66cc;">60</span><span style="color: #339933;">*</span><span style="color: #cc66cc;">60</span><span style="color: #339933;">*</span><span style="color: #cc66cc;">24</span><span style="color: #339933;">*</span><span style="color: #cc66cc;">7</span><span style="color: #339933;">;</span>
                <span style="color: #000088;">$context</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getResponse</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">setCookie</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'reservation'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$request</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getParameter</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'r'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$time</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #009900;">&#125;</span>
        <span style="color: #009900;">&#125;</span>
        <span style="color: #000088;">$filterChain</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">execute</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<dl>
<dt>Que se passe t&#8217;il dans ces quelques lignes de code ?</dt>
<dd>Notre classe va hériter de sfFilter (obligatoire)</dd>
<dd>On va créer une function execute avec en paramètre $filterchain qui va nous permettre d&#8217;exécuter le code souhaité (obligatoire)</dd>
<dd>On récupère le &laquo;&nbsp;context&nbsp;&raquo; et le &laquo;&nbsp;request&nbsp;&raquo; ce qui va nous permettre de vérifier si le cookie existe déjà et de le poser dans le cas contraire</dd>
<dd>On exécute le filter (obligatoire)</dd>
</dl>
<p>Quelques précisions supplémentaires :<br />
La fonction isFirstCall() permet de vérifier si c&#8217;est la première exécution du filter.<br />
Le placement de la ligne</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p792code10'); return false;">View Code</a> PHP</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table width="100%" ><tr id="p79210"><td class="code" id="p792code10"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$filterChain</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">execute</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>a son importance puisqu&#8217;elle permet de signifier si l&#8217;on souhaite que le filter s&#8217;exécute avant ou après l&#8217;action.</p>
<p>Maintenant il ne nous reste plus qu&#8217;à configurer notre filter, pour cela il faut modifier le fichier apps/APPLICATION/config/filters.yml qui d&#8217;origine contient :</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p792code11'); return false;">View Code</a> YML</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table width="100%" ><tr id="p79211"><td class="code" id="p792code11"><pre class="yml" style="font-family:monospace;">rendering: ~
security:  ~
&nbsp;
# insert your own filters here
&nbsp;
cache:     ~
common:    ~
execution: ~</pre></td></tr></table></div>

<p>Ce qui semble assez explicite pour savoir ou écrire notre configuration. On va donc compléter ce fichier comme suit :</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p792code12'); return false;">View Code</a> YML</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table width="100%" ><tr id="p79212"><td class="code" id="p792code12"><pre class="yml" style="font-family:monospace;">rendering: ~
security:  ~
&nbsp;
TrackerFilter:
  class:  TrackerFilter
&nbsp;
cache:     ~
common:    ~
execution: ~</pre></td></tr></table></div>

<p>Nous avons donc vu comment utiliser les filters avec un cas pratique simple mais qui est un cas qu&#8217;un développeur web va rencontrer souvent. Cette façon de faire laisse donc une certaine flexibilité et permet une fois de plus d&#8217;avoir un code simple, clair et factorisé.<br />
On trouve là tout la puissance de Symfony.</p>
<p>Pour ceux qui sont intéressés par d&#8217;autres cas d&#8217;utilisation de sfFilter vous pouvez bien sûr vous reportez sur le <a href="http://www.symfony-project.org/book/1_2/06-Inside-the-Controller-Layer#chapter_06_filters">livre</a>. Vous y verrez qu&#8217;il est possible grâce aux filters de faire des redirection, ou encore d&#8217;ajouter du code sur notre page.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lexik.fr/blog/symfony/symfony/symfony-utilisation-de-la-classe-sffilter-792/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Configurer Ubuntu pour envoyer des mails PHP à la sauce sendmail sans sendmail !</title>
		<link>http://www.lexik.fr/blog/symfony/ubuntu/configurer-ubuntu-pour-envoyer-des-mails-php-a-la-sauce-sendmail-sans-sendmail-237</link>
		<comments>http://www.lexik.fr/blog/symfony/ubuntu/configurer-ubuntu-pour-envoyer-des-mails-php-a-la-sauce-sendmail-sans-sendmail-237#comments</comments>
		<pubDate>Fri, 13 Mar 2009 18:03:14 +0000</pubDate>
		<dc:creator>olivier</dc:creator>
				<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[ubuntu php email]]></category>

		<guid isPermaLink="false">http://www.lexik.fr/sfblog/?p=237</guid>
		<description><![CDATA[Sur windows la fonction mail() de php est configurée pour fonctionner via SMTP que l&#8217;on peut configurer dans le php.ini Sur les systèmes Linux, ça n&#8217;est pas le cas. Php est configuré pour transmettre les mails via un vrai service de transport de mail du style sendmail ou postfix. Le problème de ces programmes (demon), [...]]]></description>
			<content:encoded><![CDATA[<p>Sur windows la fonction mail() de php est configurée pour fonctionner via SMTP que l&#8217;on peut configurer dans le php.ini</p>
<p>Sur les systèmes Linux, ça n&#8217;est pas le cas. Php est configuré pour transmettre les mails via un vrai service de transport de mail du style sendmail ou postfix.<br />
Le problème de ces programmes (demon), c&#8217;est qu&#8217;ils ne sont pas évidents à installer et configurer correctement pour tout les développeurs qui ne sont pas admin système.<span id="more-237"></span></p>
<p>Heureusement ESMTP est là pour nous sauver, nous autres simples développeurs.</p>
<blockquote><p><strong>Esmtp is a send-only sendmail emulator</strong></p></blockquote>
<p>Pour les anglophobes, ESMTP est un émulateur de sendmail pour l&#8217;envoi seulement des mails.<br />
C&#8217;est à dire que c&#8217;est un programme qui comprend les commandes sendmail, les traduit en requêtes smtp et les transmet à un serveur smtp.</p>
<h2>Installation et configuration de ESMTP</h2>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p237code17'); return false;">View Code</a> BASH</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table width="100%" ><tr id="p23717"><td class="code" id="p237code17"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">apt-get</span> <span style="color: #c20cb9; font-weight: bold;">install</span> esmtp</pre></td></tr></table></div>

<p>Ou alors, vous le trouverez dans Synaptic.</p>
<p>Aprés quoi un petit coup de</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p237code18'); return false;">View Code</a> BASH</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table width="100%" ><tr id="p23718"><td class="code" id="p237code18"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">nano</span> <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>esmtprc</pre></td></tr></table></div>

<p>pour aller modifier la configuration et mettre le stmp que l&#8217;on veut utiliser (celui de votre provider).</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p237code19'); return false;">View Code</a> BASH</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table width="100%" ><tr id="p23719"><td class="code" id="p237code19"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;"># Config file for ESMTP sendmail</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># The SMTP host and service (port)</span>
<span style="color: #007800;"><span style="color: #c20cb9; font-weight: bold;">hostname</span></span>=smtp.orange.fr:<span style="color: #000000;">25</span></pre></td></tr></table></div>

<p>Dernier petit point à voir, faire un lien symbolique de sendmail vers esmtp pour faire croire à php que sendmail est installé.</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p237code20'); return false;">View Code</a> BASH</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table width="100%" ><tr id="p23720"><td class="code" id="p237code20"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">ln</span> <span style="color: #660033;">-s</span> <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span>esmtp <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span><span style="color: #c20cb9; font-weight: bold;">sendmail</span></pre></td></tr></table></div>

<p>Et voila ! Vous pouvez coder des envois de mails, dans des conditions de production, avec la méthode sendmail sans avoir eu à passer des heures à configurer votre serveur de mail <img src='http://www.lexik.fr/blog/symfony/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Source : <a href="http://esmtp.sourceforge.net/">http://esmtp.sourceforge.net/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.lexik.fr/blog/symfony/ubuntu/configurer-ubuntu-pour-envoyer-des-mails-php-a-la-sauce-sendmail-sans-sendmail-237/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Virtual host sous Ubuntu</title>
		<link>http://www.lexik.fr/blog/symfony/ubuntu/virtual-host-sous-ubuntu-192</link>
		<comments>http://www.lexik.fr/blog/symfony/ubuntu/virtual-host-sous-ubuntu-192#comments</comments>
		<pubDate>Tue, 03 Mar 2009 11:13:39 +0000</pubDate>
		<dc:creator>Samuel Breton</dc:creator>
				<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[host]]></category>
		<category><![CDATA[virtual]]></category>

		<guid isPermaLink="false">http://www.lexik.fr/sfblog/?p=192</guid>
		<description><![CDATA[&#160; Mise en place d&#8217;un Virtual Host bas&#233;, sur le nom, sous Ubuntu. Pr&#233;-requis : Le dossier du projet doit exister. Cr&#233;er un fichier du nom du projet dans : /etc/apache2/sites-available &#201;dition du fichier: Exemple avec le projet Love: ?View Code XML&#60;virtualhost&#62; ServerName love DocumentRoot &#38;quot;/home/sfprojects/love/web&#38;quot; DirectoryIndex index.php Alias /sf /home/sfprojects/love/lib/vendor/symfony/data/web/sf &#60;directory&#62; AllowOverride All Allow [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;">&nbsp;</p>
<div style="text-align: left;">Mise en place d&#8217;un Virtual Host bas&eacute;, sur le nom, sous Ubuntu.</div>
<p><span id="more-192"></span></p>
<div style="text-align: left;">
<ul>
<li><span style="font-size: x-small;">Pr&eacute;-requis : Le dossier du projet doit exister.</span></li>
</ul>
<ul>
<li><span style="font-size: x-small;">Cr&eacute;er un fichier du nom du projet dans : </span>/etc/apache2/sites-available</li>
</ul>
<ul>
<li>&Eacute;dition du fichier:</li>
</ul>
<div style="text-align: left;"><span style="text-decoration: underline;">Exemple avec le projet Love:</span></div>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p192code22'); return false;">View Code</a> XML</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table width="100%" ><tr id="p19222"><td class="code" id="p192code22"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;virtualhost<span style="color: #000000; font-weight: bold;">&gt;</span></span></span> ServerName love DocumentRoot <span style="color: #ddbb00;">&amp;quot;</span>/home/sfprojects/love/web<span style="color: #ddbb00;">&amp;quot;</span> DirectoryIndex index.php  Alias /sf /home/sfprojects/love/lib/vendor/symfony/data/web/sf  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;directory<span style="color: #000000; font-weight: bold;">&gt;</span></span></span> AllowOverride All Allow from All <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/directory<span style="color: #000000; font-weight: bold;">&gt;</span></span></span> <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;br</span> <span style="color: #000000; font-weight: bold;">/&gt;</span><span style="color: #000000; font-weight: bold;">&lt;/virtualhost<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></td></tr></table></div>

<ul>
<li>G&eacute;n&eacute;ration du fichier dans : /etc/apache2/sites-enabled via la commande :</li>
</ul>
<div style="text-align: center;">
<div style="text-align: left;">
<div style="text-align: center;">a2ensite <strong>nom_du_projet</strong></div>
<div style="text-align: left;">
<div style="text-align: left;">
<ul>
<li>&Eacute;dition du fichier: /etc/hosts : ajouter le nom de l&#8217;host &agrave; la ligne localhost correspondante:</li>
</ul>
</div>
<div style="text-align: center;">127.0.0.1&nbsp;&nbsp; &nbsp;localhost <strong>nom_de_l_host_souhait&eacute;</strong></div>
</div>
</div>
</div>
<ul>
<li>Red&eacute;marrer apache :&nbsp; /etc/init.d/apache2 restart</li>
</ul>
</div>
<div style="text-align: left;">
<div style="text-align: right;"><em><span style="text-decoration: underline;">cf:</span> http://doc.ubuntu-fr.org/tutoriel/virtualhosts_avec_apache2</em></div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.lexik.fr/blog/symfony/ubuntu/virtual-host-sous-ubuntu-192/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
