<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" version="2.0">

<channel>
	<title>it4it</title>
	
	<link>http://www.it4it.ru</link>
	<description>Блог обо всем моем</description>
	<lastBuildDate>Fri, 14 May 2010 08:20:00 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/It4it" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="it4it" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>hgweb на lighttpd</title>
		<link>http://www.it4it.ru/index.php/2010/05/14/hgweb-na-lighttpd/</link>
		<comments>http://www.it4it.ru/index.php/2010/05/14/hgweb-na-lighttpd/#comments</comments>
		<pubDate>Fri, 14 May 2010 08:20:00 +0000</pubDate>
		<dc:creator>gigimon</dc:creator>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[dvcs]]></category>
		<category><![CDATA[hg]]></category>
		<category><![CDATA[hgweb]]></category>
		<category><![CDATA[lighttpd]]></category>
		<category><![CDATA[mercurial]]></category>

		<guid isPermaLink="false">http://www.it4it.ru/?p=436</guid>
		<description><![CDATA[Опять давно ничего не писал   А сегодня решил напомнить, что я жив и рассказать, как поднять свой hg репозитарий с web мордой на веб-сервере Lighttpd.
Предположим, что mercurial и Lighttpd у вас уже установлены, а репозитарии hg будут храниться в /var/www. Т.к. hgweb мы будем запускать через fastcgi (единственный возможный на lighttpd, не считая [...]]]></description>
			<content:encoded><![CDATA[<p>Опять давно ничего не писал <img src='http://www.it4it.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  А сегодня решил напомнить, что я жив и рассказать, как поднять свой hg репозитарий с web мордой на веб-сервере Lighttpd.</p>
<p>Предположим, что mercurial и Lighttpd у вас уже установлены, а репозитарии hg будут храниться в /var/www. Т.к. hgweb мы будем запускать через fastcgi (единственный возможный на lighttpd, не считая прокси), то нам потребуется .fcgi скрипт, который будет создавать wsgi сервер с сокетом. Т.к. у меня кучка django сайтов, то я сделал папку /var/www/fcgi, в которой все их и храню <img src='http://www.it4it.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>1. Создадим такую папку и положим в файл hgweb.fcgi такой код:</p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;"><span style="color: #ff7700;font-weight:bold;">from</span> mercurial <span style="color: #ff7700;font-weight:bold;">import</span> demandimport<span style="color: #66cc66;">;</span> demandimport.<span style="color: black;">enable</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">import</span> <span style="color: #dc143c;">os</span>
<span style="color: #dc143c;">os</span>.<span style="color: black;">environ</span><span style="color: black;">&#91;</span><span style="color: #483d8b;">&quot;HGENCODING&quot;</span><span style="color: black;">&#93;</span> = <span style="color: #483d8b;">&quot;UTF-8&quot;</span>
<span style="color: #ff7700;font-weight:bold;">from</span> mercurial.<span style="color: black;">hgweb</span>.<span style="color: black;">hgwebdir_mod</span> <span style="color: #ff7700;font-weight:bold;">import</span> hgwebdir
<span style="color: #ff7700;font-weight:bold;">from</span> mercurial.<span style="color: black;">hgweb</span>.<span style="color: black;">request</span> <span style="color: #ff7700;font-weight:bold;">import</span> wsgiapplication
<span style="color: #ff7700;font-weight:bold;">from</span> flup.<span style="color: black;">server</span>.<span style="color: black;">fcgi</span> <span style="color: #ff7700;font-weight:bold;">import</span> WSGIServer
&nbsp;
<span style="color: #ff7700;font-weight:bold;">def</span> make_web_app<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>:
    <span style="color: #ff7700;font-weight:bold;">return</span> hgwebdir<span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;hgweb.conf&quot;</span><span style="color: black;">&#41;</span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">def</span> wsgiapplication2<span style="color: black;">&#40;</span>app_maker<span style="color: black;">&#41;</span>:
    application = app_maker<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
    <span style="color: #ff7700;font-weight:bold;">def</span> run_wsgi<span style="color: black;">&#40;</span>env, respond<span style="color: black;">&#41;</span>:
        path = env<span style="color: black;">&#91;</span><span style="color: #483d8b;">'PATH_INFO'</span><span style="color: black;">&#93;</span>.<span style="color: black;">replace</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'hgweb.fcgi/'</span>,<span style="color: #483d8b;">''</span><span style="color: black;">&#41;</span>
        env<span style="color: black;">&#91;</span><span style="color: #483d8b;">'PATH_INFO'</span><span style="color: black;">&#93;</span> = path
    <span style="color: #ff7700;font-weight:bold;">return</span> application<span style="color: black;">&#40;</span>env, respond<span style="color: black;">&#41;</span>
<span style="color: #ff7700;font-weight:bold;">return</span> run_wsgi
&nbsp;
WSGIServer<span style="color: black;">&#40;</span>wsgiapplication2<span style="color: black;">&#40;</span>make_web_app<span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>.<span style="color: black;">run</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span></pre></div></div>

<p>2. Тамже, положим файл hgweb.conf с конфигурацией нашего сервера:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">&#91;</span>paths<span style="color: #7a0874; font-weight: bold;">&#93;</span>
<span style="color: #000000; font-weight: bold;">/</span>repo_name = <span style="color: #000000; font-weight: bold;">/</span>path<span style="color: #000000; font-weight: bold;">/</span>to<span style="color: #000000; font-weight: bold;">/</span>repo
<span style="color: #7a0874; font-weight: bold;">&#91;</span>web<span style="color: #7a0874; font-weight: bold;">&#93;</span>
style = gitweb
allow_archive = bz2 gz <span style="color: #c20cb9; font-weight: bold;">zip</span>
baseurl =</pre></div></div>

<p>В секции [paths] определяются все репозитории, которые будут видны в hgweb.</p>
<p>Baseurl &#8211; устанавливает префикс в url для доступа к репозитарию. В моем случае, ссылка будет http://example.com/repo_name.</p>
<p>3. Создадим репозиторий hg, либо склонируем его с локальнйо машины по ssh <img src='http://www.it4it.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">cd</span> <span style="color: #000000; font-weight: bold;">/</span>path<span style="color: #000000; font-weight: bold;">/</span>to<span style="color: #000000; font-weight: bold;">/</span>repo
&nbsp;
hg init
&nbsp;
<span style="color: #7a0874; font-weight: bold;">cd</span> <span style="color: #000000; font-weight: bold;">/</span>path<span style="color: #000000; font-weight: bold;">/</span>to<span style="color: #000000; font-weight: bold;">/</span>repo
&nbsp;
hg clone . <span style="color: #c20cb9; font-weight: bold;">ssh</span>:<span style="color: #000000; font-weight: bold;">//</span><span style="color: #c20cb9; font-weight: bold;">login</span><span style="color: #000000; font-weight: bold;">@</span>example.com<span style="color: #000000; font-weight: bold;">//</span>path<span style="color: #000000; font-weight: bold;">/</span>to<span style="color: #000000; font-weight: bold;">/</span>repo</pre></div></div>

<p>При клонировании по ssh, важно не забыть именно два слэша, после адреса.</p>
<p>4. Конфигурируем lighttpd.</p>
<p>Создаем новый конфиг, я назвал его 15-hgweb.conf, имя значения не имеет впринципе <img src='http://www.it4it.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Кладем в папочку и включаем:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>lighttpd<span style="color: #000000; font-weight: bold;">/</span>conf-available<span style="color: #000000; font-weight: bold;">/</span>
&nbsp;
<span style="color: #c20cb9; font-weight: bold;">ln</span> <span style="color: #660033;">-s</span> <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>lighttpd<span style="color: #000000; font-weight: bold;">/</span>conf-available<span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">15</span>-hgweb.conf <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>lighttpd<span style="color: #000000; font-weight: bold;">/</span>conv-enabled<span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">15</span>-hgweb.conf</pre></div></div>

<p>Содержимое файла 15-hgweb.conf:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #007800;">$HTTP</span><span style="color: #7a0874; font-weight: bold;">&#91;</span><span style="color: #ff0000;">&quot;host&quot;</span><span style="color: #7a0874; font-weight: bold;">&#93;</span> == <span style="color: #ff0000;">&quot;hg.example.com&quot;</span> <span style="color: #7a0874; font-weight: bold;">&#123;</span>
&nbsp;
    server.document-root = <span style="color: #ff0000;">&quot;&quot;</span>
    server.errorlog = <span style="color: #ff0000;">&quot;/var/log/lighttpd/hgweb.error.log&quot;</span>
    accesslog.filename = <span style="color: #ff0000;">&quot;/var/log/lighttpd/hgweb.access.log&quot;</span>
    accesslog.format = <span style="color: #ff0000;">&quot;%h %l %u %f %t <span style="color: #000099; font-weight: bold;">\&quot;</span>%r<span style="color: #000099; font-weight: bold;">\&quot;</span> %&amp;gt;s %b <span style="color: #000099; font-weight: bold;">\&quot;</span>%{Referer}i<span style="color: #000099; font-weight: bold;">\&quot;</span> <span style="color: #000099; font-weight: bold;">\&quot;</span>%{User-Agent}i<span style="color: #000099; font-weight: bold;">\&quot;</span>&quot;</span>
    server.follow-symlink = <span style="color: #ff0000;">&quot;enable&quot;</span>
&nbsp;
    url.rewrite-once = <span style="color: #7a0874; font-weight: bold;">&#40;</span>
    <span style="color: #ff0000;">&quot;^/(.*)$&quot;</span> =<span style="color: #000000; font-weight: bold;">&gt;</span> <span style="color: #ff0000;">&quot;/hgweb.fcgi/$1&quot;</span>,
    <span style="color: #7a0874; font-weight: bold;">&#41;</span>
    fastcgi.server = <span style="color: #7a0874; font-weight: bold;">&#40;</span>
        <span style="color: #ff0000;">&quot;/hgweb.fcgi&quot;</span> =<span style="color: #000000; font-weight: bold;">&gt;</span> <span style="color: #7a0874; font-weight: bold;">&#40;</span>
        <span style="color: #ff0000;">&quot;main&quot;</span> =<span style="color: #000000; font-weight: bold;">&gt;</span> <span style="color: #7a0874; font-weight: bold;">&#40;</span>
        <span style="color: #ff0000;">&quot;socket&quot;</span> =<span style="color: #000000; font-weight: bold;">&gt;</span> <span style="color: #ff0000;">&quot;/tmp/hgweb.socket&quot;</span>,
        <span style="color: #ff0000;">&quot;check-local&quot;</span> =<span style="color: #000000; font-weight: bold;">&gt;</span> <span style="color: #ff0000;">&quot;disable&quot;</span>,
        <span style="color: #ff0000;">&quot;bin-path&quot;</span> =<span style="color: #000000; font-weight: bold;">&gt;</span> <span style="color: #ff0000;">&quot;/path/to/hgweb.fcgi&quot;</span>,
        <span style="color: #ff0000;">&quot;broken-scriptfilename&quot;</span> =<span style="color: #000000; font-weight: bold;">&gt;</span> <span style="color: #ff0000;">&quot;enable&quot;</span>,
        <span style="color: #ff0000;">&quot;min-procs&quot;</span> =<span style="color: #000000; font-weight: bold;">&gt;</span> <span style="color: #000000;">1</span>,
        <span style="color: #ff0000;">&quot;max-procs&quot;</span> =<span style="color: #000000; font-weight: bold;">&gt;</span> <span style="color: #000000;">1</span>,
        <span style="color: #7a0874; font-weight: bold;">&#41;</span>
     <span style="color: #7a0874; font-weight: bold;">&#41;</span>
   <span style="color: #7a0874; font-weight: bold;">&#41;</span>
&nbsp;
    alias.url = <span style="color: #7a0874; font-weight: bold;">&#40;</span>
       <span style="color: #ff0000;">&quot;/static&quot;</span> =<span style="color: #000000; font-weight: bold;">&gt;</span> <span style="color: #ff0000;">&quot;/usr/share/mercurial/templates/static&quot;</span>,
    <span style="color: #7a0874; font-weight: bold;">&#41;</span>
&nbsp;
    <span style="color: #007800;">$HTTP</span><span style="color: #7a0874; font-weight: bold;">&#91;</span><span style="color: #ff0000;">&quot;querystring&quot;</span><span style="color: #7a0874; font-weight: bold;">&#93;</span> =~ <span style="color: #ff0000;">&quot;cmd=unbundle&quot;</span>  <span style="color: #7a0874; font-weight: bold;">&#123;</span>
       auth.backend = <span style="color: #ff0000;">&quot;htpasswd&quot;</span>
       auth.backend.htpasswd.userfile = <span style="color: #ff0000;">&quot;/path/to/passwd&quot;</span>
       auth.require = <span style="color: #7a0874; font-weight: bold;">&#40;</span>   <span style="color: #ff0000;">&quot;&quot;</span> =<span style="color: #000000; font-weight: bold;">&gt;</span> <span style="color: #7a0874; font-weight: bold;">&#40;</span>
              <span style="color: #ff0000;">&quot;method&quot;</span>  =<span style="color: #000000; font-weight: bold;">&gt;</span> <span style="color: #ff0000;">&quot;basic&quot;</span>,
              <span style="color: #ff0000;">&quot;realm&quot;</span>   =<span style="color: #000000; font-weight: bold;">&gt;</span> <span style="color: #ff0000;">&quot;gigimon Repo&quot;</span>,
              <span style="color: #ff0000;">&quot;require&quot;</span> =<span style="color: #000000; font-weight: bold;">&gt;</span> <span style="color: #ff0000;">&quot;valid-user&quot;</span>
        <span style="color: #7a0874; font-weight: bold;">&#41;</span>
       <span style="color: #7a0874; font-weight: bold;">&#41;</span>
    <span style="color: #7a0874; font-weight: bold;">&#125;</span>
<span style="color: #7a0874; font-weight: bold;">&#125;</span></pre></div></div>

<p>Последняя секция с авторизацией нужна для возможности делать push в репозитории. Если хотите сделать его публичным дял просомтра, либо убрать возможность пуша, то можете ее полностью убрать.</p>
<p>Также, для пуша требуется, чтобы в lighttpd был настроен SSL, в дефолтной поставке дебиана такое есть. Проверить можно в /etc/lighttpd/lighttpd.conf , обычно в самом низу:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #007800;">$SERVER</span><span style="color: #7a0874; font-weight: bold;">&#91;</span><span style="color: #ff0000;">&quot;socket&quot;</span><span style="color: #7a0874; font-weight: bold;">&#93;</span> == <span style="color: #ff0000;">&quot;:443&quot;</span> <span style="color: #7a0874; font-weight: bold;">&#123;</span>
    ssl.engine = <span style="color: #ff0000;">&quot;enable&quot;</span>
    ssl.pemfile = <span style="color: #ff0000;">&quot;/etc/lighttpd/lighttpd.pem&quot;</span>
<span style="color: #7a0874; font-weight: bold;">&#125;</span></pre></div></div>

<p>Файл с паролями, который указывается в auth.backend.htpasswd.userfile, создается командой htpasswd входящей в apache2-utils<br />
5. Теперь, если хотим разрешить пуш некоторым лицам, нам требуется настроить сам репозиторий через файл hgrc</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">cat</span> <span style="color: #000000; font-weight: bold;">/</span>path<span style="color: #000000; font-weight: bold;">/</span>to<span style="color: #000000; font-weight: bold;">/</span>repo<span style="color: #000000; font-weight: bold;">/</span>.hg<span style="color: #000000; font-weight: bold;">/</span>hgrc
&nbsp;
<span style="color: #7a0874; font-weight: bold;">&#91;</span>web<span style="color: #7a0874; font-weight: bold;">&#93;</span>
allow_push = user1, user2
description = <span style="color: #ff0000;">&quot;example.com development&quot;</span></pre></div></div>

<p>Также, помимо разрешения, в этом файле задаются многие параметры для репозитория. Я использую авто апдейт кода при пуше в него, через строку:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">&#91;</span>hooks<span style="color: #7a0874; font-weight: bold;">&#93;</span>
changegroup.upd = hg update</pre></div></div>

<p>После перезагрузки lighttpd</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>init.d<span style="color: #000000; font-weight: bold;">/</span>lighttpd restart</pre></div></div>

<p>По вашему адресу, должен будет появиться и работать hgweb, надеюсь у вас он появился <img src='http://www.it4it.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<script type="text/javascript" src="http://odnaknopka.ru/wp/ok2.utf8.js"></script><script type="text/javascript">okbm("http://www.it4it.ru/index.php/2010/05/14/hgweb-na-lighttpd/","hgweb на lighttpd")</script><hr />Copyright © <a href="it4it.ru">it4it</a>. Это персональный, не коммерческий Feed. Если вы читаете этот материал не в вашем RSS клиенте, сайт на котором он находиться получил его незаконным образом.]]></content:encoded>
			<wfw:commentRss>http://www.it4it.ru/index.php/2010/05/14/hgweb-na-lighttpd/feed/</wfw:commentRss>
		<slash:comments>53</slash:comments>
		</item>
		<item>
		<title>Создание VPN сети с помощью OpenVPN</title>
		<link>http://www.it4it.ru/index.php/2010/01/26/sozdanie-vpn-seti-s-pomoshhyu-openvpn/</link>
		<comments>http://www.it4it.ru/index.php/2010/01/26/sozdanie-vpn-seti-s-pomoshhyu-openvpn/#comments</comments>
		<pubDate>Mon, 25 Jan 2010 23:13:12 +0000</pubDate>
		<dc:creator>gigimon</dc:creator>
				<category><![CDATA[*nix]]></category>
		<category><![CDATA[Всякое]]></category>
		<category><![CDATA[openvpn]]></category>
		<category><![CDATA[vpn]]></category>

		<guid isPermaLink="false">http://www.it4it.ru/?p=433</guid>
		<description><![CDATA[<br />
<b>Warning</b>:  mb_strpos() [<a href='function.mb-strpos'>function.mb-strpos</a>]: Unknown encoding or conversion error. in <b>/var/www/it4it/wp-content/plugins/wp-syntax/geshi/geshi.php</b> on line <b>2879</b><br />
<br />
<b>Warning</b>:  mb_strpos() [<a href='function.mb-strpos'>function.mb-strpos</a>]: Unknown encoding or conversion error. in <b>/var/www/it4it/wp-content/plugins/wp-syntax/geshi/geshi.php</b> on line <b>2879</b><br />
<br />
<b>Warning</b>:  mb_strpos() [<a href='function.mb-strpos'>function.mb-strpos</a>]: Unknown encoding or conversion error. in <b>/var/www/it4it/wp-content/plugins/wp-syntax/geshi/geshi.php</b> on line <b>2879</b><br />
<br />
<b>Warning</b>:  mb_strpos() [<a href='function.mb-strpos'>function.mb-strpos</a>]: Unknown encoding or conversion error. in <b>/var/www/it4it/wp-content/plugins/wp-syntax/geshi/geshi.php</b> on line <b>2879</b><br />
<br />
<b>Warning</b>:  mb_strpos() [<a href='function.mb-strpos'>function.mb-strpos</a>]: Unknown encoding or conversion error. in <b>/var/www/it4it/wp-content/plugins/wp-syntax/geshi/geshi.php</b> on line <b>2879</b><br />
<br />
<b>Warning</b>:  mb_strpos() [<a href='function.mb-strpos'>function.mb-strpos</a>]: Unknown encoding or conversion error. in <b>/var/www/it4it/wp-content/plugins/wp-syntax/geshi/geshi.php</b> on line <b>2879</b><br />
<br />
<b>Warning</b>:  mb_strpos() [<a href='function.mb-strpos'>function.mb-strpos</a>]: Unknown encoding or conversion error. in <b>/var/www/it4it/wp-content/plugins/wp-syntax/geshi/geshi.php</b> on line <b>2879</b><br />
<br />
<b>Warning</b>:  mb_strpos() [<a href='function.mb-strpos'>function.mb-strpos</a>]: Unknown encoding or conversion error. in <b>/var/www/it4it/wp-content/plugins/wp-syntax/geshi/geshi.php</b> on line <b>2879</b><br />
<br />
<b>Warning</b>:  mb_strpos() [<a href='function.mb-strpos'>function.mb-strpos</a>]: Unknown encoding or conversion error. in <b>/var/www/it4it/wp-content/plugins/wp-syntax/geshi/geshi.php</b> on line <b>2879</b><br />
<br />
<b>Warning</b>:  mb_strpos() [<a href='function.mb-strpos'>function.mb-strpos</a>]: Unknown encoding or conversion error. in <b>/var/www/it4it/wp-content/plugins/wp-syntax/geshi/geshi.php</b> on line <b>2879</b><br />
<br />
<b>Warning</b>:  mb_strpos() [<a href='function.mb-strpos'>function.mb-strpos</a>]: Unknown encoding or conversion error. in <b>/var/www/it4it/wp-content/plugins/wp-syntax/geshi/geshi.php</b> on line <b>2879</b><br />
<br />
<b>Warning</b>:  mb_strpos() [<a href='function.mb-strpos'>function.mb-strpos</a>]: Unknown encoding or conversion error. in <b>/var/www/it4it/wp-content/plugins/wp-syntax/geshi/geshi.php</b> on line <b>2879</b><br />
<br />
<b>Warning</b>:  mb_strpos() [<a href='function.mb-strpos'>function.mb-strpos</a>]: Unknown encoding or conversion error. in <b>/var/www/it4it/wp-content/plugins/wp-syntax/geshi/geshi.php</b> on line <b>2879</b><br />
Потребовалось мне тут на досуге, реализовать VPN сеть для пары десятков компьютеров, находящихся в разных точках Земли. Для этого выбрал OpenVPN, а для сервера использовал свой VPS, который видят все.
Итак, первое что нам необходимо, это установить OpenVPN

apt-get install openvpn

После этого, настрйока сервера и клиентов сводится к генерации ключей, раздачи их клиентам и написании 2-х конфигов [...]]]></description>
			<content:encoded><![CDATA[<br />
<b>Warning</b>:  mb_strpos() [<a href='function.mb-strpos'>function.mb-strpos</a>]: Unknown encoding or conversion error. in <b>/var/www/it4it/wp-content/plugins/wp-syntax/geshi/geshi.php</b> on line <b>2879</b><br />
<br />
<b>Warning</b>:  mb_strpos() [<a href='function.mb-strpos'>function.mb-strpos</a>]: Unknown encoding or conversion error. in <b>/var/www/it4it/wp-content/plugins/wp-syntax/geshi/geshi.php</b> on line <b>2879</b><br />
<br />
<b>Warning</b>:  mb_strpos() [<a href='function.mb-strpos'>function.mb-strpos</a>]: Unknown encoding or conversion error. in <b>/var/www/it4it/wp-content/plugins/wp-syntax/geshi/geshi.php</b> on line <b>2879</b><br />
<br />
<b>Warning</b>:  mb_strpos() [<a href='function.mb-strpos'>function.mb-strpos</a>]: Unknown encoding or conversion error. in <b>/var/www/it4it/wp-content/plugins/wp-syntax/geshi/geshi.php</b> on line <b>2879</b><br />
<br />
<b>Warning</b>:  mb_strpos() [<a href='function.mb-strpos'>function.mb-strpos</a>]: Unknown encoding or conversion error. in <b>/var/www/it4it/wp-content/plugins/wp-syntax/geshi/geshi.php</b> on line <b>2879</b><br />
<br />
<b>Warning</b>:  mb_strpos() [<a href='function.mb-strpos'>function.mb-strpos</a>]: Unknown encoding or conversion error. in <b>/var/www/it4it/wp-content/plugins/wp-syntax/geshi/geshi.php</b> on line <b>2879</b><br />
<br />
<b>Warning</b>:  mb_strpos() [<a href='function.mb-strpos'>function.mb-strpos</a>]: Unknown encoding or conversion error. in <b>/var/www/it4it/wp-content/plugins/wp-syntax/geshi/geshi.php</b> on line <b>2879</b><br />
<br />
<b>Warning</b>:  mb_strpos() [<a href='function.mb-strpos'>function.mb-strpos</a>]: Unknown encoding or conversion error. in <b>/var/www/it4it/wp-content/plugins/wp-syntax/geshi/geshi.php</b> on line <b>2879</b><br />
<br />
<b>Warning</b>:  mb_strpos() [<a href='function.mb-strpos'>function.mb-strpos</a>]: Unknown encoding or conversion error. in <b>/var/www/it4it/wp-content/plugins/wp-syntax/geshi/geshi.php</b> on line <b>2879</b><br />
<br />
<b>Warning</b>:  mb_strpos() [<a href='function.mb-strpos'>function.mb-strpos</a>]: Unknown encoding or conversion error. in <b>/var/www/it4it/wp-content/plugins/wp-syntax/geshi/geshi.php</b> on line <b>2879</b><br />
<br />
<b>Warning</b>:  mb_strpos() [<a href='function.mb-strpos'>function.mb-strpos</a>]: Unknown encoding or conversion error. in <b>/var/www/it4it/wp-content/plugins/wp-syntax/geshi/geshi.php</b> on line <b>2879</b><br />
<br />
<b>Warning</b>:  mb_strpos() [<a href='function.mb-strpos'>function.mb-strpos</a>]: Unknown encoding or conversion error. in <b>/var/www/it4it/wp-content/plugins/wp-syntax/geshi/geshi.php</b> on line <b>2879</b><br />
<br />
<b>Warning</b>:  mb_strpos() [<a href='function.mb-strpos'>function.mb-strpos</a>]: Unknown encoding or conversion error. in <b>/var/www/it4it/wp-content/plugins/wp-syntax/geshi/geshi.php</b> on line <b>2879</b><br />
<p>Потребовалось мне тут на досуге, реализовать VPN сеть для пары десятков компьютеров, находящихся в разных точках Земли. Для этого выбрал OpenVPN, а для сервера использовал свой VPS, который видят все.</p>
<p>Итак, первое что нам необходимо, это установить OpenVPN</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">apt-get</span> <span style="color: #c20cb9; font-weight: bold;">install</span> openvpn</pre></div></div>

<p>После этого, настрйока сервера и клиентов сводится к генерации ключей, раздачи их клиентам и написании 2-х конфигов (для сервера и клиентов).</p>
<p>Идем в папку /usr/share/openvpn/easy-rsa/2.0 (в этйо папке хранятся скрипты для создания ключей)</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">cd</span> <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>share<span style="color: #000000; font-weight: bold;">/</span>openvpn<span style="color: #000000; font-weight: bold;">/</span>easy-rsa<span style="color: #000000; font-weight: bold;">/</span>2.</pre></div></div>

<p>Теперь, начнем генерацию ключей:</p>
<p>1. Редактируем файл vars, который хранит значения по-умолчанию (чтобы не вводить кучу раз)</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">nano</span> vars</pre></div></div>

<p>В самом низу, меняем</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">export</span> <span style="color: #007800;">KEY_COUNTRY</span>=<span style="color: #ff0000;">&quot;RU&quot;</span>
<span style="color: #7a0874; font-weight: bold;">export</span> <span style="color: #007800;">KEY_PROVINCE</span>=<span style="color: #ff0000;">&quot;Moscow oblast&quot;</span>
<span style="color: #7a0874; font-weight: bold;">export</span> <span style="color: #007800;">KEY_CITY</span>=<span style="color: #ff0000;">&quot;Moscow&quot;</span>
<span style="color: #7a0874; font-weight: bold;">export</span> <span style="color: #007800;">KEY_ORG</span>=<span style="color: #ff0000;">&quot;my-network&quot;</span>
<span style="color: #7a0874; font-weight: bold;">export</span> <span style="color: #007800;">KEY_EMAIL</span>=<span style="color: #ff0000;">&quot;root@mynet.ru&quot;</span></pre></div></div>

<p>Теперь экспортиуре этот файл и генерируем корневой сертификат:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">source</span> .<span style="color: #000000; font-weight: bold;">/</span>vars
.<span style="color: #000000; font-weight: bold;">/</span>clean-all
.<span style="color: #000000; font-weight: bold;">/</span>build-ca</pre></div></div>

<p>После, генерируем ключ сервера:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">.<span style="color: #000000; font-weight: bold;">/</span>build-key-server server</pre></div></div>

<p>На последние 2 вопроса, отвечаем Y44</p>
<p>После, генерируем  ключ Диффи-Хэлмана</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">.<span style="color: #000000; font-weight: bold;">/</span>build-dh</pre></div></div>

<p>Он делается несколько минут, придется подождать</p>
<p>Теперь, генерируем ключи для каждого клиента</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">.<span style="color: #000000; font-weight: bold;">/</span>build-key client_name</pre></div></div>

<p>После этого, отдаем клиентам их ключи, а также файл ca.crt</p>
<p>Для большей защиты, на файлы server.key установить права 600, а на server.crt и dh1024.pem права 644</p>
<p>Теперь надо написать конфиг сервера.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">port <span style="color: #000000;">1194</span> <span style="color: #666666; font-style: italic;">#порт, на котором работать (рекомендуемый)</span>
ть <span style="color: #7a0874; font-weight: bold;">&#40;</span>ре<span style="color: #666666; font-style: italic;">#протокол, можно tcp</span>
�<span style="color: #7a0874; font-weight: bold;">&#41;</span>
proto<span style="color: #666666; font-style: italic;">#устройство, которое будет использоваться</span>
 tun #устройство, которое будет использоваться
ca путь_до_файла_ca.crt
cert путь_до_фай<span style="color: #666666; font-style: italic;">#подсеть и маска для ВПН сети, из нее будут выдаваться адреса клиентам</span>
�_файла_dh10<span style="color: #666666; font-style: italic;">#разрешаем общение между клиентами</span>
<span style="color: #000000;">5.0</span> #подсеть и маска для В<span style="color: #666666; font-style: italic;">#это позволит выдавать клиентам один и тот же IP</span>
�ться<span style="color: #666666; font-style: italic;">#компрессия</span>
� клиент�<span style="color: #666666; font-style: italic;">#максимальное количество клиентов</span>
аем общен<span style="color: #666666; font-style: italic;">#каждые 10 секунд пинг, если нет ответа 120 секунд, то откидывать клиента</span>
txt #это <span style="color: #666666; font-style: italic;">#хранить ключи в памяти, не перечитывать с диска</span>
� один �<span style="color: #666666; font-style: italic;">#позволять держать соединение</span>
�мпрессия
max-clients <span style="color: #000000;">2</span><span style="color: #666666; font-style: italic;">#статус сервера</span>
�льн<span style="color: #666666; font-style: italic;">#уровень отладки (нормально 2)</span>
�ентов
keepalive <span style="color: #000000;">10</span> <span style="color: #000000;">120</span> #к<span style="color: #666666; font-style: italic;">#файл логов</span></pre></div></div>

<p>Теперь нам надо подготовить конфиг для клиентов.</p>
<p>На Windows, OpenVPN устанавливается в C:\Program FIles\OpenVPN, а конфиг в папке config (логично <img src='http://www.it4it.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> . Создадим в ней новый конфиг openvpn.ovpn и кинем в нее же сгенерированные ключи и сертификаты.</p>
<p>Впишем в конфиг следующее:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">client <span style="color: #666666; font-style: italic;">#указываем что мы клиент</span>
� мы <span style="color: #666666; font-style: italic;">#не цепляться за интерфейс</span>
�епл�<span style="color: #666666; font-style: italic;">#используемое устройство</span>
фейс
d<span style="color: #666666; font-style: italic;">#протокол</span>
спользуемое <span style="color: #666666; font-style: italic;">#куда конектиться</span>
о
proto udp #прот<span style="color: #666666; font-style: italic;">#количество попыток, infinite-бесконечно</span>
� #куда <span style="color: #666666; font-style: italic;">#хранить ключ в памяти</span>
resolv-retry<span style="color: #666666; font-style: italic;">#держать соединение</span>
�еств<span style="color: #666666; font-style: italic;">#сжатие</span>
�ыток, infinite-беско<span style="color: #666666; font-style: italic;">#ключи</span>
�о
persist-key #хранить к</pre></div></div>

<p>После этого, запустим OpenVPN, кликнем Connect, дождемся, когда компьютерики станут зелеными (это будет значить, что к серверу успешно подключились). Теперь можно открыть cmd и пропинговать шлюз, если пакеты ходят, то значит что все хорошо <img src='http://www.it4it.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<script type="text/javascript" src="http://odnaknopka.ru/wp/ok2.utf8.js"></script><script type="text/javascript">okbm("http://www.it4it.ru/index.php/2010/01/26/sozdanie-vpn-seti-s-pomoshhyu-openvpn/","Создание VPN сети с помощью OpenVPN")</script><hr />Copyright © <a href="it4it.ru">it4it</a>. Это персональный, не коммерческий Feed. Если вы читаете этот материал не в вашем RSS клиенте, сайт на котором он находиться получил его незаконным образом.]]></content:encoded>
			<wfw:commentRss>http://www.it4it.ru/index.php/2010/01/26/sozdanie-vpn-seti-s-pomoshhyu-openvpn/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>Настройка VPN сервера на Win2003 через шлюз с Linux</title>
		<link>http://www.it4it.ru/index.php/2010/01/15/nastrojka-vpn-servera-na-win2003-cherez-shlyuz-s-linux/</link>
		<comments>http://www.it4it.ru/index.php/2010/01/15/nastrojka-vpn-servera-na-win2003-cherez-shlyuz-s-linux/#comments</comments>
		<pubDate>Thu, 14 Jan 2010 22:22:50 +0000</pubDate>
		<dc:creator>gigimon</dc:creator>
				<category><![CDATA[*nix]]></category>
		<category><![CDATA[Всякое]]></category>
		<category><![CDATA[gre]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[pptp]]></category>
		<category><![CDATA[vpn]]></category>
		<category><![CDATA[windows 2003]]></category>

		<guid isPermaLink="false">http://www.it4it.ru/?p=425</guid>
		<description><![CDATA[Был очень большой перерыв в бложике, писать было не о чем   И вот на работе появилась задача, подключить 1 комп ко внутренней сети. Думал сначала взять OpenVPN, но решил, что незачем плодить сущности и пусть сервер поработает хоть немного.
Итак, все описаное мной, было проверено на Windows 2003 EN. Приступим:
1. Для начала нам надо [...]]]></description>
			<content:encoded><![CDATA[<p>Был очень большой перерыв в бложике, писать было не о чем <img src='http://www.it4it.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  И вот на работе появилась задача, подключить 1 комп ко внутренней сети. Думал сначала взять OpenVPN, но решил, что незачем плодить сущности и пусть сервер поработает хоть немного.</p>
<p>Итак, все описаное мной, было проверено на Windows 2003 EN. Приступим:</p>
<p>1. Для начала нам надо включить RRAS сервер (routing and remove access ), для этого идем Administrative tools &#8211; Routing and Remote access, увидим свой сервер, жмем правой кнопкой на него Configure and Enable Routing and Remote server, запустится мастер, ничего сложного, проходим его до конца.</p>
<p>2. Появится пункт IP Routing, открываем его, идем в пункт NAT/Basic Firewall, жмем правой кнопкой New Interface, добавляем внутренний и внешний интерфейс. Заходим</p>
<p><a href="http://www.it4it.ru/wp-content/uploads/2010/01/vpn1.png"><img class="aligncenter size-medium wp-image-426" title="Окно с интерфейсами" src="http://www.it4it.ru/wp-content/uploads/2010/01/vpn1-450x319.png" alt="Окно с интерфейсами" width="450" height="319" /></a>У меня интерфейс to-optima идет к интернет-шлюзу (Linux машина) и он считается внешним, Lan &#8211; внутренняя сеть.</p>
<p>После этого,  правой кнопкой на внешнем интерфейсе, Properties. отмечаем галчоками Enable NAT Interface (если вам надо чтобы через этот интерфейс пользователи могли выходить в интернет) и Enable a basic firewall.</p>
<p><a href="http://www.it4it.ru/wp-content/uploads/2010/01/vpn2.png"><img class="aligncenter size-medium wp-image-427" title="настройка внешнего интерфейса" src="http://www.it4it.ru/wp-content/uploads/2010/01/vpn2-379x450.png" alt="настройка внешнего интерфейса" width="379" height="450" /></a></p>
<p>Затем идем в Services and Ports и ставим галочку напротив  VPN Gateway (PPTP).</p>
<p>В настройках внутреннего интерфейса, должен быть выбран пункт: Private interface connected  to private network</p>
<p>3. Затем идем в пункт Remote Access Policies жмем правой и new remote access policy. Появистя мастер, походим его тыкая кнопку вперед. После его появления, жмем правой кнопкой &#8211; Properties. В первом же окне, ставим галочку у Grant remote access permission. Затем На вкладках Authentication и Ecnryption выбираем методы авторизации и шифрования (советую выбрать MS-CHAP 2, а в шифровании все пункты).</p>
<p>4.  Идем в пункт Ports &#8211; Properties. Здесь мы видем возможные способы подключения (PPPOE, PPTP, L2TP). Я оставил только PPTP. Чтобы выключить остальные, выбираем их, жмем кнопку Configure и пункт maximum ports до нуля. Но, следует отметить, что требуется установить нужное количество соединений в нужном способе подключения (у меня 5 соединений в PPTP), в конечном итоге у вас должно получиться что-то типа этого:</p>
<p><a href="http://www.it4it.ru/wp-content/uploads/2010/01/vpn3.png"><img class="aligncenter size-full wp-image-428" title="Итоговая картина подключений" src="http://www.it4it.ru/wp-content/uploads/2010/01/vpn3.png" alt="Итоговая картина подключений" width="431" height="91" /></a></p>
<p>5. Выбираем в меню свой сервер, правой кнопкой &#8211; Properties, первое меню настраиваем так:</p>
<p><a href="http://www.it4it.ru/wp-content/uploads/2010/01/vpn4.png"><img class="aligncenter size-full wp-image-429" title="Настройки 1" src="http://www.it4it.ru/wp-content/uploads/2010/01/vpn4.png" alt="Настройки 1" width="403" height="424" /></a></p>
<p>Теперь идем на вкладку IP и там есть 2 выбора, либо отдавать IP клиентам по DHCP (если он у вас настроен) либо из пула адресов (у меня из пула, соответственно его надо добавить нажав по кнопке Add).</p>
<p>Внизу, выбираем внутренний адаптер.</p>
<p>6. Теперь надо дать нужным пользователям возможность заходить по VPN. У меня все пользователи в домене, поэтому идем:  Administrative tools &#8211; Active Directory users, ищем нужного юзера, заходим в его настройки Properties, открываем вкладку Dial-In и ставим галочки:</p>
<p><a href="http://www.it4it.ru/wp-content/uploads/2010/01/vpn5.png"><img class="aligncenter size-medium wp-image-430" title="Настройка юзера" src="http://www.it4it.ru/wp-content/uploads/2010/01/vpn5-384x450.png" alt="Настройка юзера" width="384" height="450" /></a></p>
<p>После этого, настройка на Windows 2003 заканчивается. Если у вас нету перед ним шлюза на Linux, то можете пробовать подключиться (главное не забудьте правильно выставить настройки шифрования в подключении у клиента).</p>
<p>Для тех, у кого есть шлюз на Linux, потребуется сделать несколько действий</p>
<p>1. В правила iptables сделать DNAT порта VPN  tcp 1723 и протокола gre. Это можно сделать следующими правилами:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #007800;">$IPT</span> <span style="color: #660033;">-t</span> nat <span style="color: #660033;">-A</span> PREROUTING <span style="color: #660033;">-p</span> tcp <span style="color: #660033;">--dport</span> <span style="color: #000000;">1723</span> <span style="color: #660033;">-j</span> DNAT <span style="color: #660033;">--to-destination</span> <span style="color: #007800;">$your_server</span>
<span style="color: #007800;">$IPT</span> <span style="color: #660033;">-t</span> nat <span style="color: #660033;">-A</span> PREROUTING <span style="color: #660033;">-p</span> gre <span style="color: #660033;">-j</span> DNAT <span style="color: #660033;">--to-destination</span> <span style="color: #007800;">$your_server</span></pre></div></div>

<p>Ну и не забыть конечно разрешить FORWARD между внешним и внутренним интерфейсами протокола gre.</p>
<p>Также требуется подгрузить модуль ip_nat_pptp (в 5 дебиане он есть точно сразу)</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">modprobe ip_nat_pptp</pre></div></div>

<script type="text/javascript" src="http://odnaknopka.ru/wp/ok2.utf8.js"></script><script type="text/javascript">okbm("http://www.it4it.ru/index.php/2010/01/15/nastrojka-vpn-servera-na-win2003-cherez-shlyuz-s-linux/","Настройка VPN сервера на Win2003 через шлюз с Linux")</script><hr />Copyright © <a href="it4it.ru">it4it</a>. Это персональный, не коммерческий Feed. Если вы читаете этот материал не в вашем RSS клиенте, сайт на котором он находиться получил его незаконным образом.]]></content:encoded>
			<wfw:commentRss>http://www.it4it.ru/index.php/2010/01/15/nastrojka-vpn-servera-na-win2003-cherez-shlyuz-s-linux/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Установка на Debian 5 – lighttpd + mod_deflate</title>
		<link>http://www.it4it.ru/index.php/2009/10/06/ustanovka-na-debian-5-lighttpd-mod_deflate/</link>
		<comments>http://www.it4it.ru/index.php/2009/10/06/ustanovka-na-debian-5-lighttpd-mod_deflate/#comments</comments>
		<pubDate>Tue, 06 Oct 2009 21:41:02 +0000</pubDate>
		<dc:creator>gigimon</dc:creator>
				<category><![CDATA[*nix]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[bzip]]></category>
		<category><![CDATA[lighttpd]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[веб сервер]]></category>
		<category><![CDATA[сжатие]]></category>

		<guid isPermaLink="false">http://www.it4it.ru/?p=417</guid>
		<description><![CDATA[После переезда с 1 хостера к другому, решил сменить apache2 на Lighttpd. Т.к. VPS мой на Debian 5 и там есть только Lighttpd версии 1.4.19, в которой нету такого нужного модуля, как mod_deflate, для сжатия передаваемых данных. Данный модуль появился только с версии 1.5, в 1.4 есть лишь mod_compress, который умеет только статчиеские файлы сжимать. [...]]]></description>
			<content:encoded><![CDATA[<p>После переезда с 1 хостера к другому, решил сменить apache2 на Lighttpd. Т.к. VPS мой на Debian 5 и там есть только Lighttpd версии 1.4.19, в которой нету такого нужного модуля, как mod_deflate, для сжатия передаваемых данных. Данный модуль появился только с версии 1.5, в 1.4 есть лишь mod_compress, который умеет только статчиеские файлы сжимать. К счастью, патч, реализующий mod_deflate,  доступен практически ко всей ветке 1.4. В этой статье рассмотрим, как доабвить mod_deflate модуль.</p>
<p>Для начала, установим пакет build-essential для сборки lighttpd в .deb пакет</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">apt-get</span> <span style="color: #c20cb9; font-weight: bold;">install</span> build-essential</pre></div></div>

<p>Затем надо скачать сорцы lighttpd и патча:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">cd</span> <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>src
<span style="color: #c20cb9; font-weight: bold;">apt-get</span> <span style="color: #7a0874; font-weight: bold;">source</span> lighttpd
&nbsp;
<span style="color: #c20cb9; font-weight: bold;">wget</span> http:<span style="color: #000000; font-weight: bold;">//</span>redmine.lighttpd.net<span style="color: #000000; font-weight: bold;">/</span>attachments<span style="color: #000000; font-weight: bold;">/</span>download<span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">632</span><span style="color: #000000; font-weight: bold;">/</span>lighttpd-1.4.19.mod_deflate.patch</pre></div></div>

<p>Патчим:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">cd</span> lighttpd-1.4.19
<span style="color: #c20cb9; font-weight: bold;">patch</span> <span style="color: #660033;">-p1</span> <span style="color: #000000; font-weight: bold;">&amp;</span>lt; ..<span style="color: #000000; font-weight: bold;">/</span>lighttpd-1.4.19.mod_deflate.patch</pre></div></div>

<p>Теперь соберем в .deb пакет:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">dpkg-buildpackage</pre></div></div>

<p>После выполнения команды, у вас наверняка появится ошибка подобно этой:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">dpkg-checkbuilddeps: Unmet build dependencies: debhelper <span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #000000; font-weight: bold;">&amp;</span>gt;= 5.0.0<span style="color: #7a0874; font-weight: bold;">&#41;</span> cdbs libssl-dev zlib1g-dev libbz2-dev libattr1-dev libpcre3-dev libmysqlclient15-dev libldap2-dev libfcgi-dev libgdbm-dev libmemcache-dev liblua5.1-<span style="color: #000000;">0</span>-dev dpatch patchutils pkg-config uuid-dev libsqlite3-dev libxml2-dev</pre></div></div>

<p>Это означает, что нехватает этих пакетов для сборки. Надо их установить:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">apt-get</span> <span style="color: #c20cb9; font-weight: bold;">install</span>  cdbs libssl-dev zlib1g-dev libbz2-dev libattr1-dev libpcre3-de</pre></div></div>

<p>После их установки, еще раз выполняем команду</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">build-essential</pre></div></div>

<p>Если по окончанию программы никаких ошибок не выявится, вы должны будете увидеть в папке на 1 уровень выше множество .deb пакет (примерно такого вида)</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">cd</span> ..
<span style="color: #c20cb9; font-weight: bold;">ls</span> <span style="color: #660033;">-l</span>
rwxr-xr-x <span style="color: #000000;">8</span> root root   <span style="color: #000000;">4096</span> <span style="color: #000000;">2007</span>-08-08 <span style="color: #000000;">19</span>:09 lighttpd-1.4.19
<span style="color: #660033;">-rw-r--r--</span> <span style="color: #000000;">1</span> root src     <span style="color: #000000;">861</span> <span style="color: #000000;">2007</span>-08-08 <span style="color: #000000;">19</span>:07 lighttpd_1.4.19-5.dsc
<span style="color: #660033;">-rw-r--r--</span> <span style="color: #000000;">1</span> root src    <span style="color: #000000;">2000</span> <span style="color: #000000;">2007</span>-08-08 <span style="color: #000000;">19</span>:<span style="color: #000000;">12</span> lighttpd_1.4.19-5e_amd64.changes
<span style="color: #660033;">-rw-r--r--</span> <span style="color: #000000;">1</span> root src  <span style="color: #000000;">287998</span> <span style="color: #000000;">2007</span>-08-08 <span style="color: #000000;">19</span>:<span style="color: #000000;">12</span> lighttpd_1.4.19-<span style="color: #000000;">5</span>_amd64.deb</pre></div></div>

<p>Теперь установим Lighttpd:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">dpkg</span> <span style="color: #660033;">-i</span> lighttpd_1.4.19-<span style="color: #000000;">5</span>_amd64.deb</pre></div></div>

<p>Теперь скопируем сам модуль mod_deflate, в папку модулей Lighttpd (патч не патчит make файл, поэтому надо ручками)</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">cp</span> <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>src<span style="color: #000000; font-weight: bold;">/</span>lighttpd-1.4.19<span style="color: #000000; font-weight: bold;">/</span>debian<span style="color: #000000; font-weight: bold;">/</span>tmp<span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>lib<span style="color: #000000; font-weight: bold;">/</span>lighttpd<span style="color: #000000; font-weight: bold;">/</span>mod_deflate.so <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>lib<span style="color: #000000; font-weight: bold;">/</span>lighttpd</pre></div></div>

<p>Проверим, установился ли модуль и видит его lighttpd:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">lighttpd <span style="color: #660033;">-V</span>
lighttpd-1.4.19 <span style="color: #7a0874; font-weight: bold;">&#40;</span>ssl<span style="color: #7a0874; font-weight: bold;">&#41;</span> - a light and fast webserver
Build-Date: Oct  <span style="color: #000000;">5</span> <span style="color: #000000;">2009</span> 01:<span style="color: #000000;">35</span>:<span style="color: #000000;">25</span>
&nbsp;
Event Handlers:
&nbsp;
+ <span style="color: #000000; font-weight: bold;">select</span> <span style="color: #7a0874; font-weight: bold;">&#40;</span>generic<span style="color: #7a0874; font-weight: bold;">&#41;</span>
+ poll <span style="color: #7a0874; font-weight: bold;">&#40;</span>Unix<span style="color: #7a0874; font-weight: bold;">&#41;</span>
+ rt-signals <span style="color: #7a0874; font-weight: bold;">&#40;</span>Linux <span style="color: #000000;">2.4</span>+<span style="color: #7a0874; font-weight: bold;">&#41;</span>
+ epoll <span style="color: #7a0874; font-weight: bold;">&#40;</span>Linux <span style="color: #000000;">2.6</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
- <span style="color: #000000; font-weight: bold;">/</span>dev<span style="color: #000000; font-weight: bold;">/</span>poll <span style="color: #7a0874; font-weight: bold;">&#40;</span>Solaris<span style="color: #7a0874; font-weight: bold;">&#41;</span>
- kqueue <span style="color: #7a0874; font-weight: bold;">&#40;</span>FreeBSD<span style="color: #7a0874; font-weight: bold;">&#41;</span>
&nbsp;
Network handler:
&nbsp;
+ sendfile
&nbsp;
Features:
&nbsp;
+ IPv6 support
+ zlib support
+ <span style="color: #c20cb9; font-weight: bold;">bzip2</span> support
+ crypt support
+ SSL Support
+ PCRE support
+ mySQL support
+ LDAP support
+ memcached support
+ FAM support
+ LUA support
+ xml support
+ SQLite support
+ GDBM support</pre></div></div>

<p>Следует обратить внимание на наличие строки bzip2, если она присутствует, то mod_deflate установился.</p>
<p>После этих манипуляций, надо настроить сам модуль. Для этого создаем конфиг и впишем в него нужные опции (они будут действовать для всех хостов) и включим:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">nano</span> <span style="color: #660033;">-w</span> <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>lighttpd<span style="color: #000000; font-weight: bold;">/</span>conf-available<span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">10</span>-deflate.conf
&nbsp;
<span style="color: #666666; font-style: italic;">#включением</span>
�нием
&nbsp;
deflate.enabled = <span style="color: #666666; font-style: italic;">#степень компрессии</span>
�нь компрессии
&nbsp;
deflate.compression-level = <span style="color: #000000;">9</span>
deflate.mem-level = <span style="color: #000000;">9</span>
deflate.window-size = <span style="color: #000000;">15</span>
deflate.bzip2 = &quot;<span style="color: #7a0874; font-weight: bold;">enable</span>&quot;
deflate.min-compress-size = <span style="color: #000000;">200</span>
deflate.output-buffer-size = <span style="color: #000000;">4096</span>
defl<span style="color: #666666; font-style: italic;">#типы файлов, которые сжимать</span>
ипы файлов, которые сжимать
&nbsp;
deflate.mimetypes = <span style="color: #7a0874; font-weight: bold;">&#40;</span>&quot;text<span style="color: #000000; font-weight: bold;">/</span>html&quot;, &quot;text<span style="color: #000000; font-weight: bold;">/</span>plain&quot;, &quot;text<span style="color: #000000; font-weight: bold;">/</span>css&quot;, &quot;text<span style="color: #000000; font-weight: bold;">/</span>javascript&quot;, &quot;text<span style="color: #000000; font-weight: bold;">/</span>xml&quot;<span style="color: #7a0874; font-weight: bold;">&#41;</span>
&nbsp;
<span style="color: #c20cb9; font-weight: bold;">ln</span> <span style="color: #660033;">-s</span> <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>lighttpd<span style="color: #000000; font-weight: bold;">/</span>conf-available<span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">10</span>-defl</pre></div></div>

<p>После этого рестартим Lighttpd и проверяем с помощью Opera DragonFly или FF FireBug (ну или чем вам удобно смотреть HTTP заголовки) на предмет сжатия.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>init.d<span style="color: #000000; font-weight: bold;">/</span>lighttpd restart</pre></div></div>

<p>Все, после этого должно все работать <img src='http://www.it4it.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Надеюсь это вам помогло</pre>
<script type="text/javascript" src="http://odnaknopka.ru/wp/ok2.utf8.js"></script><script type="text/javascript">okbm("http://www.it4it.ru/index.php/2009/10/06/ustanovka-na-debian-5-lighttpd-mod_deflate/","Установка на Debian 5 &amp;#8211; lighttpd + mod_deflate")</script><hr />Copyright © <a href="it4it.ru">it4it</a>. Это персональный, не коммерческий Feed. Если вы читаете этот материал не в вашем RSS клиенте, сайт на котором он находиться получил его незаконным образом.]]></content:encoded>
			<wfw:commentRss>http://www.it4it.ru/index.php/2009/10/06/ustanovka-na-debian-5-lighttpd-mod_deflate/feed/</wfw:commentRss>
		<slash:comments>56</slash:comments>
		</item>
		<item>
		<title>Создание Linux виртуальной машины (domU) в Xen</title>
		<link>http://www.it4it.ru/index.php/2009/09/26/sozdanie-linux-virtualnoj-mashiny-domu-v-xen/</link>
		<comments>http://www.it4it.ru/index.php/2009/09/26/sozdanie-linux-virtualnoj-mashiny-domu-v-xen/#comments</comments>
		<pubDate>Sat, 26 Sep 2009 14:55:54 +0000</pubDate>
		<dc:creator>gigimon</dc:creator>
				<category><![CDATA[*nix]]></category>
		<category><![CDATA[dom0]]></category>
		<category><![CDATA[domu]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[xen]]></category>
		<category><![CDATA[виртуализация]]></category>

		<guid isPermaLink="false">http://www.it4it.ru/?p=407</guid>
		<description><![CDATA[После того, как установили dom0, можно приступить к установке в него виртуальных машин (domU). Для начала рассмотрим общую схему по установке, которую можно разделить на следующие этапы:
1. Создание &#8220;жесткого диска&#8221;
2. Написание конфига
3. Установка туда ОС, либо использование готового темплейта.
Приступим к созданию виртуальной машины.
Для жесткого диска виртуальной машины, можно использовать либо файл, либо отдельный раздел. Я буду рассматривать на примере [...]]]></description>
			<content:encoded><![CDATA[<p>После того, как установили dom0, можно приступить к установке в него виртуальных машин (domU). Для начала рассмотрим общую схему по установке, которую можно разделить на следующие этапы:</p>
<p>1. Создание &#8220;жесткого диска&#8221;</p>
<p>2. Написание конфига</p>
<p>3. Установка туда ОС, либо использование готового темплейта.</p>
<p>Приступим к созданию виртуальной машины.</p>
<p>Для жесткого диска виртуальной машины, можно использовать либо файл, либо отдельный раздел. Я буду рассматривать на примере LVM раздела.</p>
<p>Для начала, создадим жесткий диск под нашу виртуальную машину:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">lvcreate <span style="color: #660033;">-L</span> M <span style="color: #660033;">-n</span> Debian1 <span style="color: #000000; font-weight: bold;">/</span>dev<span style="color: #000000; font-weight: bold;">/</span>VolGroup00
&nbsp;
mkfs.ext3 <span style="color: #000000; font-weight: bold;">/</span>dev<span style="color: #000000; font-weight: bold;">/</span>VolGroup00<span style="color: #000000; font-weight: bold;">/</span>Debian1</pre></div></div>

<p>После этого, напишем конфиг нашей виртуальной машины debian1.cfg</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">kernel     = '<span style="color: #000000; font-weight: bold;">/</span>boot<span style="color: #000000; font-weight: bold;">/</span>xen.gz-2.6.18-164.el5'
memory     = <span style="color: #000000;">512</span>
name       = 'Debian1'
&nbsp;
vif        = <span style="color: #7a0874; font-weight: bold;">&#91;</span>'<span style="color: #007800;">vifname</span>=vifxenv0,  <span style="color: #007800;">mac</span>=aa:00:7f:<span style="color: #000000;">80</span>:ca:01 '<span style="color: #7a0874; font-weight: bold;">&#93;</span>
&nbsp;
vnc        =  <span style="color: #000000;">1</span>
&nbsp;
sdl = <span style="color: #000000;">0</span>
&nbsp;
vncpasswd = '<span style="color: #000000;">1234567</span>'
&nbsp;
vncdisplay = <span style="color: #000000;">2</span>
serial     = 'pty'
disk       = <span style="color: #7a0874; font-weight: bold;">&#91;</span>'phy:<span style="color: #000000; font-weight: bold;">/</span>dev<span style="color: #000000; font-weight: bold;">/</span>VolGroup00<span style="color: #000000; font-weight: bold;">/</span>Debian1,sda1,<span style="color: #c20cb9; font-weight: bold;">w</span>'<span style="color: #7a0874; font-weight: bold;">&#93;</span>
&nbsp;</pre></div></div>

<p>Рассмотрим параметры:</p>
<p><strong>kernel</strong> &#8211; указывает какое ядро надо использовать в виртуальной машине. Ядро должно быть модифицировано для работы в Xen окружении (в CentOs стандартное dom0 ядро поддерживает работу в domU)</p>
<p><strong>memory</strong> &#8211; объем RAM в Мб</p>
<p><strong>name</strong> &#8211; имя виртуальной машины, которое будет отображаться в xm list</p>
<p><strong>vif</strong> &#8211; настройки сети. vifname &#8211; какой виртуальный интерфейс использовать в domU машине, mac &#8211; установить этот mac адрес</p>
<p><strong>vnc</strong> &#8211; включить VNC (для удаленного доступа)</p>
<p><strong>sdl</strong> &#8211; при включенном vnc не использовать библиотеку sdl, они взаимоисключают друг друга</p>
<p><strong>vncpasswd</strong> &#8211; пароль на VNC</p>
<p><strong>vncdisplay</strong> &#8211; на каком экране VNC будет эта виртуальная машина. Тут имеется ввиду порт на dom0 машине, который устанавливается 5900 + vncdisplay. В нашем случае этот порт будет 5902</p>
<p><strong>disk</strong> &#8211; Параметры жесткого диска. phy: значит физический раздел, с полным путем к нему. В случае файла надо использовать file: Следующий параметр после запятой, это под каким именем подключать этот раздел в dom0 машину, следующий параметр, что можно с этим разделом w &#8211; означает возможность читать и писать на него.</p>
<p><strong>root</strong> &#8211; параметр root передаваемый ядру при загрузке.</p>
<p>Теперь, нам надо либо установить ОС в виртуальную машину, либо использовать уже готовый темплейт, что мы и будем делать.</p>
<p>Достаточно много темплейтов, можно найти на <a href="http://stacklet.com/">этом</a> сайте. Качаем Debian Lenny с этого сайта</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">wget</span> http:<span style="color: #000000; font-weight: bold;">//</span>stacklet.com<span style="color: #000000; font-weight: bold;">/</span>sites<span style="color: #000000; font-weight: bold;">/</span>default<span style="color: #000000; font-weight: bold;">/</span>files<span style="color: #000000; font-weight: bold;">/</span>debian<span style="color: #000000; font-weight: bold;">/</span>debian.5-0.x86.20090517.img.tar.bz2
<span style="color: #c20cb9; font-weight: bold;">tar</span> -xfj debian.5-0.x86.20090517.img.tar.b</pre></div></div>

<p>После этого, смонтируем наш &#8220;жесткий диск&#8221; для виртуальной машины и образ .img</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">mkdir</span> <span style="color: #000000; font-weight: bold;">/</span>mnt<span style="color: #000000; font-weight: bold;">/</span>template
<span style="color: #c20cb9; font-weight: bold;">mkdir</span> <span style="color: #000000; font-weight: bold;">/</span>mnt<span style="color: #000000; font-weight: bold;">/</span>fs<span style="color: #000000; font-weight: bold;">&amp;</span>lt;
<span style="color: #c20cb9; font-weight: bold;">mount</span> <span style="color: #660033;">-o</span> loop debian.5-0.x86.20090517.img <span style="color: #000000; font-weight: bold;">/</span>mnt<span style="color: #000000; font-weight: bold;">/</span>template
<span style="color: #c20cb9; font-weight: bold;">mount</span> <span style="color: #000000; font-weight: bold;">/</span>dev<span style="color: #000000; font-weight: bold;">/</span>VolGroup00<span style="color: #000000; font-weight: bold;">/</span>Debian</pre></div></div>

<p>Теперь скопируем все с образа на наш диск:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">cp</span> <span style="color: #660033;">-R</span> <span style="color: #000000; font-weight: bold;">/</span>mnt<span style="color: #000000; font-weight: bold;">/</span>template<span style="color: #000000; font-weight: bold;">/*</span> <span style="color: #000000; font-weight: bold;">/</span>mnt<span style="color: #000000; font-weight: bold;">/</span>fs</pre></div></div>

<p>Отмонтируем:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">umount</span> <span style="color: #000000; font-weight: bold;">/</span>mnt<span style="color: #000000; font-weight: bold;">/</span>template
<span style="color: #c20cb9; font-weight: bold;">umount</span> <span style="color: #000000; font-weight: bold;">/</span>mnt<span style="color: #000000; font-weight: bold;">/</span>fs</pre></div></div>

<p>Все, наша domU машина готова, осталось только ее запустить</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">xm create <span style="color: #000000; font-weight: bold;">/</span>path<span style="color: #000000; font-weight: bold;">/</span>to<span style="color: #000000; font-weight: bold;">/</span>config<span style="color: #000000; font-weight: bold;">/</span>debian1.cfg <span style="color: #660033;">-c</span></pre></div></div>

<p>У нас откроется консоль с запуском виртуальной машины, если все хорошо, то перед нами будет диалог приветствия (шелл, с просьбой ввода логина и пароля). Стандартный пароль на эти темплейты password.</p>
<p>После этого, можно проверить и VNC доступ. На удаленной машине используем любой VNC клиент (я использую tightVNC)</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">vncviewer server_ip:<span style="color: #000000;">5902</span></pre></div></div>

<p>Должно будет появиться окно ввода пароля, после его ввода увидим шелл. Если все так и произошло, то поздравляю с первой виртуальной машиной в Xen <img src='http://www.it4it.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Ссылки:</p>
<p>http://xgu.ru/wiki/Linux_в_Xen</p>
<p>http://stacklet.com/</p>
<p>P.S. надеюсь это руководство вам помогло.</p>
<script type="text/javascript" src="http://odnaknopka.ru/wp/ok2.utf8.js"></script><script type="text/javascript">okbm("http://www.it4it.ru/index.php/2009/09/26/sozdanie-linux-virtualnoj-mashiny-domu-v-xen/","Создание Linux виртуальной машины (domU) в Xen")</script><hr />Copyright © <a href="it4it.ru">it4it</a>. Это персональный, не коммерческий Feed. Если вы читаете этот материал не в вашем RSS клиенте, сайт на котором он находиться получил его незаконным образом.]]></content:encoded>
			<wfw:commentRss>http://www.it4it.ru/index.php/2009/09/26/sozdanie-linux-virtualnoj-mashiny-domu-v-xen/feed/</wfw:commentRss>
		<slash:comments>34</slash:comments>
		</item>
		<item>
		<title>Установка Xen в CentOS</title>
		<link>http://www.it4it.ru/index.php/2009/09/23/ustanovka-xen-v-centos/</link>
		<comments>http://www.it4it.ru/index.php/2009/09/23/ustanovka-xen-v-centos/#comments</comments>
		<pubDate>Wed, 23 Sep 2009 21:51:03 +0000</pubDate>
		<dc:creator>gigimon</dc:creator>
				<category><![CDATA[*nix]]></category>
		<category><![CDATA[centos]]></category>
		<category><![CDATA[xen]]></category>
		<category><![CDATA[виртуализация]]></category>

		<guid isPermaLink="false">http://www.it4it.ru/?p=401</guid>
		<description><![CDATA[Недавно начал пробовать систему виртуализации Xen. После быстрого чтения мануалов, смог установить виртуальную машину с Debian, что говорит о достаточно простой конфигурации (для начальных нужд). Итак, в качестве хостовой машины (dom0) будет использоваться CentOS 5.2, запущенный на компьютере с поддержкой аппаратной виртуализации (AMD-V или Intel-VT). Поддержка аппаратной виртуализации нужна, если вы собираетесь запускать Windows.
Первое что [...]]]></description>
			<content:encoded><![CDATA[<p>Недавно начал пробовать систему виртуализации Xen. После быстрого чтения мануалов, смог установить виртуальную машину с Debian, что говорит о достаточно простой конфигурации (для начальных нужд). Итак, в качестве хостовой машины (dom0) будет использоваться CentOS 5.2, запущенный на компьютере с поддержкой аппаратной виртуализации (AMD-V или Intel-VT). Поддержка аппаратной виртуализации нужна, если вы собираетесь запускать Windows.</p>
<p>Первое что необходимо, установить ядро с поддержкой Xen. В стандартных репозитариях CentOS есть такое ядро, kernel-xen версии 2.6.18-164 с Xen 3.0</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">yum <span style="color: #c20cb9; font-weight: bold;">install</span> kernel-xen</pre></div></div>

<p>После установки, в /boot появится ядро vmlinuz-2.6.18-164.el5xen. Теперь надо загрузиться с ним. Можео либо вручную его выбрать при загрузке grub, либо отредактировать файл /boot/grub/menu.lst и параметр default сделать равным 0 (по-умолчанию, kernel-xen автоматчиески прописывает себя первым ядром в меню grub).</p>
<p>После загрузки с ядром Xen&#8217;а, работу его можно проверить наличием интерфейсов xenbr и vif в выводе ifconfig:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">&#91;</span>root<span style="color: #000000; font-weight: bold;">@</span>gigi ~<span style="color: #7a0874; font-weight: bold;">&#93;</span><span style="color: #666666; font-style: italic;"># ifconfig</span>
peth1     Link encap:Ethernet  HWaddr FE:FF:FF:FF:FF:FF
inet6 addr: fe80::fcff:ffff:feff:ffff<span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">64</span> Scope:Link
UP BROADCAST RUNNING NOARP  MTU:<span style="color: #000000;">1500</span>  Metric:<span style="color: #000000;">1</span>
RX packets:<span style="color: #000000;">1484845567</span> errors:<span style="color: #000000;">0</span> dropped:<span style="color: #000000;">848</span> overruns:<span style="color: #000000;">0</span> frame:<span style="color: #000000;">0</span>
TX packets:<span style="color: #000000;">21318806</span> errors:<span style="color: #000000;">0</span> dropped:<span style="color: #000000;">0</span> overruns:<span style="color: #000000;">0</span> carrier:<span style="color: #000000;">0</span>
collisions:<span style="color: #000000;">0</span> txqueuelen:<span style="color: #000000;">1000</span>
RX bytes:<span style="color: #000000;">107304750948</span> <span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #000000;">99.9</span> GiB<span style="color: #7a0874; font-weight: bold;">&#41;</span>  TX bytes:<span style="color: #000000;">1495739489</span> <span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #000000;">1.3</span> GiB<span style="color: #7a0874; font-weight: bold;">&#41;</span>
Memory:dc080000-dc0a0000
&nbsp;
vifxenv0  Link encap:Ethernet  HWaddr FE:FF:FF:FF:FF:FF
inet6 addr: fe80::fcff:ffff:feff:ffff<span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">64</span> Scope:Link
UP BROADCAST RUNNING NOARP  MTU:<span style="color: #000000;">1500</span>  Metric:<span style="color: #000000;">1</span>
RX packets:<span style="color: #000000;">17643569</span> errors:<span style="color: #000000;">0</span> dropped:<span style="color: #000000;">0</span> overruns:<span style="color: #000000;">0</span> frame:<span style="color: #000000;">0</span>
TX packets:<span style="color: #000000;">1467766901</span> errors:<span style="color: #000000;">0</span> dropped:<span style="color: #000000;">390908</span> overruns:<span style="color: #000000;">0</span> carrier:<span style="color: #000000;">0</span>
collisions:<span style="color: #000000;">0</span> txqueuelen:<span style="color: #000000;">32</span>
RX bytes:<span style="color: #000000;">863953497</span> <span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #000000;">823.9</span> MiB<span style="color: #7a0874; font-weight: bold;">&#41;</span>  TX bytes:<span style="color: #000000;">100008573528</span> <span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #000000;">93.1</span> GiB<span style="color: #7a0874; font-weight: bold;">&#41;</span>
&nbsp;
vif0.1    Link encap:Ethernet  HWaddr FE:FF:FF:FF:FF:FF
inet6 addr: fe80::fcff:ffff:feff:ffff<span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">64</span> Scope:Link
UP BROADCAST RUNNING NOARP  MTU:<span style="color: #000000;">1500</span>  Metric:<span style="color: #000000;">1</span>
RX packets:<span style="color: #000000;">3588998</span> errors:<span style="color: #000000;">0</span> dropped:<span style="color: #000000;">0</span> overruns:<span style="color: #000000;">0</span> frame:<span style="color: #000000;">0</span>
TX packets:<span style="color: #000000;">1483233162</span> errors:<span style="color: #000000;">0</span> dropped:<span style="color: #000000;">0</span> overruns:<span style="color: #000000;">0</span> carrier:<span style="color: #000000;">0</span>
collisions:<span style="color: #000000;">0</span> txqueuelen:<span style="color: #000000;">0</span>
RX bytes:<span style="color: #000000;">370499902</span> <span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #000000;">353.3</span> MiB<span style="color: #7a0874; font-weight: bold;">&#41;</span>  TX bytes:<span style="color: #000000;">107193417651</span> <span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #000000;">99.8</span> GiB<span style="color: #7a0874; font-weight: bold;">&#41;</span>
&nbsp;
xenbr1    Link encap:Ethernet  HWaddr FE:FF:FF:FF:FF:FF
UP BROADCAST RUNNING NOARP  MTU:<span style="color: #000000;">1500</span>  Metric:<span style="color: #000000;">1</span>
RX packets:<span style="color: #000000;">3930114</span> errors:<span style="color: #000000;">0</span> dropped:<span style="color: #000000;">0</span> overruns:<span style="color: #000000;">0</span> frame:<span style="color: #000000;">0</span>
TX packets:<span style="color: #000000;">0</span> errors:<span style="color: #000000;">0</span> dropped:<span style="color: #000000;">0</span> overruns:<span style="color: #000000;">0</span> carrier:<span style="color: #000000;">0</span>
collisions:<span style="color: #000000;">0</span> txqueuelen:<span style="color: #000000;">0</span>
RX bytes:<span style="color: #000000;">2361888673</span> <span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #000000;">2.1</span> GiB<span style="color: #7a0874; font-weight: bold;">&#41;</span>  TX bytes:<span style="color: #000000;">0</span> <span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #000000;">0.0</span> b<span style="color: #7a0874; font-weight: bold;">&#41;</span></pre></div></div>

<p>А также, посмотреть вывод команды xm list, он должен выглядеть примерно так:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">&#91;</span>root<span style="color: #000000; font-weight: bold;">@</span>gigi ~<span style="color: #7a0874; font-weight: bold;">&#93;</span><span style="color: #666666; font-style: italic;"># xm list</span>
Name                                      ID Mem<span style="color: #7a0874; font-weight: bold;">&#40;</span>MiB<span style="color: #7a0874; font-weight: bold;">&#41;</span> VCPUs State   Time<span style="color: #7a0874; font-weight: bold;">&#40;</span>s<span style="color: #7a0874; font-weight: bold;">&#41;</span>
Domain-<span style="color: #000000;">0</span>                                   <span style="color: #000000;">0</span>      <span style="color: #000000;">512</span>     <span style="color: #000000;">4</span> r-----  <span style="color: #000000;">45273.0</span></pre></div></div>

<p>Запись Domain-0 обозначает, что запущена машина с dom0 (наша хостовая)  и значит, все работает <img src='http://www.it4it.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Из известных проблем, следует упомянуть, не используйте сетевые карты Realtek на чипсетах 8169 и ему подобном, т.к. при использовании такой сетевой карты, не сохраняются сетевые параметры (не применяются при создании моста xenbr), а также MAC адрес становится FF:FF:FF:FF:FF:FF</p>
<p>В следующей заметке (очень скоро) расскажу про создание Linux и Windows виртуальных машин.</p>
<p>Ссылки:</p>
<p>Официальный <a href="http://www.xen.org/" target="_blank">сайт</a></p>
<p>Официальная <a href="http://tx.downloads.xensource.com/downloads/docs/user" target="_blank">документация</a></p>
<p><a href="http://xgu.ru/wiki/Xen" target="_blank">Документация</a> на русском</p>
<script type="text/javascript" src="http://odnaknopka.ru/wp/ok2.utf8.js"></script><script type="text/javascript">okbm("http://www.it4it.ru/index.php/2009/09/23/ustanovka-xen-v-centos/","Установка Xen в CentOS")</script><hr />Copyright © <a href="it4it.ru">it4it</a>. Это персональный, не коммерческий Feed. Если вы читаете этот материал не в вашем RSS клиенте, сайт на котором он находиться получил его незаконным образом.]]></content:encoded>
			<wfw:commentRss>http://www.it4it.ru/index.php/2009/09/23/ustanovka-xen-v-centos/feed/</wfw:commentRss>
		<slash:comments>35</slash:comments>
		</item>
		<item>
		<title>Подключаем django-debug-toolbar</title>
		<link>http://www.it4it.ru/index.php/2009/08/19/podklyuchaem-django-debug-toolbar/</link>
		<comments>http://www.it4it.ru/index.php/2009/08/19/podklyuchaem-django-debug-toolbar/#comments</comments>
		<pubDate>Wed, 19 Aug 2009 10:43:35 +0000</pubDate>
		<dc:creator>gigimon</dc:creator>
				<category><![CDATA[Django]]></category>
		<category><![CDATA[debug]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://www.it4it.ru/?p=395</guid>
		<description><![CDATA[Очень полезным дополнением для Django является django-debug-toolbar. Это своего рода отладочная панель, которая легко подключается, позволяет просматривать множество данных (в том числе настройки, SQL запросы, время выполнения, traceback), а выглядит она так:    Приступим собственно к его установке  
1. Установим собственно django-debug-toolbar. Можно из git&#8217;a или же стабильную версию с помощью easy_install

easy_install [...]]]></description>
			<content:encoded><![CDATA[<p>Очень полезным дополнением для Django является django-debug-toolbar. Это своего рода отладочная панель, которая легко подключается, позволяет просматривать множество данных (в том числе настройки, SQL запросы, время выполнения, traceback), а выглядит она так:  <a href="http://www.it4it.ru/wp-content/uploads/2009/08/debug1.png"><img class="aligncenter size-medium wp-image-396" title="Общий вид" src="http://www.it4it.ru/wp-content/uploads/2009/08/debug1-450x16.png" alt="Общий вид" width="450" height="16" /></a><br /> <a href="http://www.it4it.ru/wp-content/uploads/2009/08/debug2.png"><img class="aligncenter size-medium wp-image-397" title="Вид запросов" src="http://www.it4it.ru/wp-content/uploads/2009/08/debug2-450x152.png" alt="Вид запросов" width="450" height="152" /></a> Приступим собственно к его установке <img src='http://www.it4it.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>1. Установим собственно django-debug-toolbar. Можно из <a href="git://github.com/robhudson/django-debug-toolbar.git">git&#8217;a</a> или же стабильную версию с помощью easy_install</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">easy_install django-debug-toolbar</pre></div></div>

<p>2. Добавляем в наш проект. В секцию MIDDLEWARE_CLASSES добавим в конец &#8216;debug_toolbar.middleware.DebugToolbarMiddleware&#8217;,</p>
<p>3. В settings.py добавим секцию INTERNAL_IPS = (&#8216;127.0.0.1&#8242;,) (если вы работаете на локальной машине)</p>
<p>4. Добавим путь в TEMPLATE_DIRS до папки с темплейтами django-debug-toolbar. У меня в Gentoo этот путь  &#8217;/usr/lib/python2.5/site-packages/django_debug_toolbar-0.7.0-py2.5.egg/debug_toolbar/templates/&#8217;,</p>
<p>5. Подключим к нашему проекту, в секции INSTALLED_APPS  добавить &#8216;debug_toolbar&#8217;,</p>
<p>6. После этого, можно опционально добавить секцию DEBUG_TOOLBAR_PANELS, в которой задаются активные панели.</p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;">DEBUG_TOOLBAR_PANELS = <span style="color: black;">&#40;</span>
<span style="color: #483d8b;">'debug_toolbar.panels.version.VersionDebugPanel'</span>,
<span style="color: #483d8b;">'debug_toolbar.panels.timer.TimerDebugPanel'</span>,
<span style="color: #483d8b;">'debug_toolbar.panels.settings_vars.SettingsVarsDebugPanel'</span>,
<span style="color: #483d8b;">'debug_toolbar.panels.headers.HeaderDebugPanel'</span>,
<span style="color: #483d8b;">'debug_toolbar.panels.request_vars.RequestVarsDebugPanel'</span>,
<span style="color: #483d8b;">'debug_toolbar.panels.template.TemplateDebugPanel'</span>,
<span style="color: #483d8b;">'debug_toolbar.panels.sql.SQLDebugPanel'</span>,
<span style="color: #483d8b;">'debug_toolbar.panels.signals.SignalDebugPanel'</span>,
<span style="color: #483d8b;">'debug_toolbar.panels.logger.LoggingPanel'</span>,
<span style="color: black;">&#41;</span></pre></div></div>

<p>Все, после этого, на каждой странице вверху, будет отображаться тулбарчик с панелькой <img src='http://www.it4it.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>P.S. панель отображается только если в темплейте есть открывающийся и закрывающийся тег &lt;body&gt;&lt;/body&gt;</p>
<script type="text/javascript" src="http://odnaknopka.ru/wp/ok2.utf8.js"></script><script type="text/javascript">okbm("http://www.it4it.ru/index.php/2009/08/19/podklyuchaem-django-debug-toolbar/","Подключаем django-debug-toolbar")</script><hr />Copyright © <a href="it4it.ru">it4it</a>. Это персональный, не коммерческий Feed. Если вы читаете этот материал не в вашем RSS клиенте, сайт на котором он находиться получил его незаконным образом.]]></content:encoded>
			<wfw:commentRss>http://www.it4it.ru/index.php/2009/08/19/podklyuchaem-django-debug-toolbar/feed/</wfw:commentRss>
		<slash:comments>43</slash:comments>
		</item>
		<item>
		<title>Подключение Bluetooth гарнитуры через PulseAudio</title>
		<link>http://www.it4it.ru/index.php/2009/08/06/podklyuchenie-bluetooth-garnitury-cherez-pulseaudio/</link>
		<comments>http://www.it4it.ru/index.php/2009/08/06/podklyuchenie-bluetooth-garnitury-cherez-pulseaudio/#comments</comments>
		<pubDate>Thu, 06 Aug 2009 20:09:38 +0000</pubDate>
		<dc:creator>gigimon</dc:creator>
				<category><![CDATA[*nix]]></category>
		<category><![CDATA[a2dp]]></category>
		<category><![CDATA[bluetooth]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[гарнитура]]></category>

		<guid isPermaLink="false">http://www.it4it.ru/?p=391</guid>
		<description><![CDATA[Решил все-таки написать статейку, после долгого летнего перерыва  
После обновления ядра с 24 на 30, перестала работать bluetooth гарнитура   из-за того, что убрали mod_bt_sco, начал искать решение, рекомендовали через PulseAudio (который не стоял из-за ненадобности). Итак начнем, для начала обновим портежи и пересоберем мир с pulseaudio.
Добавляем в

/etc/make.conf в секцию USE &#34;pulseaudio

Обновляем мир

emerge [...]]]></description>
			<content:encoded><![CDATA[<p>Решил все-таки написать статейку, после долгого летнего перерыва <img src='http://www.it4it.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>После обновления ядра с 24 на 30, перестала работать bluetooth гарнитура <img src='http://www.it4it.ru/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' />  из-за того, что убрали mod_bt_sco, начал искать решение, рекомендовали через PulseAudio (который не стоял из-за ненадобности). Итак начнем, для начала обновим портежи и пересоберем мир с pulseaudio.</p>
<p>Добавляем в</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>make.conf в секцию USE &quot;pulseaudio</pre></div></div>

<p>Обновляем мир</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">emerge <span style="color: #660033;">-avDNt</span> world</pre></div></div>

<p>Теперь установим компоненты PulseAudio</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">emerge <span style="color: #660033;">-av</span> pulseaudio paprefs pavucontrol paman padevchooser pavumeter alsa-plugins</pre></div></div>

<p>media-sound/pulseaudio &#8211; сам сервер<br />
media-sound/paprefs &#8211; Графическая утилита для настройки параметров сервера<br />
media-sound/pavumeter &#8211; Графическая утилита, которая отображает уровни звука (типа alsamixer)<br />
media-sound/padevchooser &#8211; Утилита для настройки звуковых устройств и потоков, создает иконку в трее, позволяет на лету переключать устройства звука и многое другое<br />
media-sound/paman &#8211; Утилита для тонкой настройки модулей<br />
media-sound/pavucontrol &#8211; Утилита позволяющая переключать каналы и потоки.</p>
<p>После этого, меняем профильм esd</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">eselect esd <span style="color: #000000; font-weight: bold;">set</span> <span style="color: #000000;">2</span></pre></div></div>

<p>Добавляем в автозагрузку avahi-daemon и pulseaudio</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">rc-update add avahi-daemon default
&nbsp;
rc-update add pulseaudio default</pre></div></div>

<p>Добавим нужного пользователя в группу PulseAudio</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">gpasswd <span style="color: #660033;">-a</span> USER pulse
gpasswd <span style="color: #660033;">-a</span> USER pulse-access</pre></div></div>

<p>Теперь, настроим PulseAudio, редактируем /etc/conf.d/pulseaudio к такому виду:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #007800;">PA_OPTS</span>=<span style="color: #ff0000;">&quot;--log-target=syslog&quot;</span>
<span style="color: #007800;">PULSEAUDIO_SHOULD_NOT_GO_SYSTEMWIDE</span>=YES</pre></div></div>

<p>Затем в /etc/init.d/pulseaudio в секции start(), изменяем строчку на:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #007800;">PA_ALL_OPTS</span>=<span style="color: #ff0000;">&quot;<span style="color: #007800;">${PA_OPTS}</span> --fail=1 --daemonize=1&quot;</span></pre></div></div>

<p>Настроим ALSA. В .asoundrc (в папке пользователя) добавляем:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">pcm.pulse <span style="color: #7a0874; font-weight: bold;">&#123;</span>
<span style="color: #7a0874; font-weight: bold;">type</span> pulse
<span style="color: #7a0874; font-weight: bold;">&#125;</span>
&nbsp;
ctl.pulse <span style="color: #7a0874; font-weight: bold;">&#123;</span>
<span style="color: #7a0874; font-weight: bold;">type</span> pulse
<span style="color: #7a0874; font-weight: bold;">&#125;</span>
&nbsp;
pcm.<span style="color: #000000; font-weight: bold;">!</span>default <span style="color: #7a0874; font-weight: bold;">&#123;</span>
<span style="color: #7a0874; font-weight: bold;">type</span> pulse
<span style="color: #7a0874; font-weight: bold;">&#125;</span>
ctl.<span style="color: #000000; font-weight: bold;">!</span>default <span style="color: #7a0874; font-weight: bold;">&#123;</span>
<span style="color: #7a0874; font-weight: bold;">type</span> pulse
<span style="color: #7a0874; font-weight: bold;">&#125;</span></pre></div></div>

<p>Эти строки говорят, что для всего по дефолту будет использоваться PulseAudio.</p>
<p>Теперь стартуем PulseAudio и рестартим ALSA</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>init.d<span style="color: #000000; font-weight: bold;">/</span>alsasound restart
&nbsp;
<span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>init.d<span style="color: #000000; font-weight: bold;">/</span>pulseaudio start</pre></div></div>

<p>Теперь запускаем pavucontrol и запускаем какой-нибудь аудио плеер, и првоеряем, что звук играет и в pavucontrol появился этот поток. Если появился, приступим к подключению гарнитуры.</p>
<p>Устанавливаем bluez версии 4.38 (4.39 почему-то не работает с PulseAudio) и гуи к нему blueman</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">emerge <span style="color: #660033;">-va</span> bluez blueman</pre></div></div>

<p>Запускаем blueman-manager и спариваем свою гарнитуру с компьютером. Затем подключаемся к ней ко службе A2DP. После этого, в pavucontrol во вкладке Configuration должна появится наша гарнитура. Теперь на нее можно направлять поток. Для этого на первой влкадке, напротив названия потока жмем на галочку-&gt;Move stream и выбираем гарнитуру.</p>
<p>Надеюсь после этого, у вас гарнитура заработает <img src='http://www.it4it.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>P.S. все сказаное относится к Gentoo Linux</p>
<script type="text/javascript" src="http://odnaknopka.ru/wp/ok2.utf8.js"></script><script type="text/javascript">okbm("http://www.it4it.ru/index.php/2009/08/06/podklyuchenie-bluetooth-garnitury-cherez-pulseaudio/","Подключение Bluetooth гарнитуры через PulseAudio")</script><hr />Copyright © <a href="it4it.ru">it4it</a>. Это персональный, не коммерческий Feed. Если вы читаете этот материал не в вашем RSS клиенте, сайт на котором он находиться получил его незаконным образом.]]></content:encoded>
			<wfw:commentRss>http://www.it4it.ru/index.php/2009/08/06/podklyuchenie-bluetooth-garnitury-cherez-pulseaudio/feed/</wfw:commentRss>
		<slash:comments>37</slash:comments>
		</item>
		<item>
		<title>Автомонтирование с помощью udev</title>
		<link>http://www.it4it.ru/index.php/2009/06/07/avtomontirovanie-s-pomoshhyu-udev/</link>
		<comments>http://www.it4it.ru/index.php/2009/06/07/avtomontirovanie-s-pomoshhyu-udev/#comments</comments>
		<pubDate>Sun, 07 Jun 2009 11:05:39 +0000</pubDate>
		<dc:creator>gigimon</dc:creator>
				<category><![CDATA[*nix]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[udev]]></category>
		<category><![CDATA[usb]]></category>

		<guid isPermaLink="false">http://www.it4it.ru/?p=382</guid>
		<description><![CDATA[После перехода с kde на openbox, стал вопрос автомонтирования устройств (особенно флэшек). Погуглив, нашел несколько способов:
1. с помощью инструментов kde
2. с помощью gnome-mount
3. xfce4-mount
4. ivman
5. udev
Первые два не подходили, слишком много зависимостей. При третьем, всегда пришлось бы держать в памяти апплет xfce и панель его, что тоже не хотелось.
ivman я не смог заставить работать  [...]]]></description>
			<content:encoded><![CDATA[<p>После перехода с kde на openbox, стал вопрос автомонтирования устройств (особенно флэшек). Погуглив, нашел несколько способов:<br />
1. с помощью инструментов kde<br />
2. с помощью gnome-mount<br />
3. xfce4-mount<br />
4. ivman<br />
5. udev</p>
<p>Первые два не подходили, слишком много зависимостей. При третьем, всегда пришлось бы держать в памяти апплет xfce и панель его, что тоже не хотелось.<br />
ivman я не смог заставить работать <img src='http://www.it4it.ru/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' />  он тупо не монтировал, незнаю почему.<br />
А вот с udev немного разобрался, нагуглил готовое и теперь использую его.</p>
<p>Итак, автомонтирование устрйоств с помощью udev является простым, требуется всего лишь написать 1 файл с правилами.<br />
Создаем файл для правил:</p>
<p>touch /etc/udev/rules.d/10-udev-automount.rules</p>
<p>И вписываем в него следующие правила:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #007800;">KERNEL</span>==<span style="color: #ff0000;">&quot;sd[b-z]&quot;</span>, <span style="color: #007800;">DRIVER</span>==<span style="color: #ff0000;">&quot;usb-storage&quot;</span>, <span style="color: #007800;">GROUP</span>=<span style="color: #ff0000;">&quot;storage&quot;</span><span style="color: #007800;">ACTION</span>==<span style="color: #ff0000;">&quot;add&quot;</span>
<span style="color: #007800;">KERNEL</span>==<span style="color: #ff0000;">&quot;sd[b-z][0-9]&quot;</span>, <span style="color: #007800;">GROUP</span>=<span style="color: #ff0000;">&quot;storage&quot;</span>, RUN+=<span style="color: #ff0000;">&quot;/bin/mkdir -p /media/<span style="color: #007800;">$env</span>{ID_FS_LABEL_ENC}&quot;</span><span style="color: #007800;">ACTION</span>==<span style="color: #ff0000;">&quot;add&quot;</span>
<span style="color: #007800;">KERNEL</span>==<span style="color: #ff0000;">&quot;sd[b-z][0-9]&quot;</span>, <span style="color: #007800;">PROGRAM</span>==<span style="color: #ff0000;">&quot;/lib/udev/vol_id -t %N&quot;</span>, <span style="color: #007800;">RESULT</span>==<span style="color: #ff0000;">&quot;vfat&quot;</span>, RUN+=<span style="color: #ff0000;">&quot;/bin/mount -t vfat -o rw,flush,quiet,nodev,noauto,noexec,nosuid,noatime,dmask=000,fmask=111,iocharset=utf8 /dev/%k /media/<span style="color: #007800;">$env</span>{ID_FS_LABEL_ENC}&quot;</span><span style="color: #007800;">ACTION</span>==<span style="color: #ff0000;">&quot;add&quot;</span>
<span style="color: #007800;">KERNEL</span>==<span style="color: #ff0000;">&quot;sd[b-z][0-9]&quot;</span>, <span style="color: #007800;">PROGRAM</span>==<span style="color: #ff0000;">&quot;/lib/udev/vol_id -t %N&quot;</span>, <span style="color: #007800;">RESULT</span>==<span style="color: #ff0000;">&quot;ntfs&quot;</span>, RUN+=<span style="color: #ff0000;">&quot;/bin/mount -t ntfs-3g -o rw,flush,quiet,nodev,noauto,noexec,nosuid,noatime,dmask=000,fmask=111,iocharset=utf8 /dev/%k /media/<span style="color: #007800;">$env</span>{ID_FS_LABEL_ENC}&quot;</span><span style="color: #007800;">ACTION</span>==<span style="color: #ff0000;">&quot;add&quot;</span>
<span style="color: #007800;">KERNEL</span>==<span style="color: #ff0000;">&quot;sd[b-z][0-9]&quot;</span>, RUN+=<span style="color: #ff0000;">&quot;/bin/mount -o rw,noauto,noexec,nodev,noatime,dmask=000,fmask=111 /dev/%k /media/<span style="color: #007800;">$env</span>{ID_FS_LABEL_ENC}&quot;</span>
<span style="color: #007800;">ACTION</span>==<span style="color: #ff0000;">&quot;remove&quot;</span>, <span style="color: #007800;">KERNEL</span>==<span style="color: #ff0000;">&quot;sd[b-z][0-9]&quot;</span>, RUN+=<span style="color: #ff0000;">&quot;/bin/umount /dev/%k&quot;</span>
<span style="color: #007800;">ACTION</span>==<span style="color: #ff0000;">&quot;remove&quot;</span>, <span style="color: #007800;">KERNEL</span>==<span style="color: #ff0000;">&quot;sd[b-z][0-9]&quot;</span>, RUN+=<span style="color: #ff0000;">&quot;/bin/rmdir /media/<span style="color: #007800;">$env</span>{ID_FS_LABEL_ENC}&quot;</span></pre></div></div>

<p>И перегружаем службу udev.<br />
После этого, при установке usb флэшки, она будет монтироваться в /media в папку с названием флэшки (название тома), с полным доступом пользователям, а также нормальной кодировкой</p>
<p>Из известных багов, есть два:<br />
1. Если у флэшки нет названия тома, то она монтируется прямо в /media<br />
2. Если флэшка определяется как /dev/sdb без цифр, она не монтируется <img src='http://www.it4it.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<script type="text/javascript" src="http://odnaknopka.ru/wp/ok2.utf8.js"></script><script type="text/javascript">okbm("http://www.it4it.ru/index.php/2009/06/07/avtomontirovanie-s-pomoshhyu-udev/","Автомонтирование с помощью udev")</script><hr />Copyright © <a href="it4it.ru">it4it</a>. Это персональный, не коммерческий Feed. Если вы читаете этот материал не в вашем RSS клиенте, сайт на котором он находиться получил его незаконным образом.]]></content:encoded>
			<wfw:commentRss>http://www.it4it.ru/index.php/2009/06/07/avtomontirovanie-s-pomoshhyu-udev/feed/</wfw:commentRss>
		<slash:comments>102</slash:comments>
		</item>
		<item>
		<title>Автоматический бэкап MS SQL 2005 Express базы</title>
		<link>http://www.it4it.ru/index.php/2009/06/01/avtomaticheskij-bekap-ms-sql-2005-express-bazy/</link>
		<comments>http://www.it4it.ru/index.php/2009/06/01/avtomaticheskij-bekap-ms-sql-2005-express-bazy/#comments</comments>
		<pubDate>Mon, 01 Jun 2009 14:31:50 +0000</pubDate>
		<dc:creator>gigimon</dc:creator>
				<category><![CDATA[Всякое]]></category>
		<category><![CDATA[backup]]></category>
		<category><![CDATA[express]]></category>
		<category><![CDATA[mssql]]></category>
		<category><![CDATA[бд]]></category>
		<category><![CDATA[бэкап]]></category>
		<category><![CDATA[скрипт]]></category>

		<guid isPermaLink="false">http://www.it4it.ru/?p=378</guid>
		<description><![CDATA[При переходе на новую программу на работе, перешли и на использование MS SQL Server, заместо FirebirdSQL и встал вопрос резервного копирования базы данных. Для этих целей в полной версии MS SQL используется встроенный планировщик, к сожалению, в Express версии его нету, поэтому пришлось использовать внешние средства Windows (планировщик) и командную строку с интерфейсом к MS [...]]]></description>
			<content:encoded><![CDATA[<p>При переходе на новую программу на работе, перешли и на использование MS SQL Server, заместо FirebirdSQL и встал вопрос резервного копирования базы данных. Для этих целей в полной версии MS SQL используется встроенный планировщик, к сожалению, в Express версии его нету, поэтому пришлось использовать внешние средства Windows (планировщик) и командную строку с интерфейсом к MS SQL.<br />
Весь процесс создания бэкапа разделен на 2 файла: backup.bat с командами Windows и MS SQL скрипт backup.sql, который содержит команды для бэкапа нашей базы.<br />
Файл backup.sql содержит:</p>

<div class="wp_syntax"><div class="code"><pre class="sql" style="font-family:monospace;">DECLARE @pathName NVARCHAR<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">512</span><span style="color: #66cc66;">&#41;</span> 
<span style="color: #993333; font-weight: bold;">SET</span> @pathName <span style="color: #66cc66;">=</span> <span style="color: #ff0000;">'D:<span style="color: #000099; font-weight: bold;">\m</span>ssqlbackup<span style="color: #000099; font-weight: bold;">\d</span>b_backup_'</span> <span style="color: #66cc66;">+</span> Convert<span style="color: #66cc66;">&#40;</span>varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">8</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span> GETDATE<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span> <span style="color: #cc66cc;">112</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">+</span> <span style="color: #ff0000;">'.bak'</span> 
BACKUP <span style="color: #993333; font-weight: bold;">DATABASE</span> <span style="color: #66cc66;">&#91;</span>db_name<span style="color: #66cc66;">&#93;</span> <span style="color: #993333; font-weight: bold;">TO</span> DISK <span style="color: #66cc66;">=</span> @pathName <span style="color: #993333; font-weight: bold;">WITH</span> NOFORMAT<span style="color: #66cc66;">,</span> NOINIT<span style="color: #66cc66;">,</span> NAME <span style="color: #66cc66;">=</span> N<span style="color: #ff0000;">'db_backup'</span><span style="color: #66cc66;">,</span> SKIP<span style="color: #66cc66;">,</span> NOREWIND<span style="color: #66cc66;">,</span> NOUNLOAD<span style="color: #66cc66;">,</span> STATS <span style="color: #66cc66;">=</span> <span style="color: #cc66cc;">10</span></pre></div></div>

<p>где @pathName указывает путь сохранения, а также имя файла. В нашем случае, будет создаваться файл с именем db_backup_20082009 (если создавать бэкап 20 числа 8 месяца 2009 года), db_name &#8211; имя вашей базы</p>
<p>Файлик backup.bat:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">sqlcmd <span style="color: #660033;">-S</span> SERVER <span style="color: #660033;">-U</span> USER <span style="color: #660033;">-P</span> PASSWORD <span style="color: #660033;">-i</span> backup.sql
<span style="color: #ff0000;">&quot;c:\Program Files\WinRAR<span style="color: #000099; font-weight: bold;">\R</span>ar.exe&quot;</span> a <span style="color: #660033;">-m2</span> d:\mssqlbackup\db_backup_<span style="color: #000000; font-weight: bold;">%</span>date<span style="color: #000000; font-weight: bold;">%</span>.rar d:\mssqlbackup\db_backup_<span style="color: #000000; font-weight: bold;">*</span>.bak
del d:\mssqlbackup\db_backup_<span style="color: #000000; font-weight: bold;">*</span>.bak</pre></div></div>

<p>где, SERVER &#8211; адрес сервера, USER &#8211; пользователь для подключения, PASSWORD &#8211; собственно пароль <img src='http://www.it4it.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Также, данный скрипт архивирует базу и оставляет только архив, убивая .bak</p>
<p>После создания этих двух файликов, кидаем их куда-нибудь вместе и в Windows планировщике создаем задание, раз в сутки (ну или когда хотите) запускать backup.bat</p>
<script type="text/javascript" src="http://odnaknopka.ru/wp/ok2.utf8.js"></script><script type="text/javascript">okbm("http://www.it4it.ru/index.php/2009/06/01/avtomaticheskij-bekap-ms-sql-2005-express-bazy/","Автоматический бэкап MS SQL 2005 Express базы")</script><hr />Copyright © <a href="it4it.ru">it4it</a>. Это персональный, не коммерческий Feed. Если вы читаете этот материал не в вашем RSS клиенте, сайт на котором он находиться получил его незаконным образом.]]></content:encoded>
			<wfw:commentRss>http://www.it4it.ru/index.php/2009/06/01/avtomaticheskij-bekap-ms-sql-2005-express-bazy/feed/</wfw:commentRss>
		<slash:comments>38</slash:comments>
		</item>
	</channel>
</rss>
