<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet title="XSL formatting" type="text/xsl" href="http://u-classroom.net/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>U Classroom - apache</title>
  <link>http://u-classroom.net/</link>
  <description>Un blog collectif, orienté vers l'apprentissage et l'enseignement collaboratif et communautaire de techniques applicables aux unix libres</description>
  <language>fr</language>
  <pubDate>Tue, 15 Jul 2008 14:26:24 +0200</pubDate>
  <copyright></copyright>
  <docs>http://blogs.law.harvard.edu/tech/rss</docs>
  <generator>Dotclear</generator>
  
    
  <item>
    <title>Session Apache/HTTP</title>
    <link>http://u-classroom.net/post/2007/09/26/Session-Apache/HTTP</link>
    <guid isPermaLink="false">urn:md5:d8ea1ccd943f966ba84d25480602339b</guid>
    <pubDate>Wed, 26 Sep 2007 14:28:00 +0200</pubDate>
    <dc:creator>Skateinmars</dc:creator>
        <category>apache</category><category>classroom</category><category>debian</category><category>Planet</category><category>Ubuntu</category>    
    <description>    Certains se croient encore en vacances et remettent sans cesse leurs projets au lendemain, mais il faut bien se mettre au travail à un moment donné.&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Voila donc pour vous une session HTTP/Apache. Bien que l'on parlera du célèbre serveur web, son installation et sa configuration basique l'accent sera mis sur le principe des serveurs webs en général, d'ou une partie importante sur HTTP.&lt;/p&gt;
&lt;p&gt;Rendez-vous le &lt;strong&gt;mardi 2 octobre&lt;/strong&gt; à &lt;strong&gt;20h30&lt;/strong&gt; heure de Paris (UTC+0200), comme toujours sur le channel irc #ubuntu-fr-classroom (serveur irc.freenode.net).&lt;/p&gt;
&lt;br /&gt;Prérequis pour ce cours qui s'annonce passionnant (sisi) :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Un système ubuntu (ou debian)&lt;/li&gt;
&lt;li&gt;Avoir déjà utilisé la ligne de commande (se déplacer dans un répertoire, obtenir les droits root)&lt;/li&gt;
&lt;/ul&gt;
L'installation sera vue durant le cours mais les utilisateurs en 56k peuvent dès à présent télécharger les paquets suivants : apache2 apache2-mpm-prefork libapache2-mod-php5.&lt;br /&gt;&lt;br /&gt;A bientôt !&lt;br /&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Python pour dynamiser vos sites (épisode IV - un nouvel espoir)</title>
    <link>http://u-classroom.net/post/2007/05/25/Python-pour-dynamiser-vos-sites</link>
    <guid isPermaLink="false">urn:md5:9dfd63e127ae2ceecf7021d4908abcbd</guid>
    <pubDate>Fri, 25 May 2007 20:46:00 +0200</pubDate>
    <dc:creator>gpocentek</dc:creator>
        <category>apache</category><category>mod_python</category><category>python</category>    
    <description>&lt;p&gt;Chez Ubuntu on aime bien python, et on aime bien faire des petits scripts qui génèrent des pages web (pour des stats par exemple). Et on a même la chance de pouvoir créer des pages dynamiques avec python&amp;nbsp;!&lt;/p&gt;
&lt;p&gt;J'ai eu un peu de mal à trouver une documentation pas trop mal faite qui donne les bases de l'utilisation de &lt;a href=&quot;http://www.mo&quot; dpython.org=&quot;&quot;&gt;mod_python&lt;/a&gt; de manière simple et efficace. Essayons de remédier à ça.&lt;/p&gt;
&lt;h3&gt;Notes à propos de ce document&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Mieux vaut connaître un minimum python pour le suivre&amp;nbsp;;&lt;/li&gt;
&lt;li&gt;pour faciliter les choses, on suppose que les fichiers créés le sont à la racine du serveur web.&lt;/li&gt;
&lt;/ul&gt;    &lt;h3&gt;Installation&lt;/h3&gt;
&lt;p&gt;Sous debian/ubuntu &amp;amp; cie, rien de plus simple&amp;nbsp;:&lt;/p&gt;
&lt;pre&gt;sudo apt-get install libapache2-mod-python&lt;/pre&gt;
&lt;h3&gt;PSP ou Publisher Handler ?&lt;/h3&gt;
&lt;p&gt;&lt;tt&gt;mod_python&lt;/tt&gt; propose deux types de fonctionnement&amp;nbsp;:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;PSP&lt;/strong&gt; – Python Server Pages – propose le même mode de fonctionnement que (par exemple) PHP. Du code python est inséré entre des balises &lt;code&gt;&amp;lt;%&lt;/code&gt; et &lt;code&gt;%&amp;gt;&lt;/code&gt;, pour générer une page contenant du texte HTML. Nous n'en parlerons pas ici&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Publisher Handler&lt;/strong&gt; propose une méthode totallement différente, et plutôt sympathique à utiliser :)&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Diving in&lt;/h3&gt;
&lt;h4&gt;htaccess&lt;/h4&gt;
&lt;p&gt;La première chose à faire pour utiliser le Publisher Handler est de créer un fichier &lt;tt&gt;.htaccess&lt;/tt&gt; (ou d'éditer directement la configuration d'apache) afin de donner certaines directives. Ce fichier ressemblera à&amp;nbsp;:&lt;/p&gt;
&lt;pre&gt;AddHandler mod_python .py&lt;br /&gt;PythonHandler mod_python.publisher&lt;br /&gt;PythonDebug On &lt;/pre&gt;
&lt;p&gt;Les fichiers avec extension &lt;tt&gt;.py&lt;/tt&gt; seront donc traités par apache comme des fichiers liés à mod_python. Le mode débogage n'est pas nécessaire (normalement) sur des pages en production, mais est presque indispensable pendant la phase de développement.&lt;/p&gt;
&lt;h4&gt;Script - étape 1&lt;/h4&gt;
&lt;p&gt;Créons un script &lt;tt&gt;script.py&lt;/tt&gt; avec ces quelques lignes&amp;nbsp;:&lt;/p&gt;
&lt;pre&gt;from mod_python import apache&lt;br /&gt;&lt;br /&gt;def index(req):&lt;br /&gt;        return &quot;&amp;lt;h2&amp;gt;hello world&amp;lt;/h2&amp;gt;&quot;&lt;/pre&gt;
&lt;p&gt;Rendez-vous sur &lt;tt&gt;&lt;a class=&quot;linkification-ext&quot; href=&quot;http://localhost/script&quot; title=&quot;Linkification: http://localhost/script&quot;&gt;http://localhost/script&lt;/a&gt;&lt;/tt&gt;, et admirez le résultat&amp;nbsp;!&lt;/p&gt;
&lt;p&gt;La première ligne du script parle d'elle même. La fonction &lt;tt&gt;index&lt;/tt&gt; est appelée lors de l'ouverture de la page web, et la chaîne de caractères qu'elle retourne est le contenu de la page. Mais dans cet exemple le texte est traité comme tel, c'est-à-dire non interprété. Pour remédier à ça, le script doit être transformé en&amp;nbsp;:&lt;/p&gt;
&lt;h4&gt;Script - étape 2&lt;/h4&gt;
&lt;pre&gt;from mod_python import apache&lt;br /&gt;&lt;br /&gt;def index(req):&lt;br /&gt;        req.content_type = &quot;text/html; charset=utf-8&quot;&lt;br /&gt;        return &quot;&amp;lt;h2&amp;gt;hello world&amp;lt;/h2&amp;gt;&quot;&lt;/pre&gt;
&lt;p&gt;Le texte retourné sera maintenant traité comme de l'html.&lt;/p&gt;
&lt;h4&gt;Script - étape 3&lt;/h4&gt;
&lt;p&gt;Passons à l'étape suivante avec un exemple de traitement de formulaire. Voici le code&amp;nbsp;:&lt;/p&gt;
&lt;pre&gt;from mod_python import apache&lt;br /&gt;&lt;br /&gt;def index(req):&lt;br /&gt;	req.content_type = &quot;text/html; charset=utf-8&quot;&lt;br /&gt;	return &quot;&quot;&quot;&amp;lt;html&amp;gt;&lt;br /&gt;  &amp;lt;body&amp;gt;&lt;br /&gt;    &amp;lt;form method=&quot;post&quot; action=&quot;http://u-classroom.net/post/2007/05/25/script/result&quot;&amp;gt;&lt;br /&gt;      Nom: &amp;lt;input type=&quot;text&quot; name=&quot;nom&quot;&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;      Prenom: &amp;lt;input type=&quot;text&quot; name=&quot;prenom&quot;&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;      &amp;lt;input type=&quot;submit&quot; value=&quot;go&quot;&amp;gt;&lt;br /&gt;    &amp;lt;/form&amp;gt;&lt;br /&gt;  &amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;br /&gt;&quot;&quot;&quot;&lt;br /&gt;&lt;br /&gt;def result(req):&lt;br /&gt;	req.content_type = &quot;text/html; charset=utf-8&quot;&lt;br /&gt;	return &quot;Bonjour %s %s !&quot; % (req.form['prenom'], req.form['nom'])&lt;/pre&gt;
&lt;p&gt;Comme dans l'exemple précédent, la fonction &lt;tt&gt;index&lt;/tt&gt; est appelée lors de l'accès à la page &lt;tt&gt;&lt;a class=&quot;linkification-ext&quot; href=&quot;http://localhost/script&quot; title=&quot;Linkification: http://localhost/script&quot;&gt;http://localhost/script&lt;/a&gt;&lt;/tt&gt;. Lorsque le formulaire est validé, la page &lt;tt&gt;script/result&lt;/tt&gt; est appelée, qui correspond en fait à un appel à la fonction &lt;tt&gt;result&lt;/tt&gt; du script &lt;tt&gt;script.py&lt;/tt&gt;.&lt;/p&gt;
&lt;p&gt;L'objet &lt;tt&gt;req&lt;/tt&gt; (la requête envoyée au serveur), possède un attribut &lt;tt&gt;form&lt;/tt&gt;, un dictionnaire qui contient toutes les données du formulaire validé &quot;name&quot; et &quot;value&quot;). Ceci fonctionne quelque soit la méthode d'envoi du formulaire utilisée (get ou post). Il ne reste plus qu'à traiter le formulaire comme bon vous semble et retourner la page html&lt;/p&gt;
&lt;p&gt;Bien évidemment, tous les modules et possibilités de python sont utilisables pour dynamiser vos pages web.&lt;/p&gt;
&lt;p&gt;Quelques liens utiles&amp;nbsp;:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.modpython.org/&quot;&gt;http://www.modpython.org/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.modpython.org/live/current/doc-html/&quot;&gt;documentation mod_python&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.onlamp.com/pub/a/python/2004/02/26/python_server_pages.html&quot;&gt;PSP [en]&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Au prochain (éventuel) épisode, gestion des sessions et cookies...&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Mise en page des listings par défaut dans apache (fancy index)</title>
    <link>http://u-classroom.net/post/2007/05/23/Mise-en-page-des-listings-par-defaut-dans-apache-fancy-index</link>
    <guid isPermaLink="false">urn:md5:0fcde48a2d5681dafd235dc8cad7c615</guid>
    <pubDate>Wed, 23 May 2007 20:54:00 +0200</pubDate>
    <dc:creator>effraie</dc:creator>
        <category>apache</category>    
    <description>    &lt;p&gt;Si vous aussi vous trouvez un peu triste les &lt;a href=&quot;http://vrac.effraie.org/apache-defaut.png&quot; hreflang=&quot;fr&quot;&gt;listings par défaut&lt;/a&gt; que produit apache pour les répertoires web, j'ai peut-être une solution qui va vous intéresser. &lt;br /&gt;
Pour la mise en œuvre, il faut que votre hébergeur active l' option &lt;code&gt;AllowOverride All&lt;/code&gt;  et autorise les .htacess.
&lt;br /&gt; &lt;br /&gt;&lt;/p&gt;


&lt;p&gt;Pour obtenir un résultat un peu plus &lt;a href=&quot;http://vrac.effraie.org/&quot; hreflang=&quot;fr&quot;&gt;attrayant&lt;/a&gt;, vous pouvez, grâce à un fichier .htaccess bien senti, ajouter des informations de mise en page, ainsi que un header et un footer. &lt;br /&gt; &lt;br /&gt;
Comme un exemple vaut mieux qu'un long discours, voici le .htaccess que j'utilise:
&lt;br /&gt; &lt;br /&gt;&lt;/p&gt;
&lt;pre&gt;
AddIcon (DIR,/.iconsfoldergray.gif) ^^DIRECTORY^^      ### toutes les lignes qui commencent par
AddIcon (FOLDER,/.backarrow.gif) ..                    ### addIcon servent a attribuer des icônes
AddIcon (DEB,/.iconsdebian.jpg) .deb .DEB              ### à des type de fichiers prédéfinies
AddIcon (RAR,/icons/compressed.gif) .rar .RAR .zip .ZIP .ZiP .zIP .ziP .ZIp .Zip
AddIcon (RAR,/icons/compressed.gif) .bz2 .BZ2 .tbz2 .tgz .tbz .TGZ .TBZ2 .TBZ .tb2 .TB2
AddIcon (TXT,/.iconstext.gif) .txt .htm .HTM .html .HTML .htmL .xml .XML .TXT .RTF .rtf
AddIcon (IMG,/.iconsimage.gif) .jpg .JPG .jpeg .JPEG .gif .GIF .png .PNG
AddAlt &amp;quot;pic&amp;quot; .gif .GIF .jpg .JPG .png .PNG .bmp .BMP .png .PNG             ### les lignes commençant par
AddAlt &amp;quot;snd&amp;quot; .mp3 .MP3 .mP3 .Mp3 .s3m                                      ### AddAlt prévoit un text de 
AddAlt &amp;quot;txt&amp;quot; .txt .pdf .html .htm .ps                                      ### remplacement si il n'y a pas d'icon
AddAlt &amp;quot;PHP&amp;quot; .PHP3 .php .PHP .php3 .php4 .phps .inc .class
AddAlt &amp;quot;Zip&amp;quot; .zip .ZIP .gz .GZ 

IndexOptions FancyIndexing FoldersFirst                       ### active le &amp;quot;fancy index&amp;quot; et liste les folders en 1°
IndexIgnore favicon.ico .??*                                  ### les fichiers qui ne seront pas listés
HeaderName .header.html                                       ### le nom du header
ReadmeName .pied.txt                                          ### le nom du footer
&lt;/pre&gt;


&lt;p&gt;&lt;br /&gt; &lt;br /&gt;
J'imagine que la documentation d'apache fourmille d'autres options disponibles, mais celle là me suffisent amplement! &lt;br /&gt; &lt;br /&gt;
Notez que vous pouvez définir des éléments html et CSS dans les header et footer, et c'est essentiellement ça qui va vous permettre de faire de la &lt;em&gt;mise en page&lt;/em&gt;.
&lt;br /&gt; &lt;br /&gt;
Si vous avez la flemme de partir de zero, vous pouvez récupérer l'&lt;a href=&quot;http://vrac.effraie.org/apache_fancy_index.tar.gz&quot; hreflang=&quot;fr&quot;&gt;archive de mes fichiers&lt;/a&gt;, et partir de là pour décorer vos propres répertoires. Il faut copier &lt;em&gt;.htacess, .header.html&lt;/em&gt; et &lt;em&gt;.footer.txt&lt;/em&gt; dans tout les répertoires que vous voulez décorer, et les icônes à la racine du serveur web. &lt;br /&gt; &lt;br /&gt;
Amusez vous bien! &lt;br /&gt; &lt;br /&gt;&lt;/p&gt;</description>
    
    
    
      </item>
    
</channel>
</rss>