<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Просто про веб технологии &#187; Server Configuration</title>
	<atom:link href="http://pro100pro.com/category/server-configuration/feed" rel="self" type="application/rss+xml" />
	<link>http://pro100pro.com</link>
	<description>Про PHP, MySQL, Sphinx и Zend Framework, про архитектуру и производителность, про высокие нагрузки и масштабирование</description>
	<lastBuildDate>Thu, 13 Oct 2011 12:58:03 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Ускоряем PHP с HipHop</title>
		<link>http://pro100pro.com/uskoryaem-php-s-hiphop</link>
		<comments>http://pro100pro.com/uskoryaem-php-s-hiphop#comments</comments>
		<pubDate>Thu, 04 Feb 2010 10:09:01 +0000</pubDate>
		<dc:creator>Yaroslav Vorozhko</dc:creator>
				<category><![CDATA[HipHop]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[C plus plus]]></category>
		<category><![CDATA[Facebook]]></category>
		<category><![CDATA[Zend Engine]]></category>

		<guid isPermaLink="false">http://pro100pro.com/?p=417</guid>
		<description><![CDATA[Сегодня Facebook анонсировал релиз HipHop. Коротко, что такое HipHop для PHP: HipHop &#8211; это компилятор кода PHP в C++. Т.е. он преобразует PHP код в C++ код для дальнейшей компиляции. Это не другой язык. И это не компилятор времени исполнения (JIT). HipHop будет выпущен Facebook под opensource лицензией, под такой же как и основной код [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://developers.facebook.com/news.php?blog=1&amp;story=358">Сегодня Facebook анонсировал релиз HipHop</a>.</p>
<p>Коротко, что такое HipHop для PHP:</p>
<ul>
<li>HipHop &#8211; это компилятор кода PHP в C++. Т.е. он преобразует PHP код в C++ код для дальнейшей компиляции. Это не другой язык. И это не компилятор времени исполнения (JIT).</li>
<li>HipHop будет выпущен Facebook под opensource лицензией, под такой же как и основной код PHP. Facebook возлагает надежды, что разработчики улучшать HipHop и расширят его функциональность, таким образом HipHop сможет заменить больший набор функций PHP.</li>
<li>HipHop был одним из проектов в Facebook по улучшению его производительности. Все таки Facebook, второй сайт по объему траффика в интерент и в основном построенный на PHP. HipHop запущен на большинстве LAMP PHP серверах Facebook и в среднем улучшил производительность этих серверов в два раза.</li>
<li>HipHop достигает этого, путем исследования вашего PHP приложения и на его основе строить C++ проект. C++ проект потом компилируется и запускается на собственном веб серврере. Это дает возможность исключить PHP Zend engine и Apache из цепочки.</li>
<li>Учитывая что, некоторые возможности PHP не поддерживаются. Также, дополнения к PHP написанные на C, должны быть переписаны в HipHop C++ дополнения.</li>
<li>Преимущества в скороости HipHop достигаются благодаря статическому анализу, который парсит ваш PHP код ищя пути преобразования динамических частей в статические.<br />
Учитывая это, ваше улучшение производительности, может сильно варьроваться &#8211; более структурированный код получить наибольший прирост в производительности.</li>
</ul>
<p>Что значит HipHop для вас:</p>
<ul>
<li>Если ваш проект использует sharing хостинг &#8211; то <strong>ничего</strong>.</li>
<li>Если ваш проект использует 2 или менее серверов &#8211; то <strong>ничего</strong>.</li>
<li>Если у вас нет выделенного development и deployment окружения и у вас нет разработчика знающего C++ &#8211; то <strong>ничего</strong>.</li>
<li>Если вы разработчик open source приложения &#8211; то <strong>немного</strong>.</li>
<li>Если вы shared хостинг компания &#8211; то <strong>немного</strong>.</li>
<li>Если PHP не bottleneck вашего приложения &#8211; то <strong>пока еще ничего</strong>.</li>
<li>Если ваше приложения использует много серверов, и в основном на них работает PHP, а также у вас есть все исходники PHP кода, у вас есть немного знаний C/C++, тогджа ответ <strong>возможно</strong>.</li>
<li>Если вы разрабатываете php framework, то ответ <strong>иногда</strong>.</li>
<li>Если у вас есть сильно-связанные части архитектуры, которые удовлетворяют требованиям выше и эти части слабо связаны (через API) с остальной системой, то ответ <strong>много</strong> <strong>что</strong>.</li>
<li>Если вы обдумываете какой язык выбрать для реализации вашей системы, то ответ <strong>очень много</strong>.</li>
<li>Если вы обдумываете аргумент, переписать весь сайт на другой язык, то <strong>вы потеряли свой аргумент</strong>.</li>
</ul>
<p>Есть очень много языковы возможностей, хороших или плохих, которые PHP должен поддерживать, а HipHop нет. Потому как HipHop уникальное решение, он <strong>никгода</strong> не заменит Zend Engine.</p>
<p>Статья является частичным переводом статьи Terry Chay <a href="http://terrychay.com/article/hiphop-for-faster-php.shtml">Faster PHP fo shizzle—HipHop for PHP</a></p>
<hr />
<p><small>© Yaroslav Vorozhko  for <a href="http://pro100pro.com">Просто про веб технологии</a>, 2010. |
<a href="http://pro100pro.com/uskoryaem-php-s-hiphop">Permalink</a> |
<a href="http://pro100pro.com/uskoryaem-php-s-hiphop#comments">One comment</a> |
Add to
<a href="http://del.icio.us/post?url=http://pro100pro.com/uskoryaem-php-s-hiphop&title=Ускоряем PHP с HipHop">del.icio.us</a>
<br/>
Post tags: <a href="http://pro100pro.com/tag/c-plus-plus" rel="tag">C plus plus</a>, <a href="http://pro100pro.com/tag/facebook" rel="tag">Facebook</a>, <a href="http://pro100pro.com/tag/hiphop" rel="tag">HipHop</a>, <a href="http://pro100pro.com/tag/performance" rel="tag">Performance</a>, <a href="http://pro100pro.com/tag/php" rel="tag">PHP</a>, <a href="http://pro100pro.com/tag/zend-engine" rel="tag">Zend Engine</a><br/>
</small></p>]]></content:encoded>
			<wfw:commentRss>http://pro100pro.com/uskoryaem-php-s-hiphop/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Lighttpd создаем виртуальные хосты автоматически</title>
		<link>http://pro100pro.com/lighttpd-sozdaem-virtualnye-xosty-avtomaticheski</link>
		<comments>http://pro100pro.com/lighttpd-sozdaem-virtualnye-xosty-avtomaticheski#comments</comments>
		<pubDate>Sun, 06 Dec 2009 14:05:48 +0000</pubDate>
		<dc:creator>Yaroslav Vorozhko</dc:creator>
				<category><![CDATA[Lighttpd]]></category>
		<category><![CDATA[Server Configuration]]></category>
		<category><![CDATA[subdomain]]></category>
		<category><![CDATA[virtual hosts]]></category>

		<guid isPermaLink="false">http://pro100pro.com/?p=383</guid>
		<description><![CDATA[Для создания автоматических вартуальных хостов нам потребуется модуль evhost. Этот модуль идет в стандартной поставке Lighttpd. В секции modules расскомментируйте соответсвующую строку или добавте новую, если модуля нет в списке. Первое, что нам надо знать - это то как lighttpd читает и парсит URI с помощью этого модуля. PLAIN TEXT CODE: %% =&#62; % sign [...]]]></description>
			<content:encoded><![CDATA[<p>Для создания автоматических вартуальных хостов нам потребуется модуль evhost. Этот модуль идет в стандартной поставке Lighttpd.<br />
В секции modules расскомментируйте соответсвующую строку или добавте новую, если модуля нет в списке.<br />
Первое, что нам надо знать - это то как lighttpd читает и парсит URI с помощью этого модуля.</p>
<div class="igBar"><span id="lcode-3"><a href="#" onclick="javascript:showPlainTxt('code-3'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span>
<div id="code-3">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">%% =&gt; % sign</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; %<span style="color:#800000;color:#800000;">0</span> =&gt; domain name + tld</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; %<span style="color:#800000;color:#800000;">1</span> =&gt; tld</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; %<span style="color:#800000;color:#800000;">2</span> =&gt; domain name without tld</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; %<span style="color:#800000;color:#800000;">3</span> =&gt; subdomain <span style="color:#800000;color:#800000;">1</span> name</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; %<span style="color:#800000;color:#800000;">4</span> =&gt; subdomain <span style="color:#800000;color:#800000;">2</span> name</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; %_ =&gt; full domain name </div>
</li>
</ol>
</div>
</div>
</div>
<p>
Нас интересуют сабдомены первого уровня, которые хранятся в переменной %3.<br />
Создадим для них специальный конфиг:</p>
<div class="igBar"><span id="lcode-4"><a href="#" onclick="javascript:showPlainTxt('code-4'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span>
<div id="code-4">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">$HTTP<span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#CC0000;">"host"</span><span style="color:#006600; font-weight:bold;">&#93;</span> =~ <span style="color:#CC0000;">".*<span style="color:#000099; font-weight:bold;">\.</span>example<span style="color:#000099; font-weight:bold;">\.</span>org"</span> <span style="color:#006600; font-weight:bold;">&#123;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; evhost.<span style="">path</span>-pattern = <span style="color:#CC0000;">"/home/%3/public_html/"</span> </div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; <span style="color:#006600; font-weight:bold;">&#125;</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p>
Этим конфигом мы будем перехватытвать все запросы обращенные к example.org и всем его сабдоменам.<br />
Директива evhost.path-pattern устанавливает document root для каждого сабдомена.<br />
<em>Note: не указывайте server.document-root как путь по умолчанию к вашим сабдоменам. Это может быть опасно.</em></p>
<p>Теперь каждый каталог в /home будет считатся сабдоменом для example.org.<br />
Незабудте также прописать каждый сабдомен в DNS или /etc/hosts.<br />
Перезапускаем Lighttpd и проверяем.<br />
Спасибо!</p>
<hr />
<p><small>© Yaroslav Vorozhko  for <a href="http://pro100pro.com">Просто про веб технологии</a>, 2009. |
<a href="http://pro100pro.com/lighttpd-sozdaem-virtualnye-xosty-avtomaticheski">Permalink</a> |
<a href="http://pro100pro.com/lighttpd-sozdaem-virtualnye-xosty-avtomaticheski#comments">No comment</a> |
Add to
<a href="http://del.icio.us/post?url=http://pro100pro.com/lighttpd-sozdaem-virtualnye-xosty-avtomaticheski&title=Lighttpd создаем виртуальные хосты автоматически">del.icio.us</a>
<br/>
Post tags: <a href="http://pro100pro.com/tag/lighttpd" rel="tag">Lighttpd</a>, <a href="http://pro100pro.com/tag/server-configuration" rel="tag">Server Configuration</a>, <a href="http://pro100pro.com/tag/subdomain" rel="tag">subdomain</a>, <a href="http://pro100pro.com/tag/virtual-hosts" rel="tag">virtual hosts</a><br/>
</small></p>]]></content:encoded>
			<wfw:commentRss>http://pro100pro.com/lighttpd-sozdaem-virtualnye-xosty-avtomaticheski/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HG Mercurial email уведомления</title>
		<link>http://pro100pro.com/hg-mercurial-email-uvedomleniya</link>
		<comments>http://pro100pro.com/hg-mercurial-email-uvedomleniya#comments</comments>
		<pubDate>Tue, 24 Nov 2009 08:21:24 +0000</pubDate>
		<dc:creator>Yaroslav Vorozhko</dc:creator>
				<category><![CDATA[Mercurial HG]]></category>
		<category><![CDATA[Server Configuration]]></category>
		<category><![CDATA[Tips And Tricks]]></category>
		<category><![CDATA[CVS]]></category>
		<category><![CDATA[HG]]></category>
		<category><![CDATA[hg email]]></category>
		<category><![CDATA[hg hook]]></category>
		<category><![CDATA[hg notify]]></category>
		<category><![CDATA[Mercurail]]></category>

		<guid isPermaLink="false">http://pro100pro.com/?p=377</guid>
		<description><![CDATA[В каждом серьезном проекте используется контроль версий и разработку зачастую ведет не один программист. Как минимум, кроме программиста есть еще и главный программист, который следит за качеством разработки. С помощью hg mercural мы можем предоставить главному программисту мониторинг изменений в репозитории, особенно когда это касается обновления главной ветки. В mercurial для этого есть замечательный встроенный [...]]]></description>
			<content:encoded><![CDATA[<p>В каждом серьезном проекте используется контроль версий и разработку зачастую ведет не один программист. Как минимум, кроме программиста есть еще и главный программист, который следит за качеством разработки.<br />
С помощью hg mercural мы можем предоставить главному программисту мониторинг изменений в репозитории, особенно когда это касается обновления главной ветки.<br />
В mercurial для этого есть замечательный встроенный плагин notify, который поможет нам настроить уведомления по email.</p>
<p>Схема репозиториев будет следующая:</p>
<ol>
<li> Главный /www/mybigsite.com/</li>
<li> Транзитный /home/repos/mybigsite</li>
<li> Репозиторий разработчика находится в его домашнем каталоге.</li>
</ol>
<p>Когда разработчику надо отправить новую порцию изменений в главный репозиторий, он:</p>
<ol>
<li> Отправляет данные в транзитный репозиторий (команда hg pus)</li>
<li> А потом главный разработчик проверяет изменения и обновляет главный репозиторий (команда hg pus &amp;&amp; hg up)</li>
</ol>
<p>Настроим два уведомления:</p>
<ol>
<li> По событию hg pus в транзитный репозиторий -  будем отправлять diff изменений главному программисту. Таких обновлений (hg pus) разработчик или разработчики могут сделать несколько, до того как будет обновлен главный репозиторий.</li>
<li> Главный программист получив уведомления об обновлении транзитного репозитория проверяет изменения и обновляет главный репозиторий. По этому событию мы отправляем главному разработчику новую порцию diff изменений, который содержит именно все порции обновлений, что попали на главный репозиторий.</li>
</ol>
<p>Теперь перейдем к настройке уведомлений используя hghook notify.<br />
Открываем файл команд hgrc транзитного репозитория, если файла нет, то создаем его /home/repos/mybigsite/.hg/hgrc и добавляем следующие строки</p>
<p>(...)<br/>Read the rest of <a href="http://pro100pro.com/hg-mercurial-email-uvedomleniya">HG Mercurial email уведомления</a> (592 words)</p>
<hr />
<p><small>© Yaroslav Vorozhko  for <a href="http://pro100pro.com">Просто про веб технологии</a>, 2009. |
<a href="http://pro100pro.com/hg-mercurial-email-uvedomleniya">Permalink</a> |
<a href="http://pro100pro.com/hg-mercurial-email-uvedomleniya#comments">No comment</a> |
Add to
<a href="http://del.icio.us/post?url=http://pro100pro.com/hg-mercurial-email-uvedomleniya&title=HG Mercurial email уведомления">del.icio.us</a>
<br/>
Post tags: <a href="http://pro100pro.com/tag/cvs" rel="tag">CVS</a>, <a href="http://pro100pro.com/tag/hg" rel="tag">HG</a>, <a href="http://pro100pro.com/tag/hg-email" rel="tag">hg email</a>, <a href="http://pro100pro.com/tag/hg-hook" rel="tag">hg hook</a>, <a href="http://pro100pro.com/tag/hg-notify" rel="tag">hg notify</a>, <a href="http://pro100pro.com/tag/mercurail" rel="tag">Mercurail</a><br/>
</small></p>]]></content:encoded>
			<wfw:commentRss>http://pro100pro.com/hg-mercurial-email-uvedomleniya/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

