<?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>CoolCoyote.net &#187; Linux Debian</title>
	<atom:link href="http://www.coolcoyote.net/category/linux-debian/feed" rel="self" type="application/rss+xml" />
	<link>http://www.coolcoyote.net</link>
	<description>Coding - Linux</description>
	<lastBuildDate>Sun, 07 Nov 2010 15:27:34 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>fr</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Installation de APC sous Debian</title>
		<link>http://www.coolcoyote.net/php-mysql/installation-de-apc-sous-debian</link>
		<comments>http://www.coolcoyote.net/php-mysql/installation-de-apc-sous-debian#comments</comments>
		<pubDate>Mon, 07 Jun 2010 13:50:16 +0000</pubDate>
		<dc:creator>Denis S.</dc:creator>
				<category><![CDATA[Linux Debian]]></category>
		<category><![CDATA[PHP - MySQL]]></category>
		<category><![CDATA[apc]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[opcode]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.coolcoyote.net/?p=252</guid>
		<description><![CDATA[APC est un cache d&#8217;OPCodes pour PHP. Il permet de mettre en cache au niveau serveur le code de PHP précompilé afin de ne pas refaire ce traitement.
Vous trouverez plus d&#8217;informations dans l&#8217;article de Julien Pauli sur developpez.com.
Ici il s&#8217;agit de voir comment l&#8217;installer sous Debian. Très facile finalement, il existe un paquet pour ça:
&#62; [...]]]></description>
			<content:encoded><![CDATA[<p>APC est un cache d&#8217;OPCodes pour PHP. Il permet de mettre en cache au niveau serveur le code de PHP précompilé afin de ne pas refaire ce traitement.</p>
<p>Vous trouverez plus d&#8217;informations dans <a href="http://julien-pauli.developpez.com/tutoriels/php/apc/" target="_blank">l&#8217;article</a> de <a href="http://julien-pauli.developpez.com/" target="_blank">Julien Pauli</a> sur developpez.com.</p>
<p>Ici il s&#8217;agit de voir comment l&#8217;installer sous Debian. Très facile finalement, il existe un paquet pour ça:</p>
<pre class="code">&gt; apt-get install php-apc</pre>
<p>Il faudra bien sûr redémarrer Apache.</p>
<p>Le fichier permettant le monitoring du cache est situé dans <strong>/usr/share/doc/php-apc</strong> et s&#8217;appelle <strong>apc.php.gz</strong>. Il faudra donc le décompresser:</p>
<pre class="code">&gt; gzip -d apc-php.gz</pre>
<p>Il vous suffit de déplacer ce fichier où bon vous semble.</p>
<p>A noter que le fichier de config d&#8217;APC se situe dans:</p>
<pre class="code">/etc/php5/conf.d/apc.ini</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.coolcoyote.net/php-mysql/installation-de-apc-sous-debian/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Transfert de fichiers via SSH</title>
		<link>http://www.coolcoyote.net/linux-debian/transfert-de-fichiers-via-ssh</link>
		<comments>http://www.coolcoyote.net/linux-debian/transfert-de-fichiers-via-ssh#comments</comments>
		<pubDate>Tue, 18 Aug 2009 20:53:48 +0000</pubDate>
		<dc:creator>Denis S.</dc:creator>
				<category><![CDATA[Linux Debian]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[fichier]]></category>
		<category><![CDATA[scp]]></category>
		<category><![CDATA[ssh]]></category>
		<category><![CDATA[transfert]]></category>

		<guid isPermaLink="false">http://www.coolcoyote.net/?p=165</guid>
		<description><![CDATA[Dernièrement j&#8217;ai eu à migrer le site d&#8217;un client d&#8217;un serveur dédié à un autre.
Au lieu de faire un backup des données sur ma machine puis les renvoyer sur le nouveau serveur, j&#8217;ai décidé de faire directement un transfert de serveur à serveur via SSH. C&#8217;est nettement plus rapide car on bénéficie de la bande [...]]]></description>
			<content:encoded><![CDATA[<p>Dernièrement j&#8217;ai eu à migrer le site d&#8217;un client d&#8217;un serveur dédié à un autre.</p>
<p>Au lieu de faire un backup des données sur ma machine puis les renvoyer sur le nouveau serveur, j&#8217;ai décidé de faire directement un transfert de serveur à serveur via SSH. C&#8217;est nettement plus rapide car on bénéficie de la bande passante du serveur.</p>
<p><span id="more-165"></span></p>
<p>Pour cela nous allons utiliser la commande <strong>scp</strong>. La procédure est toute simple, on se loggue sur le serveur de destination et on tape la commande suivante:</p>
<pre class="code">&gt; scp -pr user@host:/home/user/www/ /home/user/</pre>
<p>Quelques précisions:</p>
<ul>
<li><strong>-pr</strong> : signifie que l&#8217;on copie tout le contenu récursivement (dossiers, sous-dossiers et leur contenu) et que l&#8217;on veut conserver les options des fichiers</li>
<li><strong>user@host</strong> : le login et l&#8217;adresse du serveur sur lequel on va chercher les fichiers. L&#8217;utilisateur est bien sûr un utilisateur valide sur le serveur sur lequel nous allons récupérer le contenu et qui a les droits de lecture sur les fichiers et dossiers que l&#8217;on veut télécharger.</li>
<li><strong>/home/user/www</strong> : le chemin du répertoire contenant les fichiers à copier. Bien entendu c&#8217;est à personnaliser</li>
<li><strong>/home/user/</strong> : le chemin de destination des fichiers sur notre serveur local. A personnaliser aussi.</li>
</ul>
<p>Notez que l&#8217;on vous demandera bien évidemment le mot de passe de l&#8217;utilisateur afin de pouvoir se connecter au serveur distant.</p>
<p>Les fichiers seront copiés en conservant le chmod de chaque fichier. Par contre leur appartenance sera changée selon l&#8217;utilisateur sous lequel vous allez faire l&#8217;opération. Si vous avez fait l&#8217;opération sous <strong>root</strong>, n&#8217;oubliez pas de faire un petit</p>
<pre class="code">&gt; chown -R user:group /home/user/www</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.coolcoyote.net/linux-debian/transfert-de-fichiers-via-ssh/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Rediriger le traffic HTTP d&#8217;un serveur à un autre avec Apache</title>
		<link>http://www.coolcoyote.net/linux-debian/rediriger-le-traffic-http-dun-serveur-a-un-autre-avec-apache</link>
		<comments>http://www.coolcoyote.net/linux-debian/rediriger-le-traffic-http-dun-serveur-a-un-autre-avec-apache#comments</comments>
		<pubDate>Tue, 04 Aug 2009 20:13:07 +0000</pubDate>
		<dc:creator>Denis S.</dc:creator>
				<category><![CDATA[Linux Debian]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[http]]></category>
		<category><![CDATA[proxy]]></category>

		<guid isPermaLink="false">http://www.coolcoyote.net/?p=170</guid>
		<description><![CDATA[Un site  est sur un serveur dédié A. Vous voulez le migrer sur un serveur dédié B. La migration des fichiers et de la base de données éventuelle ne pose pas spécialement de problème. Ce qui est plus délicat, c&#8217;est lorsque vous allez modifier les pointages DNS du nom de domaine : en effet, [...]]]></description>
			<content:encoded><![CDATA[<p>Un site  est sur un serveur dédié A. Vous voulez le migrer sur un serveur dédié B. La migration des fichiers et de la base de données éventuelle ne pose pas spécialement de problème. Ce qui est plus délicat, c&#8217;est lorsque vous allez modifier les pointages DNS du nom de domaine : en effet, le temps de la propagation, certains visiteurs vont rapidement arriver sur le serveur dédié B alors que d&#8217;autres vont rester bloqués sur le serveur A pendant 24 à 48h. Si dans le cadre d&#8217;un site statique cela ne pose aucun souci, c&#8217;est plus problématique dans le cas d&#8217;un site dynamique car cela peut engendrer une désynchronisation de la base de données entre les deux serveurs et conduire à des pertes de données.</p>
<p>L&#8217;idéal serait que le serveur A puisse rediriger les visiteurs sur le serveur B le temps de la propagation des DNS. Apache va nous y aider.</p>
<p><span id="more-170"></span></p>
<p>Pour cela il faut dans un premier temps activer le module proxy dans Apache. Nous allons ici nous contenter de rediriger le traffic HTTP uniquement.</p>
<pre class="code">&gt; cd /etc/apache2/mods-enabled
&gt; ln -s ../mods-available/proxy.conf proxy.conf
&gt; ln -s ../mods-available/proxy.load proxy.load
&gt; ln -s ../mods-available/proxy_http.load proxy_http.load</pre>
<p>Ensuite on va modifier le virtualhost du domaine en question:</p>
<pre class="code">&lt;VirtualHost *&gt;
    ServerName mondomaine.com
    ServerAlias mondomaine.com www.mondomaine.com

    &lt;Proxy *&gt;
        Order deny,allow
        Allow from all
    &lt;/Proxy&gt;

    ProxyRequests Off
    ProxyPass / http://mon_ip_de_domaine/~user/
    ProxyPassReverse / http://mon_ip_de_domaine/~user/
&lt;/VirtualHost&gt;</pre>
<p>Dans ce schéma, nous voyons que sur le serveur de destination nous avons activé le <strong>mod_userdir</strong> afin de pouvoir accéder au site par une adresse temporaire.</p>
<p>Un petit</p>
<pre class="code">&gt; /etc/init.d/apache2 reload</pre>
<p>et votre traffic devrait être redirigé.</p>
<p>Attention cependant pour tous les sites dynamiques utilisant PHP : avec cette méthode,  les variables <strong>$_SERVER['PHP_SELF']</strong> et <strong>$_SERVER['REQUEST_URI']</strong> auront les informations du serveur de destination&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.coolcoyote.net/linux-debian/rediriger-le-traffic-http-dun-serveur-a-un-autre-avec-apache/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Configuration d&#8217;un serveur dédié chez OVH</title>
		<link>http://www.coolcoyote.net/linux-debian/configuration-dun-serveur-dedie-chez-ovh</link>
		<comments>http://www.coolcoyote.net/linux-debian/configuration-dun-serveur-dedie-chez-ovh#comments</comments>
		<pubDate>Wed, 15 Jul 2009 15:57:35 +0000</pubDate>
		<dc:creator>Denis S.</dc:creator>
				<category><![CDATA[Linux Debian]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[configuration]]></category>
		<category><![CDATA[Exim4]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[ovh]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[phpMyAdmin]]></category>
		<category><![CDATA[ProFTPD]]></category>
		<category><![CDATA[serveur dédié]]></category>

		<guid isPermaLink="false">http://www.coolcoyote.net/?p=64</guid>
		<description><![CDATA[Ça faisait un moment que je n&#8217;avais pas eu à configurer un serveur dédié pour de la production. L&#8217;occasion d&#8217;en faire un petit article, le but étant de faire un serveur très basique, sans gestion de boîte mails, sans LDAP, sans chroot, etc. Juste une base LAMP.
Ce serveur dédié a été choisi chez OVH. J&#8217;ai [...]]]></description>
			<content:encoded><![CDATA[<p>Ça faisait un moment que je n&#8217;avais pas eu à configurer un serveur dédié pour de la production. L&#8217;occasion d&#8217;en faire un petit article, le but étant de faire un serveur très basique, sans gestion de boîte mails, sans LDAP, sans chroot, etc. Juste une base LAMP.</p>
<p>Ce serveur dédié a été choisi chez OVH. J&#8217;ai bien sûr demandé une Debian nue mais ça n&#8217;a pas vraiment été le cas. En fait, OVH livre une distribution Debian avec un noyau personnalisé et plusieurs outils installés par défaut. Suite à une mésaventure lors du passage de <strong>Etch</strong> à <strong>Lenny</strong> sur un de mes dédiés, j&#8217;ai décidé de ne plus laisser le noyau d&#8217;OVH mais d&#8217;installer un noyau standard. Si cette manipulation vous intéresse, <a href="http://www.coolcoyote.net/linux-debian/changer-le-noyau-dune-debian-ovh">voyez ce billet</a>. Sinon ce qui suit fonctionne quand même parfaitement.</p>
<p><span id="more-64"></span></p>
<h3>Les outils</h3>
<p>La première chose que je fais en arrivant sur une installation neuve, c&#8217;est de configurer le raccourcit <strong>ll</strong> afin d&#8217;avoir un <strong>ls</strong> détaillé et en couleur. J&#8217;ai déjà fais un billet là-dessus que vous pourrez trouver <a href="http://www.coolcoyote.net/linux-debian/raccourcis-et-couleurs-sous-la-console">à cette adresse</a>.</p>
<p>La deuxième chose est de configurer un accès par clé privée <strong>ssh</strong>. L&#8217;article est <a href="http://www.coolcoyote.net/linux-debian/ssh-cle-publiqueprivee">à cet endroit</a>.</p>
<p>Ceci fait, nous allons faire une première mise à jour du système:</p>
<pre class="code">&gt; apt-get update
&gt; apt-get -u dist-upgrade</pre>
<p>Vient ensuite l&#8217;installation de quelques outils. Chez moi ils étaient déjà pré-installés mais s&#8217;ils ne le sont pas, faites-le:</p>
<ul>
<li><strong>aptitude</strong> (permet de gérer les packages dans un mode semi-graphique)</li>
<li><strong>vim</strong> (qui est une version un peu plus évoluée de vi et qui permet notamment la coloration synthaxique)</li>
<li><strong>screen</strong> (permet de créer des consoles virtuelles supplémentaires, voir <a href="http://www.coolcoyote.net/linux-debian/les-screens-sous-debian">ce billet</a>)</li>
</ul>
<p>Pour activer la coloration syntaxique dans <strong>vim</strong> il faut taper la commande</p>
<pre class="code">:syn on</pre>
<p>Si vous voulez qu&#8217;elle soit permanente, créez le fichier <strong>.vimrc </strong>dans votre répertoire utilisateur et insérez la ligne de commande:</p>
<pre class="code">syn on</pre>
<h3>Déplacer le dossier /var</h3>
<p>Je pense que la première chose à faire, avant de se retrouver avec des daemons qui tournent de tous les côtés, c&#8217;est de déplacer le dossier <strong>/var</strong>. En effet les partitions système ne sont pas très grosses chez OVH et il arrivera un moment où les logs et les bases de données vont saturer cette partition et amener à un plantage du serveur. Etant donné qu&#8217;on a de la place dans <strong>/home</strong>, on va y déplacer le dossier <strong>/var</strong></p>
<pre class="code">&gt; cp -Rp var/ /home/
&gt; mv /var/ /var.old/
&gt; ln -s /home/var/ var</pre>
<h3>Installation de MySQL</h3>
<p>rien de plus simple:</p>
<pre class="code">&gt; apt-get install mysql-server</pre>
<p>Dans la dernière version que j&#8217;ai installé, MySQL me propose désormais de paramétrer le mot de passe <strong>root </strong>du serveur. Je vous encourage fortement à le faire dès maintenant. Si vous ne le faites pas, vous pourrez le faire plus tard mais le plus tôt est le mieux car à ce niveau, ce n&#8217;est plus un trou de sécu, c&#8217;est la porte ouverte à toutes les fenêtres  <img src='http://www.coolcoyote.net/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<h3>Installation d&#8217;Apache 2.2</h3>
<p>Pareil, trop dur Debian:</p>
<pre class="code">&gt; apt-get install apache2-mpm-prefork</pre>
<p>Notez que l&#8217;on installe ce paquet là d&#8217;Apache car le module PHP5 en dépend. Il ne fonctionne pas avec le paquet classique d&#8217;Apache 2.2.</p>
<h3>Installation de PHP 5</h3>
<pre class="code">&gt; apt-get install libapache2-mod-php5</pre>
<p>On va devoir également installer quelques modules supplémentaires pour PHP:</p>
<pre class="code">&gt; apt-get install php5-cli
&gt; apt-get install php5-gd
&gt; apt-get install php5-mcrypt
&gt; apt-get install php5-mysql</pre>
<p>sont un minimum je pense. On peut facilement voir la liste des modules dispos en faisant un petit:</p>
<pre class="code">&gt; dpkg -l *php5*</pre>
<p>A ce niveau on peut déjà faire quelques petits tests. Déjà il faut redémarrer Apache:</p>
<pre class="code">&gt; /etc/init.d/apache2 restart</pre>
<p>Puis les tests : taper l&#8217;adresse du serveur dans votre navigateur web. Vous devriez avoir le fameux &laquo;&nbsp;It Works!&nbsp;&raquo; d&#8217;Apache.</p>
<p>Dans le répertoire <strong>/var/www </strong>créez un fichier <strong>info.php</strong> dans lequel vous allez mettre le code suivant:</p>

<div class="cc_syntax-container"><table><tr><td class="line-numbers"><pre>1
2
3
</pre></td><td class="cc_syntax"><pre class="php"><span class="kw2">&lt;?php</span>
<span class="kw3">phpinfo</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
<span class="sy1">?&gt;</span></pre></td></tr></table></div>

<p>Pareil, dans votre navigateur tapez : <strong>http://monserver/info.php</strong>. Normalement la config de PHP apparaît.</p>
<h3>Configuration</h3>
<p>maintenant que l&#8217;environnement LAMP est installé, on va faire un peu de configuration.</p>
<p>Tout d&#8217;abord pour MySQL, de base il n&#8217;y a rien de spécial à toucher. Cependant si vous désirez personnaliser votre installation, vous pouvez le faire en rajoutant un fichier dans <strong>/etc/mysql/conf.d</strong>. Toutes les options que vous y insèrerez seront prises en compte automatiquement.</p>
<p>Pour PHP, il faut faire la configuration classique de <strong>php.ini</strong> qui se trouve dans <strong>/etc/php5/apache2/php.ini</strong></p>
<p>Ce fichier est configuré de façon très basique. Tel quel il fonctionne, il y a cependant moyen de l&#8217;améliorer un petit peu:</p>
<p>Si vous n&#8217;avez pas de scripts PHP balisés par <strong>&lt;?</strong> et<strong> ?&gt;</strong>, mettez l&#8217;option <strong>short_open_tag</strong> à <strong>Off</strong>. Cela obligera les scripts PHP à être balisés par <strong>&lt;?php</strong> et <strong>?&gt;</strong>. Pourquoi? A partir de PHP6, le balisage court n&#8217;existera plus. Autant se mettre à la norme dès maintenant.</p>
<p>Si vous voulez désactiver certaines fonctions par mesure de sécurité (exec par exemple), vous pouvez les rajouter à l&#8217;option disable_functions en les séparant par des virgules.</p>
<p>En production, on conseille de passer l&#8217;option <strong>display_errors</strong> à <strong>Off</strong> car cela peu donner des indications importantes à une personne mal intentionnée. Par contre on passera le paramètre <strong>log_errors</strong> à <strong>On</strong> pour que les messages d&#8217;erreur soient enregistrés dans un fichier.</p>
<p>Si vous avez de vieux sites codés en PHP, peut-être aurez vous besoin de passer le paramètre <strong>register_globals</strong> à <strong>On</strong>. Si vous pouvez vous en passer ce n&#8217;est que mieux, question de sécurité.</p>
<p>Vous pouvez également décommenter la ligne:</p>
<pre class="code">;include_path = ".:/usr/share/php"</pre>
<p>Cela vous permettra de protéger certains fichiers d&#8217;inclusion en les déportant de l&#8217;espace accessible par le web.</p>
<p>Passons maintenant à la configuration d&#8217;Apache. Tout se passe dans le répertoire <strong>/etc/apache2/</strong></p>
<p>La première chose que nous allons faire c&#8217;est activer les modules dont nous avons besoin. La gestion des modules Apache à la sauce Debian est plutôt bien foutue: Dans le répertoire <strong>mods-available</strong> se trouvent tous les modules disponibles pour Apache. Le répertoire <strong>mods-enabled</strong> contient les modules activés. Si on veut activer un module, on ne va pas copier le module en question du répertoire <strong>mods-available</strong> au répertoire <strong>mods-enabled</strong>, mais plutôt faire un lien symbolique dans le répertoire <strong>mods-enabled</strong> vers les modules que l&#8217;on veut activer. Par exemple, pour activer le <strong>mod_rewrite</strong>, se placer dans le répertoire <strong>mods-enabled</strong> et taper la commande:</p>
<pre class="code">&gt; ln -s ../mods-available/rewrite.load rewrite.load</pre>
<p>Faire cela pour tous les modules que vous voulez activer. Si par exemple vous voulez activer le module <strong>userdir</strong>, n&#8217;oubliez pas qu&#8217;il y a deux liens à faire: un pour le <strong>.load</strong> et un pour le <strong>.conf</strong></p>
<p>Les autres éléments de configuration se trouvent dans le répertoire <strong>/etc/apache2/conf.d</strong>. A l&#8217;image de ce qui se fait pour MySQL, tout fichier créé dans ce répertoire et contenant des directives sera pris en compte et écrasera la configuration d&#8217;origine. De base il y a un fichier charset qui contient une directive</p>
<pre class="code">AddDefaultCharset UTF-8</pre>
<p>Qui active le jeu de caractère UTF-8 par défaut. Si vous préférez activer l&#8217;ISO-8859-1 par défaut, remplacez par:</p>
<pre class="code">AddDefaultCharset on</pre>
<p>On va également créer un fichier <strong>directoryindex</strong> contenant la directive suivante:</p>
<pre class="code">DirectoryIndex index.html index.htm index.cgi index.pl index.php index.xhtml</pre>
<p>Qui permet d&#8217;accepter une page <strong>index.php</strong> ou <strong>index.cgi</strong> comme page d&#8217;accueil pour un site</p>
<p>Si vous voulez accepter les CGI, il faut egalement créer un fichier <strong>cgi.conf</strong> dans lequel on va mettre:</p>
<pre class="code">AddHandler cgi-script .pl
AddHandler cgi-script .cgi</pre>
<p>Ce qui va permettre d&#8217;accepeter les fichier <strong>.pl</strong> et <strong>.cgi</strong> comme CGI</p>
<p>Vous pouvez bien sûr continuer comme ça à paramétrer tout ce que vous voulez.</p>
<h3>Installation de ProFTPD</h3>
<p>On est presque prêt à accueillir nos premiers sites. Mais pour cela il faut les uploader sur le serveur et pour ça il nous faut un serveur FTP. En voici un : <strong>ProFTPD</strong></p>
<pre class="code">&gt; apt-get install proftpd</pre>
<p>On vous demandera si vous voulez le lancer sous <strong>inetd</strong> ou indépendamment, choisissez la deuxième option.</p>
<p>Après installation, le serveur est déjà prêt à l&#8217;utilisation. Si vous voulez changer la configuration, vous pouvez le faire en modifiant le fichier <strong>/etc/proftpd/proftpd.conf</strong>, mais on peut déjà exploiter le serveur tel quel.</p>
<p>Il n&#8217;y a juste qu&#8217;une chose à modifier dans la configuration du serveur. Il faut rajouter les lignes suivantes:</p>
<pre class="code">DefaultRoot ~
IdentLookups off
UseReverseDNS off</pre>
<p>La première instruction permet de bloquer chaque utilisateur dans son répertoire et évite qu&#8217;il se balade sur tout le serveur. Les deuxièmes et troisièmes instructions désactivent des traitements DNS de proftpd et permettent une connexion rapide au serveur (essayez les deux et voyez la différence).</p>
<p>Maintenant, il ne nous reste plus que 2 choses à faire: créer un utilisateur FTP avec son espace, et configurer le domaine associé sous Apache pour qu&#8217;il pointe à cet endroit.</p>
<p>Pour créer un utilisateur FTP, rien de plus simple, on va créer un utilisateur système:</p>
<pre class="code">&gt; addgroup nom_user
&gt; adduser --ingroup nom_user nom_user</pre>
<p>Cela va créer le répertoire personnel de l&#8217;utilisateur dans le répertoire <strong>/home</strong></p>
<p>Lors de la création de cet utilisateur, vous devrez saisir des renseignements. Le plus important est bien sûr le mot de passe, le reste n&#8217;est pas important.</p>
<p>On peut désormais configurer notre client FTP pour se connecter:</p>
<p>host: IP_serveur<br />
login: nom_user<br />
mot de passe : pass_user</p>
<p>Une fois connecté, on crée un répertoire <strong>www</strong> qui contiendra le site et on peu mettre une page d&#8217;accueil quelconque pour faire nos tests.</p>
<p>Tester avec le module <strong>userdir</strong></p>
<p>Le module <strong>userdir </strong>permet de se connecter à l&#8217;espace web d&#8217;un utilisateur du système sans le nom de domaine. L&#8217;url sera de la forme:</p>
<pre>http://ip_serveur/~nom_utilisateur/</pre>
<p>Pour pouvoir faire cela, il faut dans un premier temps activer le module <strong>userdir </strong>dans Apache (voir plus haut). Puis dans le répertoire <strong>/etc/apache2/conf.d</strong> créer un fichier <strong>userdir </strong>contenant les commandes suivantes:</p>
<pre class="code">&lt;IfModule mod_userdir.c&gt;
    UserDir www
    UserDir disabled root

    &lt;Directory /home/*/www&gt;
        AllowOverride FileInfo AuthConfig Limit
        Options Indexes SymLinksIfOwnerMatch IncludesNoExec
    &lt;/Directory&gt;
&lt;/IfModule&gt;</pre>
<p>On relance Apache et normalement si vous faites l&#8217;adresse indiquée plus haut, vous devriez voir votre page uploadée tout à l&#8217;heure.</p>
<p>Note: Si vous utilisez le module <strong>rewrite</strong>, je vous déconseille fortement d&#8217;utiliser l&#8217;option <strong>MultiViews </strong>de la commande <strong>Options </strong>car personnellement j&#8217;ai eu des interférences entre les deux.</p>
<h3>Configuration d&#8217;un domaine:</h3>
<p>Maintenant, on va configurer Apache pour que mondomaine.com pointe sur <strong>/home/nom_user/www</strong>.</p>
<p>Dans le répertoire <strong>/etc/apache2/sites-available</strong> créer le fichier <strong>mondomaine.com</strong>. Y mettre les instructions suivantes:</p>
<pre class="code">&lt;VirtualHost *&gt;
    ServerName www.mondomaine.com
    ServerAlias mondomaine.com www.mondomaine.com
    ServerAdmin webmaster@mondomaine.com

    DocumentRoot /home/nom_utilisateur/www
    ScriptAlias /cgi/ "/home/nom_utilisateur/cgi-bin/"

    &lt;Directory /home/nom_utilisateur/www&gt;
         Options -Indexes
    &lt;/Directory&gt;

    php_admin_value open_basedir "/tmp:/var/lib/php5:/home/nom_utilisateur/www"
&lt;/VirtualHost&gt;</pre>
<p>Vous devez bien sûr encore une fois remplacer les paramètres <strong>mondomaine.com</strong> et <strong>nom_utilisateur</strong> par vos valeurs.</p>
<p>Enregistrez, rechargez Apache et le tour est joué.</p>
<p>Note: il est important de ne pas oublier le paramètre <strong>open_basedir</strong> de PHP, cela empêche les scripts PHP de pouvoir lire n&#8217;importe quel fichier du serveur en le cloisonnant dans le répertoire <strong>www/</strong></p>
<h3>Installation de phpMyAdmin</h3>
<p>Forcément, si vous avez installé <strong>MySQL</strong>, il vous faut <strong>phpMyAdmin</strong>. Il y a deux écoles:</p>
<ul>
<li>Rester à la sauce Debian et installer le package <strong>phpMyAdmin</strong></li>
<li>L&#8217;installer à la main</li>
</ul>
<p>Les deux solutions ont leurs avantages et inconvénients:</p>
<p>Installer le package est simple et la maintenance aussi puisqu&#8217;un simple <strong>apt-get</strong> permet une mise à jour. Par contre les versions ne sont pas à jour. Au moment de la rédaction de ce billet, la version actuelle est en 2.11.9 alors que le package est en 2.9.1. Pour cette raison je préfère une installation manuelle. Par contre cela m&#8217;oblige à me tenir au courant des mises à jour et à les faire manuellement.</p>
<p>Généralement j&#8217;installe phpMyAdmin dans le répertoire <strong>/var/www</strong>. Ainsi on peut accéder à phpMyAdmin par l&#8217;adresse: <strong>http://ip_serveur/phpMyAdmin</strong></p>
<p>L&#8217;avantage de cette méthode est qu&#8217;il est facile de créer des alias ou des redirections de tous les noms de domaine qui seront installés sur le serveur afin qu&#8217;ils aient une url de phpMyAdmin simple. Par exemple une directive:</p>
<pre class="code">Alias /phpMyAdmin /var/www/phpMyAdmin/</pre>
<p>permet une redirection transparente.</p>
<p>une fois phpMyAdmin installé, la première chose à faire est de s&#8217;y logguer afin de paramétrer le mot de passe <strong>root </strong>de MySQL. Si vous ne l&#8217;avez pas fait lors de l&#8217;installation c&#8217;est le moment où jamais !!</p>
<h3>Envoyer des mails avec PHP</h3>
<p>C&#8217;est la dernière chose qui nous manque avant d&#8217;avoir un serveur de production minimal potable. Pour cela on va installer <strong>exim4</strong>:</p>
<pre class="code">&gt; apt-get install exim4</pre>
<p>puis pour la configuration:</p>
<pre class="code">&gt; dpkg-reconfigure exim4-config</pre>
<p>les options:</p>
<ul>
<li>séparer la configuration dans plusieurs fichiers -&gt; Non</li>
<li>Type de configuration -&gt; Distribution directe par SMTP</li>
<li>Nom de courriel du système -&gt; Mettez le nom de domaine principal du serveur ou laissez par défaut</li>
<li>Liste d&#8217;adresses IP -&gt; laissez 127.0.0.1 pour le moment</li>
<li>Autres destinations -&gt; Vide</li>
<li>Domaines à relayer -&gt; Vide</li>
<li>Machines à relayer -&gt; Vide</li>
<li>Faut-il minimiser les requêtes DNS -&gt; Non</li>
<li>Méthode de distribution du courrier local -&gt; laissez &laquo;&nbsp;mbox&nbsp;&raquo;</li>
</ul>
<p>Théoriquement, les emails envoyés de PHP fonctionnent désormais.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.coolcoyote.net/linux-debian/configuration-dun-serveur-dedie-chez-ovh/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Changer le noyau d&#8217;une Debian OVH</title>
		<link>http://www.coolcoyote.net/linux-debian/changer-le-noyau-dune-debian-ovh</link>
		<comments>http://www.coolcoyote.net/linux-debian/changer-le-noyau-dune-debian-ovh#comments</comments>
		<pubDate>Fri, 03 Jul 2009 16:55:46 +0000</pubDate>
		<dc:creator>Denis S.</dc:creator>
				<category><![CDATA[Linux Debian]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[noyau]]></category>
		<category><![CDATA[ovh]]></category>

		<guid isPermaLink="false">http://www.coolcoyote.net/?p=148</guid>
		<description><![CDATA[Malgré le fait de demander une Debian nue à l&#8217;installation de mon serveur dédié, OVH m&#8217;a mis une distrib qui semble un peu modifiée par eux, notamment au niveau du noyau. Le noyau que j&#8217;ai au départ a un nom tout bizarre genre bzImage-2.6.27.10-xxxx-grs-ipv4-64.
En fait c&#8217;est un noyau préparé par OVH qui contient les derniers [...]]]></description>
			<content:encoded><![CDATA[<p>Malgré le fait de demander une Debian nue à l&#8217;installation de mon serveur dédié, OVH m&#8217;a mis une distrib qui semble un peu modifiée par eux, notamment au niveau du noyau. Le noyau que j&#8217;ai au départ a un nom tout bizarre genre bzImage-2.6.27.10-xxxx-grs-ipv4-64.</p>
<p>En fait c&#8217;est un noyau préparé par OVH qui contient les derniers patchs de sécurité et qui permet de se passer de modules externes car ils sont embarqués. Problème: quand j&#8217;ai voulu upgrader ma distrib de Etch à Lenny, j&#8217;ai eu énormément d&#8217;ennuis et j&#8217;ai dû faire appel à un ami spécialiste pour me dépatouiller.</p>
<p>Le premier problème a été Lilo: il a commencé à me mettre des warnings pendant la mise à jour. Comme je n&#8217;étais pas sûr des conséquences que cela aurait au reboot et vu que Lilo commence sérieusement à dater, on a décidé de mettre Grub, et là tout est parti en vrille, ce qui n&#8217;aurait pas été le cas si j&#8217;avais eu un noyau standard&#8230; En effet d&#8217;une part Grub se base sur le nom d&#8217;un noyau standard pour s&#8217;installer, ce qui n&#8217;était pas le cas. La config de grub ne n&#8217;est donc pas faite correctement. On s&#8217;est donc dit que dans ce cas, on allait donner à Grub ce qu&#8217;il voulait, c&#8217;est à dire un noyau standard. Sauf que la il va aussi falloir gérer les modules à la main. En plus de cela le serveur était en raid1 logiciel, ce qui nécessite une maipulation supplémentaire avec Grub.</p>
<p>On va donc essayer à travers cet article de remettre la distribution droite dès le départ étant donné que le serveur dédié sur lequel je refais cette expérience est neuf.</p>
<p><span id="more-148"></span></p>
<p>La première chose à faire est de récupérer toutes les informations nécessaires sur notre hardware, notre architecture, le raid logiciel, etc&#8230;</p>
<p>Déjà, grâce au nom du noyau on sait que l&#8217;on est sur une architecture <strong>64 bits</strong>.</p>
<p>Pour le hardware, on a besoin de savoir quel est le processeur que nous avons, ainsi que la ou les cartes réseaux.  Pour le processeur, on va faire un :</p>
<pre class="code">&gt; vi /var/log/dmesg</pre>
<p>puis on va faire une recherche sur &laquo;&nbsp;Intel&nbsp;&raquo;. Déjà je peux noter les infos suivantes:</p>
<pre class="code">CPU0: Intel(R) Core(TM)2 Duo CPU     E8400  @ 3.00GHz stepping 0a</pre>
<p>Bon, première info&#8230; Le truc à savoir avec l&#8217;architecture 64 bits, c&#8217;est que quel que soit votre processeur (AMD ou Intel), vous devrez installer un noyau AMD64. On peut le voir à cette adresse: <a href="http://www.debian.org/ports/amd64/" target="_blank">http://www.debian.org/ports/amd64/</a></p>
<p><em>Le portage se compose d&#8217;un noyau pour tous les processeurs AMD 64 bits avec l&#8217;extension AMD64 et pour les processeurs Intel avec l&#8217;extension EM64T et d&#8217;un espace utilisateur 64 bits commun.</em></p>
<p>Bref, si je fais un</p>
<pre class="code">&gt; apt-cache seach 'linux-image'</pre>
<p>je tombre sur ce noyau : &nbsp;&raquo; linux-image-2.6.26-2-amd64 &#8211; Linux 2.6.26 image on AMD64&#8243;</p>
<p>C&#8217;est celui-là qu&#8217;il nous faut.</p>
<p>En ce qui concerne la carte réseau, dans un premier temps on a besoin de savoir combien on en a. Pour cela un petit</p>
<pre class="code">&gt; ifconfig</pre>
<p>M&#8217;indique qu&#8217;il n&#8217;y a que <strong>et0</strong> et<strong> lo</strong> (qui est l&#8217;interface locale). Donc je n&#8217;ai qu&#8217;une carte. Pour m&#8217;assurer des modules nécessaires à ma carte réseau, j&#8217;ai trouvé en parcourant les forums un truc plutôt pas mal. Tapez la commande:</p>
<pre class="code">&gt; lspci -n</pre>
<p>Et copiez le contenu du résultat dans le textarea de ce site: <a href="http://kmuto.jp/debian/hcl/" target="_blank">http://kmuto.jp/debian/hcl/</a></p>
<p>Il vous donnera le nom des modules à charger. Dans mon cas c&#8217;est donc le module <strong>r8169</strong> dont j&#8217;ai besoin</p>
<p>Enfin on finit par vérifier si on est en raid ou pas. En tapant :</p>
<pre class="code">&gt; cat /proc/mdstat</pre>
<p>j&#8217;obtiens:</p>
<pre class="code">md1 : active raid1 sdb1[1] sda1[0]
5245120 blocks [2/2] [UU]

md2 : active raid1 sdb2[1] sda2[0]
970992576 blocks [2/2] [UU]</pre>
<p>Donc je sais que je suis en <strong>raid1</strong> sur deux disques serial ATA (sda et sdb).</p>
<p>On a tout ce qu&#8217;il faut pour se lancer. C&#8217;est parti:</p>
<p>On installe grub en premier (en effet notre noyau standard a besoin de grub pour s&#8217;installer sinon on a une erreur).</p>
<pre class="code">&gt; apt-get install grub</pre>
<p>On crée le répertoire de grub dans le répertoire de boot :</p>
<pre class="code">&gt; mkdir /boot/grub</pre>
<p>On fait une première install de grub. Je suis pas sûr que cette étape soit nécessaire, je vérifierai cela lors de ma prochaine installation de dédié <img src='http://www.coolcoyote.net/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<pre class="code">&gt; grub-install /dev/md1</pre>
<p>On installe notre noyau :</p>
<pre class="code">&gt; apt-get install linux-image-2.6.26-2-amd64</pre>
<p>On installe grub :</p>
<pre class="code">&gt; grub-install /dev/md1</pre>
<p>On demande une mise à jour de grub</p>
<pre class="code">&gt; update-grub</pre>
<p>Le problème maintenant c&#8217;est qu&#8217;on est sur du raid logiciel. Notre disque <strong>/dev/md1</strong> n&#8217;est donc pas physique mais virtuel. Et le souci c&#8217;est que notre <em>grub-install</em> ne va pas s&#8217;inscrire sur le secteur de boot de<strong> sda</strong> et <strong>sdb</strong>. Il faut donc faire cette manipulation manuellement :</p>
<pre class="code">&gt; grub
grub&gt; root (hd0,0)
grub&gt; setup (hd0)
grub&gt; setup (hd1)
grub&gt; quit</pre>
<p>Il ne faut pas oublier de le faire sur les deux disques dur, ainsi si un des disques crash, le deuxième sera bootable.</p>
<p>Avant de rebooter, ne pas oublier les modules de la carte réseau ! Dans <strong>/etc/modules</strong> rajouter:</p>
<pre class="code">loop
r8169</pre>
<p>et sauvegardez..</p>
<p>En demandant conseil à mon pote pour réaliser toutes ces manipulations en sécurité, il m&#8217;a dit qu&#8217;on avait eu un problème au niveau du package &laquo;&nbsp;mdadm&nbsp;&raquo; qui est le package gérant le raid. En effet, lors de notre expérience malheureuse, il s&#8217;est rendu compte que ce paquet n&#8217;était pas installé, le noyau d&#8217;OVH embarquant ce dont il a besoin pour le faire fonctionner. En ce qui me concerne sur ce nouveau serveur, le package est bien présent mais n&#8217;hésitez pas à vérifier et à l&#8217;installer le cas échéant sinon vous aurez une surprise au reboot !</p>
<p>Vous pouvez y aller maintenant.</p>
<pre class="code">&gt; reboot</pre>
<p>et croisez les doigts&#8230; <img src='http://www.coolcoyote.net/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>N&#8217;hésitez pas à me faire part de vos expériences sur le sujet, mes connaissances sur le sujet étant modestes, il se peut qu&#8217;il y ait des erreurs ou des choses à améliorer.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.coolcoyote.net/linux-debian/changer-le-noyau-dune-debian-ovh/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Installer un serveur SVN sur Debian</title>
		<link>http://www.coolcoyote.net/linux-debian/installer-un-serveur-svn-sur-debian</link>
		<comments>http://www.coolcoyote.net/linux-debian/installer-un-serveur-svn-sur-debian#comments</comments>
		<pubDate>Sat, 11 Apr 2009 11:54:44 +0000</pubDate>
		<dc:creator>Denis S.</dc:creator>
				<category><![CDATA[Linux Debian]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[installation]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[subversion]]></category>
		<category><![CDATA[svn]]></category>

		<guid isPermaLink="false">http://www.coolcoyote.net/?p=86</guid>
		<description><![CDATA[Ce pense-bête a été fait à partir des deux articles suivants:
http://blog.fabroce.info/post/2006/11/19/Installer-un-depot-subversion-sur-une-Debian
http://blog.utopiaz.org/2008/04/mise-en-place-svn-et-virtual-hosts-apache/
Son but est de mettre en place un serveur subversion sur une Debian permettant la gestion de plusieurs dépôts avec une gestion des droits différente selon les dépôts.
Installation des packages:
&#62; apt-get install subversion subversion-tools libapache2-svn
Création du répertoire subversion:
&#62; mkdir /home/svn
&#62; chmod 770 /home/svn
Création des différents [...]]]></description>
			<content:encoded><![CDATA[<p>Ce pense-bête a été fait à partir des deux articles suivants:</p>
<p><a href="http://blog.fabroce.info/post/2006/11/19/Installer-un-depot-subversion-sur-une-Debian" target="_blank">http://blog.fabroce.info/post/2006/11/19/Installer-un-depot-subversion-sur-une-Debian</a><br />
<a href="http://blog.utopiaz.org/2008/04/mise-en-place-svn-et-virtual-hosts-apache/" target="_blank">http://blog.utopiaz.org/2008/04/mise-en-place-svn-et-virtual-hosts-apache/</a></p>
<p>Son but est de mettre en place un serveur subversion sur une Debian permettant la gestion de plusieurs dépôts avec une gestion des droits différente selon les dépôts.<span id="more-86"></span></p>
<h3>Installation des packages:</h3>
<pre class="code">&gt; apt-get install subversion subversion-tools libapache2-svn</pre>
<p>Création du répertoire subversion:</p>
<pre class="code">&gt; mkdir /home/svn
&gt; chmod 770 /home/svn</pre>
<h3>Création des différents dépôts (gestion multi-projets)</h3>
<pre class="code">&gt; svnadmin create /home/svn/projet_1
&gt; svnadmin create /home/svn/projet_2</pre>
<p>On crée un fichier qui contient les utilisateurs / mots de passe qui auront accès au dépôt.</p>
<pre class="code">&gt; touch /home/svn/.passwd</pre>
<p>Ce fichier fonctionne pour la sécurisation d&#8217;un répertoire par htaccess. Par exemple:</p>
<pre class="code">toto:$1$uH5.fe0.$4aTxZL9kZTHrjyemyJCBL1
hubert:$1$6I5.VG5.$rOl1m.o6bcZLhkKUZStWf/</pre>
<p>On crée un fichier qui va contenir tous les droits d&#8217;accès des utilisateurs aux différents projets</p>
<pre class="code">&gt; vi /home/svn/.authz</pre>
<p>La syntaxe de ce fichier n&#8217;est pas extrêment compliquée. Elle va ressembler à cela:</p>
<pre class="code">[nom_du_depot:/répertoire/dans/depot]
nom_utilisateur = droits_accès</pre>
<p>Soyons bien clairs sur la syntaxe entre crochet: le nom du dépôt correspond au nom du répertoire créé grâce à <strong>svnadmin create</strong>. Donc pour nous ce sera soit <strong>projet_1</strong>, soit <strong>projet_2</strong>. Le répertoire qui suit les deux points est le répertoire relatif au dépôt. Voici quelques exemples expliquant ce point:</p>
<pre class="code"># correspond au répertoire /home/svn/projet_1/
[projet_1:/]</pre>
<pre class="code">#correspond au répertoire /home/svn/projet_1/images/
[projet_1:/images]</pre>
<p>Prenons un exemple avec ce que nous avons fait plus haut:</p>
<pre class="code">[projet_1:/]
toto = rw
hubert = r</pre>
<p>Dans cet exemple, l&#8217;utilisateur <em>toto</em> peut lire et écrire dans le dépôt <strong>projet_1</strong>. Par contre <em>hubert</em> ne peut que lire ce dépôt. Voici d&#8217;autres exemples:</p>
<pre class="code">[projet_1:/]
toto = rw
hubert = r

[projet_1:/readonly]
toto = r

[projet_2:/]
toto = r
hubert =</pre>
<p>Dans cet exemple, on a rajouté des paramètres importants:</p>
<ul>
<li> <em>toto</em> peut lire et écrire dans le dépôt <strong>projet_1</strong> mais ne peut que lire le répertoire <strong>readonly</strong> du <strong>projet_1</strong></li>
<li> <em>hubert</em> ne peut que lire le <strong>projet_1</strong></li>
<li> <em>toto</em> peut seulement lire le <strong>projet_2</strong></li>
<li> <em>hubert</em> n&#8217;a pas accès au <strong>projet_2</strong></li>
</ul>
<p>Il est possible d&#8217;aller plus loin et de traiter les droits d&#8217;accès pour plusieurs utilisateurs en même temps:</p>
<pre class="code">[/]
* = r</pre>
<p>Donne droit de lecture à tous les utilisateurs sur tous les dépôts. On peut également créer des groupes d&#8217;utilisateurs:</p>
<pre class="code">[groups]
mon-groupe-1 = toto, hubert
mon-groupe-2 = pierre, paul, jacques

[projet_1:/home/svn/projet_1]
@mon-groupe-1 = r
@mon-groupe-2 =</pre>
<p>On voir que l&#8217;on fait appel à un groupe et non à un utilisateur à l&#8217;aide du <strong>@</strong> devant le nom du groupe. Il est également possible de faire appel aux groupes à l&#8217;intérieur de la définition des groupes:</p>
<pre class="code">[groups]
mon-groupe-1 = toto, hubert
mon-groupe-2 = pierre, paul, jacques
tous-les-groupes = @mon-groupe-1, @mon-groupe-2</pre>
<p>Enfin, à titre informatif, on peut également utiliser des références à des utilisateurs LDAP ou des certificats SSL et utiliser des alias. Personnellement je n&#8217;en ai pas eu besoin, donc je vais me contenter de copier bêtement les exemples que j&#8217;ai vu ici: <a href="http://svnbook.red-bean.com/nightly/en/svn.serverconfig.pathbasedauthz.html" target="_blank">http://svnbook.red-bean.com/nightly/en/svn.serverconfig.pathbasedauthz.html</a>. Si vous avez des infos complémentaires à ajouter, n&#8217;hésitez pas.</p>
<pre class="code">[aliases]
harry = CN=Harold Hacker,OU=Engineers,DC=red-bean,DC=com
sally = CN=Sally Swatterbug,OU=Engineers,DC=red-bean,DC=com
joe = CN=Gerald I. Joseph,OU=Engineers,DC=red-bean,DC=com

[groups]
calc-developers = &amp;harry, &amp;sally, &amp;joe
paint-developers = &amp;frank, &amp;sally, &amp;jane
everyone = @calc-developers, @paint-developers</pre>
<p>On crée un répertoire pour les logs</p>
<pre class="code">&gt; mkdir /home/svn/logs</pre>
<p>On donne ensuite les droits à Apache</p>
<pre class="code">&gt; chown -R www-data:www-data /home/svn</pre>
<h3>Configuration d&#8217;Apache</h3>
<p>La solution classique consiste à configurer le fichier <strong>/etc/apache2/mods-available/dav_svn.conf</strong>. Par défaut tout est commenté dans ce fichier. Il va falloir décommenter, et configurer pour activer l&#8217;accès au dépôt SVN. Voici une configuration standard qui permet d&#8217;accéder au dépôt configuré plus haut:</p>
<pre class="code">&lt;Location /svn&gt;
    DAV svn
    SVNParentPath /home/svn
    AuthType Basic
    AuthName "Subversion Repository"
    AuthUserFile /home/svn/.passwd
    AuthzSVNAccessFile /home/svn/.authz
    Require valid-user
&lt;/Location&gt;</pre>
<p>Sauvegarder et relancer Apache.</p>
<p>Pour vérifier que tout fonctionne bien, il suffit d&#8217;aller avec votre navigateur à l&#8217;adresse:</p>
<pre class="code">http://IP_serveur/svn/projet_1</pre>
<p>Si tout se passe bien, une identification vous est demandée, puis vous devriez voir une page avec marqué &laquo;&nbsp;Revision 0&#8243;.</p>
<p>Cette méthode fonctionne parfaitement, mais on peut faire mieux. Si vous gérez des noms de domaine sur votre serveur, vous pouvez tout à fait utiliser les VirtualHost pour gérer les adresses d&#8217;accès aux dépôts:</p>
<pre class="code">&lt;VirtualHost *&gt;
  ServerName svn.mondomaine.com

  &lt;Location /&gt;
    DAV svn
    SVNParentPath /home/svn
    AuthType Basic
    AuthName "Subversion Repository"
    AuthUserFile /home/svn/.passwd
    AuthzSVNAccessFile /home/svn/.authz
    Require valid-user
  &lt;/Location&gt;

  CustomLog /home/svn/logs/access.log combined
  ErrorLog /home/svn/logs/error.log
&lt;/VirtualHost&gt;</pre>
<p>Cette méthode présente plusieurs avantages:</p>
<ul>
<li>Utilisation d&#8217;un sous-domaine, ce qui simplifie l&#8217;url</li>
<li>Possibilité d&#8217;utiliser plusieurs noms de domaine pour le même dépôt</li>
<li>Customisation des logs</li>
<li>Possibilité de créer un VirtualHost sécurisé par SSL</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.coolcoyote.net/linux-debian/installer-un-serveur-svn-sur-debian/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Installer un paquet testing sur une distribution stable</title>
		<link>http://www.coolcoyote.net/linux-debian/installer-un-paquet-testing-sur-une-distribution-stable</link>
		<comments>http://www.coolcoyote.net/linux-debian/installer-un-paquet-testing-sur-une-distribution-stable#comments</comments>
		<pubDate>Thu, 02 Oct 2008 21:41:10 +0000</pubDate>
		<dc:creator>Denis S.</dc:creator>
				<category><![CDATA[Linux Debian]]></category>
		<category><![CDATA[apt]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[paquet]]></category>
		<category><![CDATA[stable]]></category>
		<category><![CDATA[testing]]></category>

		<guid isPermaLink="false">http://www.coolcoyote.net/?p=81</guid>
		<description><![CDATA[Suite à un bug présent sur le PHP installé sur ma distribution stable, j&#8217;ai dû faire une mise à jour afin de pouvoir installer la version testing, sans pour autant basculer complètement sur cette dernière. Le but du jeu est d&#8217;installer uniquement le paquet voulu (et ses dependances bien sûr).

pour commencer, éditer le fichier /etc/apt/sources.list. [...]]]></description>
			<content:encoded><![CDATA[<p>Suite à un bug présent sur le PHP installé sur ma distribution <em>stable</em>, j&#8217;ai dû faire une mise à jour afin de pouvoir installer la version <em>testing</em>, sans pour autant basculer complètement sur cette dernière. Le but du jeu est d&#8217;installer uniquement le paquet voulu (et ses dependances bien sûr).</p>
<p><span id="more-81"></span></p>
<p>pour commencer, éditer le fichier <strong>/etc/apt/sources.list</strong>. Sur ma distribution j&#8217;avais les infos suivantes:</p>
<pre class="code">deb ftp://mir1.ovh.net/debian/ stable main
deb-src ftp://mir1.ovh.net/debian/ stable main
deb http://security.debian.org/ stable/updates main</pre>
<p>à la suite j&#8217;ai rajouté les lignes suivantes:</p>
<pre class="code">deb ftp://mir1.ovh.net/debian/ testing main
deb-src ftp://mir1.ovh.net/debian/ testing main
deb http://security.debian.org/ testing/updates main</pre>
<p>on va ensuite dans le répertoire <strong>/etc/apt/apt.conf.d</strong> et on crée un fichier <strong>80default-distrib</strong> (le nom du fichier est libre). On y place l&#8217;instruction suivante:</p>
<pre class="code">APT::Default-Release "stable";</pre>
<p>Nous y sommes. Avec la configuration ci-dessus, on reste par défaut sur la version <em>stable </em>lors des mises à jour. Mais on a la possibilité d&#8217;installer un paquet <em>testing </em>très simplement.</p>
<p>Tout d&#8217;abord faire un update d&#8217;apt:</p>
<pre class="code">apt-get update</pre>
<p>puis installer le paquet voulu grâce à <strong>-t testing</strong>:</p>
<pre class="code">apt-get -t testing install <em>mon_paquet</em></pre>
]]></content:encoded>
			<wfw:commentRss>http://www.coolcoyote.net/linux-debian/installer-un-paquet-testing-sur-une-distribution-stable/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Erreur apt-get : Dynamic MMap ran out of room</title>
		<link>http://www.coolcoyote.net/linux-debian/erreur-apt-get-dynamic-mmap-ran-out-of-room</link>
		<comments>http://www.coolcoyote.net/linux-debian/erreur-apt-get-dynamic-mmap-ran-out-of-room#comments</comments>
		<pubDate>Thu, 02 Oct 2008 21:20:24 +0000</pubDate>
		<dc:creator>Denis S.</dc:creator>
				<category><![CDATA[Linux Debian]]></category>
		<category><![CDATA[apt]]></category>
		<category><![CDATA[debian]]></category>

		<guid isPermaLink="false">http://www.coolcoyote.net/?p=79</guid>
		<description><![CDATA[J&#8217;ai eu droit à cette erreur en faisant un apt-get update. J&#8217;ai trouvé la solution ici:
http://e.rycks.com/index.php/post/2005/08/17/22-dynamic-mmap-ran-out-of-room
pour résumer il faut aller dans /etc/apt/apt.conf.d/ et créer un fichier 10cachelimit (le nom du fichier peut-être modifié à votre guise). Y placer l&#8217;instruction suivante:
APT::Cache-Limit "10000000";
Cela permet à APT d&#8217;utiliser plus de RAM. La valeur entre guillemets est à modifier [...]]]></description>
			<content:encoded><![CDATA[<p>J&#8217;ai eu droit à cette erreur en faisant un apt-get update. J&#8217;ai trouvé la solution ici:</p>
<p><a href="http://e.rycks.com/index.php/post/2005/08/17/22-dynamic-mmap-ran-out-of-room" target="_blank">http://e.rycks.com/index.php/post/2005/08/17/22-dynamic-mmap-ran-out-of-room</a></p>
<p>pour résumer il faut aller dans <strong>/etc/apt/apt.conf.d/</strong> et créer un fichier <strong>10cachelimit</strong> (le nom du fichier peut-être modifié à votre guise). Y placer l&#8217;instruction suivante:</p>
<pre class="code">APT::Cache-Limit "10000000";</pre>
<p>Cela permet à <strong>APT</strong> d&#8217;utiliser plus de RAM. La valeur entre guillemets est à modifier selon les besoins. Personnellement j&#8217;ai dû passer à <strong>20000000 </strong>pour que cela fonctionne.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.coolcoyote.net/linux-debian/erreur-apt-get-dynamic-mmap-ran-out-of-room/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Les screens sous Debian</title>
		<link>http://www.coolcoyote.net/linux-debian/les-screens-sous-debian</link>
		<comments>http://www.coolcoyote.net/linux-debian/les-screens-sous-debian#comments</comments>
		<pubDate>Mon, 04 Aug 2008 13:12:53 +0000</pubDate>
		<dc:creator>Denis S.</dc:creator>
				<category><![CDATA[Linux Debian]]></category>
		<category><![CDATA[console]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[screen]]></category>
		<category><![CDATA[ssh]]></category>

		<guid isPermaLink="false">http://192.168.0.1/wordpress/?p=38</guid>
		<description><![CDATA[Les screens sont vraiment indispensables pour tous ceux qui travaillent en mode console sous ssh. Ils permettent de créer une ou des consoles virtuelles sous la même session qui ne se détruisent pas lorsque l&#8217;utilisateur se déconnecte. Concrêtement, lorsqu&#8217;on lance une compilation dans un screen, si vous avez un plantage réseau, connexion ou autre, la [...]]]></description>
			<content:encoded><![CDATA[<p>Les screens sont vraiment indispensables pour tous ceux qui travaillent en mode console sous ssh. Ils permettent de créer une ou des consoles virtuelles sous la même session qui ne se détruisent pas lorsque l&#8217;utilisateur se déconnecte. Concrêtement, lorsqu&#8217;on lance une compilation dans un screen, si vous avez un plantage réseau, connexion ou autre, la compilation continue. On peut se relogguer et récupérer la session screen qui était en cours. En plus de la protection apportées,  les screens sont efficaces pour lancer un travail qui peut durer longtemps. On peut ainsi lancer un travail sur un serveur le soir, s&#8217;en déconnecter et aller se coucher, puis le lendemain reprendre le screen et obtenir le résultat.</p>
<p><span id="more-38"></span></p>
<p>Installation du paquet:</p>
<pre class="code">&gt; apt-get install screen</pre>
<p>les commandes screen à partir de la console:</p>
<pre class="code">&gt; screen			// Lance un screen
&gt; screen -r			// Reprends un screen détaché
&gt; screen -d			// Force le détachement d'un screen en cas de plantage pour en reprendre le contrôle
&gt; screen -ls			// Affiche la liste des screen mère</pre>
<p>commandes à partir d&#8217;une console screen:</p>
<ul>
<li>CTRL+A puis C = créer une nouvelle console screen</li>
<li>CTRL+A puis N = passer à la console screen suivante</li>
<li>CTRL+A puis P = passer à la console screen précédente</li>
<li>CTRL+A puis D = Détacher le screen et revenir sur la console classique</li>
<li>CTRL+D = fermer une console screen. Lorsqu&#8217;il n&#8217;y a plus qu&#8217;une seule console, ça quitte screen.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.coolcoyote.net/linux-debian/les-screens-sous-debian/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SSH: clé publique/privée</title>
		<link>http://www.coolcoyote.net/linux-debian/ssh-cle-publiqueprivee</link>
		<comments>http://www.coolcoyote.net/linux-debian/ssh-cle-publiqueprivee#comments</comments>
		<pubDate>Mon, 04 Aug 2008 11:28:27 +0000</pubDate>
		<dc:creator>Denis S.</dc:creator>
				<category><![CDATA[Linux Debian]]></category>
		<category><![CDATA[clé privée]]></category>
		<category><![CDATA[clé publique]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[ssh]]></category>

		<guid isPermaLink="false">http://192.168.0.1/wordpress/?p=32</guid>
		<description><![CDATA[Cet article était présent sur l&#8217;ancienne version de coolcoyote.net. Comme je le trouve utile, je le remet, même si je ne l&#8217;ai pas retesté depuis.
Pour commencer nous allons définir que:

la machine locale sera la machine cliente, c&#8217;est-à-dire celle qui se connectera
la machine distante sera la machine serveur qui recevra la connexion


Générer les clés:
Pour ce faire, [...]]]></description>
			<content:encoded><![CDATA[<p>Cet article était présent sur l&#8217;ancienne version de coolcoyote.net. Comme je le trouve utile, je le remet, même si je ne l&#8217;ai pas retesté depuis.</p>
<p>Pour commencer nous allons définir que:</p>
<ul>
<li>la machine locale sera la machine cliente, c&#8217;est-à-dire celle qui se connectera</li>
<li>la machine distante sera la machine serveur qui recevra la connexion</li>
</ul>
<p><span id="more-32"></span></p>
<h3>Générer les clés:</h3>
<p>Pour ce faire, commencer par taper la commande <strong>ssh-keygen</strong> sur la machine locale:</p>
<pre class="code">&gt; ssh-keygen -t dsa</pre>
<p>l&#8217;option <strong>-t dsa</strong> indique que l&#8217;on utilise un cryptage <strong>dsa </strong>de la clé, utilisé par SSH2. La génération des clés commence:</p>
<pre class="code">Generating public/private dsa key pair.
Enter file in which to save the key (/usr/home/toto/.ssh/id_dsa):</pre>
<p>Appuyer sur Enter pour accepter la localisation de la clef (il est plus simple d&#8217;accepter la localisation proposée). ssh-keygen demande ensuite une « passphrase » (équivalent d&#8217;un mot de passe, mais sous forme de phrase). Cette phrase sert à fortifier la clef pour la rendre plus difficilement cassable.</p>
<p>À partir de là, deux solutions :</p>
<ul>
<li>Si on tape une phrase, la connexion sera plus sûre, mais il faudra utiliser ssh-agent pour ne pas avoir à la retaper à chaque fois</li>
<li>On ne tape pas de phrase (on appuie seulement sur Enter), la connexion sera moins sûre.</li>
</ul>
<p>la fin de la procédure affiche quelque chose comme:</p>
<pre class="code">Your identification has been saved in /usr/home/toto/.ssh/id_dsa.
Your public key has been saved in /usr/home/toto/.ssh/id_dsa.pub.
The key fingerprint is:
1a:2a:3e:4a:1a:65:1c:89:10:92:9c:5c:1f:75:cc:de
toto@machineloc</pre>
<p>Le générateur va créer 2 clés: <strong>id_dsa</strong> (la clé privée) et <strong>id_dsa.pub</strong> (la clé publique).</p>
<h3>Utiliser les clés</h3>
<ul>
<li> Editer la clé publique et copier son contenu.</li>
<li> Se rendre sur la machine distante et éditer le fichier <strong>.ssh/authorized_keys</strong> (le créer s&#8217;il le faut)</li>
<li> Y copier le contenu de la clé publique sur une seule ligne</li>
<li> Sauvegarder</li>
</ul>
<p>Procéder ainsi pour toutes les machines distantes sur lesquelles on veut se connecter</p>
<h3>Tester la connexion</h3>
<p>Une fois que les clés sont placées sur les serveurs local et distant, il faut tester la connexion ssh:</p>
<pre class="code">&gt; ssh host "ls -a"</pre>
<p>Normalement, le système va détecter la présence des clés et vous demander de confirmer l&#8217;utilisation de ces clés. Il faut donc taper &laquo;&nbsp;yes&nbsp;&raquo; et valider. Cette opération ne se fait qu&#8217;une seule fois.</p>
<pre class="code">The authenticity of host '213.186.158.139 (213.186.158.139)' can't be established.
RSA key fingerprint is 02:11:f2:db:ad:42:86:de:f3:10:9a:fa:41:2d:09:77.
Are you sure you want to continue connecting (yes/no)?</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.coolcoyote.net/linux-debian/ssh-cle-publiqueprivee/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

