<?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/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Заметки одного программиста</title>
	
	<link>http://olezhek.net</link>
	<description />
	<lastBuildDate>Thu, 19 Apr 2012 19:18:51 +0000</lastBuildDate>
	<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/olezhek/feed" /><feedburner:info uri="olezhek/feed" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:emailServiceId>olezhek/feed</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><item>
		<title>Умирающие плагины</title>
		<link>http://feedproxy.google.com/~r/olezhek/feed/~3/QXKxBJkN2VY/2012-04-19-umirayushhie-plaginy.html</link>
		<comments>http://olezhek.net/2012-04-19-umirayushhie-plaginy.html#comments</comments>
		<pubDate>Thu, 19 Apr 2012 19:18:50 +0000</pubDate>
		<dc:creator>Oleg</dc:creator>
				<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[loginza]]></category>
		<category><![CDATA[OpenID]]></category>
		<category><![CDATA[плагины]]></category>

		<guid isPermaLink="false">http://olezhek.net/?p=1411</guid>
		<description><![CDATA[За последние пару лет WordPress из движка для блоггинга превратился в достаточно мощное программное обеспечение, при помощи которого можно создавать функциональные проекты малого/среднего масштаба. Несмотря на&#160;то, что изначально движок предназначен для создания блогов, его функционал можно просто расширить при помощи плагинов, коих написано великое&#160;множество. За три года существования этого блога я опробовал на&#160;нем разные плагины, [...]]]></description>
			<content:encoded><![CDATA[
<p><a href="http://feedads.g.doubleclick.net/~a/KCUC4GFHdks8-v0-3AcqR6qh71k/0/da"><img src="http://feedads.g.doubleclick.net/~a/KCUC4GFHdks8-v0-3AcqR6qh71k/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/KCUC4GFHdks8-v0-3AcqR6qh71k/1/da"><img src="http://feedads.g.doubleclick.net/~a/KCUC4GFHdks8-v0-3AcqR6qh71k/1/di" border="0" ismap="true"></img></a></p><p>За последние пару лет WordPress из движка для блоггинга превратился в достаточно мощное программное обеспечение, при помощи которого можно создавать функциональные проекты малого/среднего масштаба. Несмотря на&nbsp;то, что изначально движок предназначен для создания блогов, его функционал можно просто расширить при помощи плагинов, коих написано великое&nbsp;множество.</p>
<p>За три года существования этого блога я опробовал на&nbsp;нем разные плагины, и&nbsp;до недавнего времени набор плагинов был стабилен. Ситуация начала меняться спустя некоторое время после выхода WP версии 3.3.1. Разработчики движка постепенно обновляют API, добавляют новые функции, обновляют старые&nbsp;или вовсе удаляют их. В результате, многие плагины начинают работать плохо&nbsp;либо перестают работать вовсе. Конечно&nbsp;же, проблему можно решить, поставив другой плагин. А можно и самому включиться в разработку и поддержку компонента. Другое дело, если разработчик у плагина есть, и&nbsp;ты ждешь от него реакции на протяжении продолжительного времени. Так, например, происходит с плагинами <noindex><a rel="nofollow" title="http://wordpress.org/extend/plugins/openid/" href="http://olezhek.net/redir/aHR0cDovL3dvcmRwcmVzcy5vcmcvZXh0ZW5kL3BsdWdpbnMvb3BlbmlkLw==" target="_blank">OpenID</a></noindex> и <noindex><a rel="nofollow" title="http://wordpress.org/extend/plugins/loginza/" href="http://olezhek.net/redir/aHR0cDovL3dvcmRwcmVzcy5vcmcvZXh0ZW5kL3BsdWdpbnMvbG9naW56YS8=" target="_blank">Loginza</a></noindex>. Эти два замечательных плагина перестали работать после одного из последних обновлений. Касаемо Loginza, плагин, конечно работает, но <noindex><a rel="nofollow" title="http://wordpress.org/support/topic/plugin-loginza-%D0%9F%D0%BB%D0%B0%D0%B3%D0%B8%D0%BD-%D0%B0%D0%B2%D1%82%D0%BE%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8-%D0%92%D0%9A%D0%BE%D0%BD%D1%82%D0%B0%D0%BA%D1%82%D0%B5-openid-yandex-google-%D0%B8-%D0%B4%D1%80-loginza-and-wp-3-warning?replies=1" href="http://olezhek.net/redir/aHR0cDovL3dvcmRwcmVzcy5vcmcvc3VwcG9ydC90b3BpYy9wbHVnaW4tbG9naW56YS0lRDAlOUYlRDAlQkIlRDAlQjAlRDAlQjMlRDAlQjglRDAlQkQtJUQwJUIwJUQwJUIyJUQxJTgyJUQwJUJFJUQxJTgwJUQwJUI4JUQwJUI3JUQwJUIwJUQxJTg2JUQwJUI4JUQwJUI4LSVEMCU5MiVEMCU5QSVEMCVCRSVEMCVCRCVEMSU4MiVEMCVCMCVEMCVCQSVEMSU4MiVEMCVCNS1vcGVuaWQteWFuZGV4LWdvb2dsZS0lRDAlQjgtJUQwJUI0JUQxJTgwLWxvZ2luemEtYW5kLXdwLTMtd2FybmluZz9yZXBsaWVzPTE=" target="_blank">сыплет</a></noindex> Warning&#39;и в&nbsp;лог сервера из-за устаревших функций. В результате, при продолжительной работе в таком режиме через fastcgi (здесь не важно, что именно используется как&nbsp;cgi), скрипт просто прибивается сервером из-за большого количества ошибок. Понятное дело, это тянет за собой весь движок, и сайт становится недоступен для посетителей. С OpenID всё ещё сложнее&nbsp;&mdash; он вообще не пашет. То есть никак. И если Loginza можно поменять на <span style="white-space:nowrap">что-то</span>,&nbsp;либо потерпеть без него, то&nbsp;для&nbsp;OpenID альтернативы просто нет. Как следствие, приходится использовать другого OpenID-провайдера для целей авторизации. Аналогично было ещё с парой плагинов. В результате, за пару месяцев зимы набор плагинов сократился на пять штук. На данный момент я могу сделать вывод, что функциональность этого сайта определенно уменьшилась. У меня в голове уже бродила мысль о том, чтобы форкнуть OpenID-плагин и допилить его до нормального состояния, но пока я этим делом заниматься не могу. Так что, остаётся только ждать подвижек со стороны&nbsp;авторов.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/olezhek/feed?a=QXKxBJkN2VY:b7ITGIFwnO0:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/olezhek/feed?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/olezhek/feed?a=QXKxBJkN2VY:b7ITGIFwnO0:-BTjWOF_DHI"><img src="http://feeds.feedburner.com/~ff/olezhek/feed?i=QXKxBJkN2VY:b7ITGIFwnO0:-BTjWOF_DHI" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/olezhek/feed?a=QXKxBJkN2VY:b7ITGIFwnO0:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/olezhek/feed?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/olezhek/feed/~4/QXKxBJkN2VY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://olezhek.net/2012-04-19-umirayushhie-plaginy.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://olezhek.net/2012-04-19-umirayushhie-plaginy.html</feedburner:origLink></item>
		<item>
		<title>Code Assist для внешней библиотеки PHP на примере WordPress и Aptana Studio 3</title>
		<link>http://feedproxy.google.com/~r/olezhek/feed/~3/LT67q0n25Ik/2012-04-11-code-assist-dlya-vneshnej-biblioteki-php-na-primere-wordpress-i-aptana-studio-3.html</link>
		<comments>http://olezhek.net/2012-04-11-code-assist-dlya-vneshnej-biblioteki-php-na-primere-wordpress-i-aptana-studio-3.html#comments</comments>
		<pubDate>Wed, 11 Apr 2012 16:14:13 +0000</pubDate>
		<dc:creator>Oleg</dc:creator>
				<category><![CDATA[ПО]]></category>
		<category><![CDATA[Aptana Studio 3]]></category>
		<category><![CDATA[code assist]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://olezhek.net/?p=1399</guid>
		<description><![CDATA[Code Assist&#160;&#8212; чрезвычайно удобная и в тоже время настолько привычная и интуитивная штука в современных средах разработки, что некоторые порой просто не знают, как&#160;она называется . В Microsoft Visual Studio этот функционал называется IntelliSense. В Eclipse/Aptana&#160;&#8212; Content Assist. А бывает что и&#160;по всякому&#160;&#8212; и&#160;Code Assist, и&#160;Code completion, и даже иногда, по аналогии с упомянутым Visual [...]]]></description>
			<content:encoded><![CDATA[
<p><a href="http://feedads.g.doubleclick.net/~a/CWQOHsLbRm37VltP0IAjB3d-Ja8/0/da"><img src="http://feedads.g.doubleclick.net/~a/CWQOHsLbRm37VltP0IAjB3d-Ja8/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/CWQOHsLbRm37VltP0IAjB3d-Ja8/1/da"><img src="http://feedads.g.doubleclick.net/~a/CWQOHsLbRm37VltP0IAjB3d-Ja8/1/di" border="0" ismap="true"></img></a></p><p>Code Assist&nbsp;&mdash; чрезвычайно удобная и в тоже время настолько привычная и интуитивная штука в современных средах разработки, что некоторые порой просто не знают, как&nbsp;она называется <img src='http://olezhek.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> . В Microsoft Visual Studio этот функционал называется IntelliSense. В Eclipse/Aptana&nbsp;&mdash; Content Assist. А бывает что и&nbsp;по всякому&nbsp;&mdash; и&nbsp;Code Assist, и&nbsp;Code completion, и даже иногда, по аналогии с упомянутым Visual Studio&nbsp;&mdash; IntelliSense. В Aptana Studio 3, по сравнению со второй версией, некоторые настройки реализованы иначе. Из-за этого включить Code Assist для <span style="white-space:nowrap">какой-либо</span> внешней библиотеки бывает не очень понятно. Когда я писал свой <a href="http://olezhek.net/codez/wp-posts-filter">плагин</a> фильтрации постов, я столкнулся с необходимостью подключения исходников WordPress. Копание было недолгим и результативным. Ниже я покажу, как подключить внешнюю php-библиотеку к проекту для получения Code Assist по нужным классам и&nbsp;функциям.</p>
<p><span id="more-1399"></span></p>
<p>Для начала необходимо зайти в свойства нашего php-проекта через меню Project-&gt;Properties и в меню Project Natures поставить галочку напротив&nbsp;PHP:</p>
<p><a href="http://olezhek.net/wp-content/uploads/2012/04/1.jpeg"><img class="aligncenter size-medium wp-image-1400" title="Project Properties" src="http://olezhek.net/wp-content/uploads/2012/04/1-635x345.jpg" alt="" width="635" height="345" /></a></p>
<p>Таким образом мы заставили Aptana определять web-проект как проект с php-кодом, после повторного посещения настроек проекта там можно будет увидеть специфические для PHP настройки. Теперь нужно подключить внешнюю библиотеку к текущему &laquo;Рабочему пространству&raquo;. Для этого необходимо зайти в Window-&gt;Preferences-&gt;Aptana Studio-&gt;Editors-&gt;PHP-&gt;Libraries и добавить свою&nbsp;библиотеку:</p>
<p><a href="http://olezhek.net/wp-content/uploads/2012/04/2.jpeg"><img class="aligncenter size-medium wp-image-1401" title="Aptana Studio PHP Libraries" src="http://olezhek.net/wp-content/uploads/2012/04/2-635x345.jpg" alt="" width="635" height="345" /></a></p>
<p>Нажимаем New user&nbsp;library:</p>
<p><a href="http://olezhek.net/wp-content/uploads/2012/04/3.jpeg"><img class="aligncenter size-medium wp-image-1402" title="Aptana Studio new user library" src="http://olezhek.net/wp-content/uploads/2012/04/3-635x344.jpg" alt="" width="635" height="344" /></a></p>
<p>Называем <span style="white-space:nowrap">как-нибудь</span> попонятнее и добавляем нужные директории. Как вы можете увидеть на скриншоте, я добавил только wp-admin и wp-includes, где лежат все API-функции WordPress. Если вы ко всему этому добавите директорию wp-content, то&nbsp;вам станут доступны функции плагинов и&nbsp;тем (если такое предусмотрено разработчиками), находящихсяв ней. Жмем ОК, ждем, пока IDE просканирует исходники. Теперь вернемся в настройки проекта (Project-&gt;Properties), и в меню PHP Buildpath, на вкладке Libraries отметим галочку &laquo;Use project specific settings&raquo; и отметим добавленную&nbsp;библиотеку:</p>
<p><a href="http://olezhek.net/wp-content/uploads/2012/04/4.jpeg"><img class="aligncenter size-medium wp-image-1404" title="Aptana Studio PHP external library project specific settings" src="http://olezhek.net/wp-content/uploads/2012/04/4-635x343.jpg" alt="" width="635" height="343" /></a></p>
<p>Apply, OK. И теперь пробуем в&nbsp;коде:</p>
<p><a href="http://olezhek.net/wp-content/uploads/2012/04/5.jpeg"><img class="aligncenter size-medium wp-image-1403" title="Aptana Studio WordPress Code Assist" src="http://olezhek.net/wp-content/uploads/2012/04/5-635x343.jpg" alt="" width="635" height="343" /></a></p>
<p>Если функции импортированной библиотеки не появились в&nbsp;Code Assist, то потребуется перезапуск IDE. После него все встанет на&nbsp;место.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/olezhek/feed?a=LT67q0n25Ik:NOZk4C-OuwY:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/olezhek/feed?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/olezhek/feed?a=LT67q0n25Ik:NOZk4C-OuwY:-BTjWOF_DHI"><img src="http://feeds.feedburner.com/~ff/olezhek/feed?i=LT67q0n25Ik:NOZk4C-OuwY:-BTjWOF_DHI" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/olezhek/feed?a=LT67q0n25Ik:NOZk4C-OuwY:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/olezhek/feed?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/olezhek/feed/~4/LT67q0n25Ik" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://olezhek.net/2012-04-11-code-assist-dlya-vneshnej-biblioteki-php-na-primere-wordpress-i-aptana-studio-3.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://olezhek.net/2012-04-11-code-assist-dlya-vneshnej-biblioteki-php-na-primere-wordpress-i-aptana-studio-3.html</feedburner:origLink></item>
		<item>
		<title>Twitter купил Posterous</title>
		<link>http://feedproxy.google.com/~r/olezhek/feed/~3/EzrM5W1Zr24/2012-03-20-twitter-kupil-posterous.html</link>
		<comments>http://olezhek.net/2012-03-20-twitter-kupil-posterous.html#comments</comments>
		<pubDate>Tue, 20 Mar 2012 07:49:04 +0000</pubDate>
		<dc:creator>Oleg</dc:creator>
				<category><![CDATA[Технологии Веб]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Posterous]]></category>
		<category><![CDATA[Twitter]]></category>

		<guid isPermaLink="false">http://olezhek.net/?p=1393</guid>
		<description><![CDATA[Эту интересную новость я узнал из письма, упавшего мне на почтовый ящик сегодня ночью. Мне вообще было интересно знать, куда движется Twitter последнее время. Учитывая развитие блоггинговых возможностей у конкурентов (Facebook, Google Plus), было&#160;бы опрометчиво, на&#160;мой взгляд, со стороны руководства Twitter стоять на месте. Трудно рассматривать Posterous в качестве конкурента Twitter, хотя&#160;бы по нишевости контента, посещаемости [...]]]></description>
			<content:encoded><![CDATA[
<p><a href="http://feedads.g.doubleclick.net/~a/Rw1_aeohXMeksWNq8vhaEE2TCbw/0/da"><img src="http://feedads.g.doubleclick.net/~a/Rw1_aeohXMeksWNq8vhaEE2TCbw/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/Rw1_aeohXMeksWNq8vhaEE2TCbw/1/da"><img src="http://feedads.g.doubleclick.net/~a/Rw1_aeohXMeksWNq8vhaEE2TCbw/1/di" border="0" ismap="true"></img></a></p><p>Эту интересную новость я узнал из письма, упавшего мне на почтовый ящик сегодня ночью. Мне вообще было интересно знать, куда движется Twitter последнее время. Учитывая развитие блоггинговых возможностей у конкурентов (Facebook, Google Plus), было&nbsp;бы опрометчиво, на&nbsp;мой взгляд, со стороны руководства Twitter стоять на месте. Трудно рассматривать Posterous в качестве конкурента Twitter, хотя&nbsp;бы по нишевости контента, посещаемости и другим характеристикам. Как следствие, сомневаюсь что&nbsp;это обычное поглощение (как было, например, у Facebook и Friendfeed. В результате покупки Facebook фактически умертвил сервис, о&nbsp;чём я писал <a href="http://olezhek.net/2011-05-11-friendfeed-i-google-proshla-lyubov-zavyali-pomidory.html">тут</a> и упоминал <a href="http://olezhek.net/2011-09-04-razmyshleniya-o-google-i-facebook.html">тут</a>). Скорее всего, это именно &laquo;приобретение&raquo; квалифицированного персонала и работающего функционала для развития основного проекта (похоже, это такие &laquo;модные&raquo; <noindex><a rel="nofollow" title="https://www.google.ru/search?q=apple+acquires&amp;ie=utf-8&amp;oe=utf-8" target="_blank" href="http://olezhek.net/redir/aHR0cHM6Ly93d3cuZ29vZ2xlLnJ1L3NlYXJjaD9xPWFwcGxlK2FjcXVpcmVzJmFtcDtpZT11dGYtOCZhbXA7b2U9dXRmLTg=">веяния</a></noindex> в менеджменте IT-компаний <noindex><a rel="nofollow" title="https://www.google.ru/search?q=google+acquires&amp;sourceid=opera&amp;ie=utf-8&amp;oe=utf-8" target="_blank" href="http://olezhek.net/redir/aHR0cHM6Ly93d3cuZ29vZ2xlLnJ1L3NlYXJjaD9xPWdvb2dsZSthY3F1aXJlcyZhbXA7c291cmNlaWQ9b3BlcmEmYW1wO2llPXV0Zi04JmFtcDtvZT11dGYtOA==">последнее</a></noindex> <noindex><a rel="nofollow" title="https://www.google.ru/search?q=facebook+acquires&amp;ie=utf-8&amp;oe=utf-8" target="_blank" href="http://olezhek.net/redir/aHR0cHM6Ly93d3cuZ29vZ2xlLnJ1L3NlYXJjaD9xPWZhY2Vib29rK2FjcXVpcmVzJmFtcDtpZT11dGYtOCZhbXA7b2U9dXRmLTg=">время</a></noindex>). Безусловно, что Twitter имеет несколько иную направленность, нежели Facebook&nbsp;или Google Plus. Однако&nbsp;же, кое-чем их функционал всё-таки перекликается. Плюс, я&nbsp;не исключаю возможность того, что руководство Twitter, подгоняемое волной развития и роста популярности социальных сетей, может усилить социальную составляющую своего сервиса. Хотя, учитывая появление в сети таких проектов, как <noindex><a rel="nofollow" title="https://joindiaspora.com/" target="_blank" href="http://olezhek.net/redir/aHR0cHM6Ly9qb2luZGlhc3BvcmEuY29tLw==">Diaspora</a></noindex>&nbsp;или даже <noindex><a rel="nofollow" title="http://duckduckgo.com/" target="_blank" href="http://olezhek.net/redir/aHR0cDovL2R1Y2tkdWNrZ28uY29tLw==">DuckDuckGo</a></noindex>, стоит отметить, что&nbsp;эта самая волна многим уже порядком надоела, и, видимо, за максимумом постепенно последует спад. Короче,&nbsp;посмотрим.</p>
<p><img class="aligncenter size-full wp-image-1394" title="Twitter acquires Posterous, mail letter" src="http://olezhek.net/wp-content/uploads/2012/03/twitter-acquires-posterous-mail.png" alt="" width="620" height="570" /></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/olezhek/feed?a=EzrM5W1Zr24:2bW2HNyv2AU:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/olezhek/feed?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/olezhek/feed?a=EzrM5W1Zr24:2bW2HNyv2AU:-BTjWOF_DHI"><img src="http://feeds.feedburner.com/~ff/olezhek/feed?i=EzrM5W1Zr24:2bW2HNyv2AU:-BTjWOF_DHI" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/olezhek/feed?a=EzrM5W1Zr24:2bW2HNyv2AU:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/olezhek/feed?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/olezhek/feed/~4/EzrM5W1Zr24" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://olezhek.net/2012-03-20-twitter-kupil-posterous.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://olezhek.net/2012-03-20-twitter-kupil-posterous.html</feedburner:origLink></item>
		<item>
		<title>Init-скрипт для Spawn-FCGI</title>
		<link>http://feedproxy.google.com/~r/olezhek/feed/~3/6rBWHdg738c/2012-02-29-init-skript-dlya-spawn-fcgi.html</link>
		<comments>http://olezhek.net/2012-02-29-init-skript-dlya-spawn-fcgi.html#comments</comments>
		<pubDate>Tue, 28 Feb 2012 20:30:07 +0000</pubDate>
		<dc:creator>Oleg</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[rc.d]]></category>
		<category><![CDATA[Spawn-FCGI]]></category>

		<guid isPermaLink="false">http://olezhek.net/?p=1369</guid>
		<description><![CDATA[Утилитка Spawn-FCGI, предназначенная для запуска процессов в FastCGI-режиме и являющаяся частью проекта Lighthttpd, уже давненько используется многими без самого Lighty. Связано это с&#160;её чрезвычайной полезностью, стабильностью и быстротой работы. Три года назад разработчики Lighthttpd даже вынесли её в отдельный проект. Не смотря на растущую популярность PHP-FPM, Spawn-FCGI находит своих &#171;клиентов&#187;. Причем, не только среди запускающих [...]]]></description>
			<content:encoded><![CDATA[
<p><a href="http://feedads.g.doubleclick.net/~a/Xur30xgkPkbz-T2izq6TzQgGt1M/0/da"><img src="http://feedads.g.doubleclick.net/~a/Xur30xgkPkbz-T2izq6TzQgGt1M/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/Xur30xgkPkbz-T2izq6TzQgGt1M/1/da"><img src="http://feedads.g.doubleclick.net/~a/Xur30xgkPkbz-T2izq6TzQgGt1M/1/di" border="0" ismap="true"></img></a></p><p>Утилитка Spawn-FCGI, предназначенная для запуска процессов в FastCGI-режиме и являющаяся частью проекта <noindex><a rel="nofollow" title="http://lighthttpd.net/" href="http://olezhek.net/redir/aHR0cDovL2xpZ2h0aHR0cGQubmV0Lw==" target="_blank">Lighthttpd</a></noindex>, уже давненько используется многими без самого Lighty. Связано это с&nbsp;её чрезвычайной полезностью, стабильностью и быстротой работы. Три года назад разработчики Lighthttpd даже вынесли её в отдельный проект. Не смотря на растущую популярность <noindex><a rel="nofollow" title="http://php-fpm.org/" href="http://olezhek.net/redir/aHR0cDovL3BocC1mcG0ub3JnLw==" target="_blank">PHP-FPM</a></noindex>, Spawn-FCGI находит своих &laquo;клиентов&raquo;. Причем, не только среди запускающих посредством неё PHP-процессы. Недавно мне понадобилось поднять именно Spawn-FCGI для PHP на Debian-сервере. Проблемка в том, что пакет, поставляющий утилиту, не содержит в себе так необходимого для нормального управления init-скрипта. Об этом, кстати, есть <noindex><a rel="nofollow" title="http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=622905" href="http://olezhek.net/redir/aHR0cDovL2J1Z3MuZGViaWFuLm9yZy9jZ2ktYmluL2J1Z3JlcG9ydC5jZ2k/YnVnPTYyMjkwNQ==" target="_blank">баг-репорт</a></noindex>. Неприятность затрагивает Debian и, как следствие, Ubuntu и, возможно, её производные. Поскребя по интернету, я нашел-таки скриптик от народных умельцев. Кое-чего в&nbsp;нём для меня не хватало, так что я устранил этот недостаток. Ниже&nbsp;&mdash; скрипт с отсебятинкой, работает на Squeeze и не&nbsp;жалуется.</p>
<div class="codecolorer-container bash default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:640px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br />38<br />39<br />40<br />41<br />42<br />43<br />44<br />45<br />46<br />47<br />48<br />49<br />50<br />51<br />52<br />53<br />54<br />55<br />56<br />57<br />58<br />59<br />60<br />61<br />62<br />63<br />64<br />65<br />66<br />67<br />68<br />69<br />70<br />71<br />72<br />73<br />74<br />75<br />76<br />77<br />78<br />79<br />80<br />81<br />82<br />83<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #666666; font-style: italic;">#! /bin/sh</span><br />
<span style="color: #666666; font-style: italic;">#</span><br />
<span style="color: #666666; font-style: italic;"># spawn-fcgi Startup script for the nginx HTTP Server</span><br />
<span style="color: #666666; font-style: italic;">#</span><br />
<span style="color: #666666; font-style: italic;"># chkconfig: - 84 15</span><br />
<span style="color: #666666; font-style: italic;"># description: Loading php-cgi using spawn-cgi</span><br />
<span style="color: #666666; font-style: italic;"># HTML files and CGI.</span><br />
<span style="color: #666666; font-style: italic;">#</span><br />
<span style="color: #666666; font-style: italic;">### BEGIN INIT INFO</span><br />
<span style="color: #666666; font-style: italic;"># Provides: spawn-fcgi</span><br />
<span style="color: #666666; font-style: italic;"># Required-Start: $all</span><br />
<span style="color: #666666; font-style: italic;"># Required-Stop: $all</span><br />
<span style="color: #666666; font-style: italic;"># Default-Start: 2 3 4 5</span><br />
<span style="color: #666666; font-style: italic;"># Default-Stop: 0 1 6</span><br />
<span style="color: #666666; font-style: italic;"># Short-Description: Start and stop php-cgi using spawn-fcgi</span><br />
<span style="color: #666666; font-style: italic;"># Description: Start and stop php-cgi using spawn-fcgi</span><br />
<span style="color: #666666; font-style: italic;">### END INIT INFO</span><br />
<br />
<span style="color: #666666; font-style: italic;"># Author: Ryan Norbauer</span><br />
<span style="color: #666666; font-style: italic;"># Modified: Geoffrey Grosenbach http://topfunky.com</span><br />
<span style="color: #666666; font-style: italic;"># Modified: David Krmpotic http://davidhq.com</span><br />
<span style="color: #666666; font-style: italic;"># Modified: Kun Xi http://kunxi.org</span><br />
<span style="color: #666666; font-style: italic;"># Modified: http://drumcoder.co.uk/</span><br />
<span style="color: #666666; font-style: italic;"># Modified: http://olezhek.net/</span><br />
<br />
<span style="color: #007800;">SCRIPTNAME</span>=$<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #c20cb9; font-weight: bold;">basename</span> <span style="color: #007800;">$0</span><span style="color: #7a0874; font-weight: bold;">&#41;</span><br />
<span style="color: #007800;">DAEMON</span>=<span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span>spawn-fcgi<br />
<span style="color: #007800;">FCGIHOST</span>=127.0.0.1<br />
<span style="color: #007800;">FCGIPORT</span>=<span style="color: #000000;">9000</span><br />
<span style="color: #007800;">FCGIUSER</span>=www-data<br />
<span style="color: #007800;">FCGIGROUP</span>=www-data<br />
<span style="color: #007800;">FCGIAPP</span>=<span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span>php-cgi<br />
<span style="color: #007800;">FCGICHILDREN</span>=<span style="color: #000000;">5</span><br />
<span style="color: #007800;">PIDFILE</span>=<span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>run<span style="color: #000000; font-weight: bold;">/</span><span style="color: #007800;">$SCRIPTNAME</span>.pid<br />
<span style="color: #007800;">DESC</span>=<span style="color: #ff0000;">&quot;Spawn-FCGI&quot;</span><br />
<br />
<span style="color: #666666; font-style: italic;"># You can change settings for this script by editing /etc/default/$SCRIPTNAME</span><br />
<span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #660033;">-r</span> <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>default<span style="color: #000000; font-weight: bold;">/</span><span style="color: #007800;">$SCRIPTNAME</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span> <span style="color: #000000; font-weight: bold;">&amp;&amp;</span> . <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>default<span style="color: #000000; font-weight: bold;">/</span><span style="color: #007800;">$SCRIPTNAME</span><br />
<br />
<span style="color: #666666; font-style: italic;"># Gracefully exit if the package has been removed.</span><br />
<span style="color: #7a0874; font-weight: bold;">test</span> <span style="color: #660033;">-x</span> <span style="color: #007800;">$DAEMON</span> <span style="color: #000000; font-weight: bold;">||</span> <span style="color: #7a0874; font-weight: bold;">exit</span> <span style="color: #000000;">0</span><br />
<span style="color: #7a0874; font-weight: bold;">test</span> <span style="color: #660033;">-x</span> <span style="color: #007800;">$FCGIAPP</span> <span style="color: #000000; font-weight: bold;">||</span> <span style="color: #7a0874; font-weight: bold;">exit</span> <span style="color: #000000;">0</span><br />
<br />
start<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span> <span style="color: #7a0874; font-weight: bold;">&#123;</span><br />
<span style="color: #666666; font-style: italic;"># $DAEMON -a $FCGIHOST -p $FCGIPORT -u $FCGIUSER -g $FCGIGROUP -f $FCGIAPP -P $PIDFILE -C $FCGICHILDREN 2&gt; /dev/null || echo -en &quot;\n already running&quot;</span><br />
<span style="color: #007800;">$DAEMON</span> <span style="color: #660033;">-a</span> <span style="color: #007800;">$FCGIHOST</span> <span style="color: #660033;">-p</span> <span style="color: #007800;">$FCGIPORT</span> <span style="color: #660033;">-u</span> <span style="color: #007800;">$FCGIUSER</span> <span style="color: #660033;">-g</span> <span style="color: #007800;">$FCGIGROUP</span> <span style="color: #660033;">-P</span> <span style="color: #007800;">$PIDFILE</span> <span style="color: #660033;">-C</span> <span style="color: #007800;">$FCGICHILDREN</span> <span style="color: #660033;">--</span> <span style="color: #007800;">$FCGIAPP</span> <span style="color: #000000;">2</span><span style="color: #000000; font-weight: bold;">&gt;</span> <span style="color: #000000; font-weight: bold;">/</span>dev<span style="color: #000000; font-weight: bold;">/</span>null <span style="color: #000000; font-weight: bold;">||</span> <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #660033;">-en</span> <span style="color: #ff0000;">&quot;<span style="color: #000099; font-weight: bold;">\n</span> already running&quot;</span><br />
<span style="color: #7a0874; font-weight: bold;">&#125;</span><br />
<br />
stop<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span> <span style="color: #7a0874; font-weight: bold;">&#123;</span><br />
<span style="color: #c20cb9; font-weight: bold;">kill</span> <span style="color: #660033;">-QUIT</span> <span style="color: #000000; font-weight: bold;">`</span><span style="color: #c20cb9; font-weight: bold;">cat</span> <span style="color: #007800;">$PIDFILE</span><span style="color: #000000; font-weight: bold;">`</span> <span style="color: #000000; font-weight: bold;">||</span> <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #660033;">-en</span> <span style="color: #ff0000;">&quot;<span style="color: #000099; font-weight: bold;">\n</span> not running&quot;</span><br />
<span style="color: #7a0874; font-weight: bold;">&#125;</span><br />
<br />
restart<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span> <span style="color: #7a0874; font-weight: bold;">&#123;</span><br />
<span style="color: #c20cb9; font-weight: bold;">kill</span> <span style="color: #660033;">-HUP</span> <span style="color: #000000; font-weight: bold;">`</span><span style="color: #c20cb9; font-weight: bold;">cat</span> <span style="color: #007800;">$PIDFILE</span><span style="color: #000000; font-weight: bold;">`</span> <span style="color: #000000; font-weight: bold;">||</span> <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #660033;">-en</span> <span style="color: #ff0000;">&quot;<span style="color: #000099; font-weight: bold;">\n</span> can't reload&quot;</span><br />
<span style="color: #7a0874; font-weight: bold;">&#125;</span><br />
<br />
<span style="color: #000000; font-weight: bold;">case</span> <span style="color: #ff0000;">&quot;$1&quot;</span> <span style="color: #000000; font-weight: bold;">in</span><br />
start<span style="color: #7a0874; font-weight: bold;">&#41;</span><br />
<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #660033;">-n</span> <span style="color: #ff0000;">&quot;Starting <span style="color: #007800;">$DESC</span>: &quot;</span><br />
start<br />
<span style="color: #000000; font-weight: bold;">;;</span><br />
stop<span style="color: #7a0874; font-weight: bold;">&#41;</span><br />
<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #660033;">-n</span> <span style="color: #ff0000;">&quot;Stopping <span style="color: #007800;">$DESC</span>: &quot;</span><br />
stop<br />
<span style="color: #000000; font-weight: bold;">;;</span><br />
restart<span style="color: #000000; font-weight: bold;">|</span>reload<span style="color: #7a0874; font-weight: bold;">&#41;</span><br />
<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #660033;">-n</span> <span style="color: #ff0000;">&quot;Restarting <span style="color: #007800;">$DESC</span>: &quot;</span><br />
stop<br />
<span style="color: #666666; font-style: italic;"># One second might not be time enough for a daemon to stop,</span><br />
<span style="color: #666666; font-style: italic;"># if this happens, d_start will fail (and dpkg will break if</span><br />
<span style="color: #666666; font-style: italic;"># the package is being upgraded). Change the timeout if needed</span><br />
<span style="color: #666666; font-style: italic;"># be, or change d_stop to have start-stop-daemon use --retry.</span><br />
<span style="color: #666666; font-style: italic;"># Notice that using --retry slows down the shutdown process somewhat.</span><br />
<span style="color: #c20cb9; font-weight: bold;">sleep</span> <span style="color: #000000;">1</span><br />
start<br />
<span style="color: #000000; font-weight: bold;">;;</span><br />
<span style="color: #000000; font-weight: bold;">*</span><span style="color: #7a0874; font-weight: bold;">&#41;</span><br />
<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;Usage: <span style="color: #007800;">$SCRIPTNAME</span> {start|stop|restart|reload}&quot;</span> <span style="color: #000000; font-weight: bold;">&gt;&amp;</span><span style="color: #000000;">2</span><br />
<span style="color: #7a0874; font-weight: bold;">exit</span> <span style="color: #000000;">3</span><br />
<span style="color: #000000; font-weight: bold;">;;</span><br />
<span style="color: #000000; font-weight: bold;">esac</span><br />
<br />
<span style="color: #7a0874; font-weight: bold;">exit</span> <span style="color: #007800;">$?</span></div></td></tr></tbody></table></div>
<p>Скопировать текст в файл, файл поместить в директорию <code class="codecolorer bash default"><span class="bash"><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></span></code>, накинуть прав на&nbsp;выполнение:</p>
<div class="codecolorer-container bash default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:640px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #666666;"># </span><span style="color: #c20cb9; font-weight: bold;">chmod</span> +x <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;">/&lt;</span>your filename<span style="color: #000000; font-weight: bold;">&gt;</span></div></td></tr></tbody></table></div>
<p>Прописать в&nbsp;автозагрузку:</p>
<div class="codecolorer-container bash default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:640px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #666666;"># </span>update-rc.d <span style="color: #000000; font-weight: bold;">&lt;</span>your filename<span style="color: #000000; font-weight: bold;">&gt;</span> defaults</div></td></tr></tbody></table></div>
<p>Готово. Само собой, для работы скрипта требуется наличие Spawn-FCGI и CGI-интерфейса, процессы которого будут плодиться. В данном случае, я использовал php-fastcgi. Как я упоминал выше, Spawn-FCGI, в <span style="white-space:nowrap">общем-то</span>, без разницы, какие CGI-процессы плодить. Это может быть и CGI для Python, например. Кстати, предпоследняя версия этого скрипта как&nbsp;раз была предназначена для запуска CGI для Mercurial&nbsp;&mdash; а&nbsp;это Python. Для того, чтобы этот скрипт запускал <span style="white-space:nowrap">что-то</span> другое, достаточно поменять значение переменной <code class="codecolorer bash default"><span class="bash">FCGIAPP</span></code> на нужное, скопировать скрипт под другим именем и опять прописать в автозагрузку. Скрипт изменен таким образом, чтобы дополнительные настройки для него можно было менять, не редактируя сам скрипт&nbsp;&mdash; через файл <code class="codecolorer bash default"><span class="bash"><span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>default<span style="color: #000000; font-weight: bold;">/&lt;</span>your filename<span style="color: #000000; font-weight: bold;">&gt;</span></span></code>.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/olezhek/feed?a=6rBWHdg738c:c3w6m-A2Pwc:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/olezhek/feed?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/olezhek/feed?a=6rBWHdg738c:c3w6m-A2Pwc:-BTjWOF_DHI"><img src="http://feeds.feedburner.com/~ff/olezhek/feed?i=6rBWHdg738c:c3w6m-A2Pwc:-BTjWOF_DHI" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/olezhek/feed?a=6rBWHdg738c:c3w6m-A2Pwc:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/olezhek/feed?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/olezhek/feed/~4/6rBWHdg738c" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://olezhek.net/2012-02-29-init-skript-dlya-spawn-fcgi.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://olezhek.net/2012-02-29-init-skript-dlya-spawn-fcgi.html</feedburner:origLink></item>
		<item>
		<title>Java-плагин в Ubuntu/Mint: что и где</title>
		<link>http://feedproxy.google.com/~r/olezhek/feed/~3/3rmVpWbX37c/2012-01-15-java-plagin-v-ubuntumint-chto-i-gde.html</link>
		<comments>http://olezhek.net/2012-01-15-java-plagin-v-ubuntumint-chto-i-gde.html#comments</comments>
		<pubDate>Sat, 14 Jan 2012 21:55:56 +0000</pubDate>
		<dc:creator>Oleg</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Chrome]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[libnpjp2.so]]></category>
		<category><![CDATA[Mint]]></category>
		<category><![CDATA[Opera]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://olezhek.net/?p=1303</guid>
		<description><![CDATA[Поскольку об этой мелочи я постоянно забываю, я решил написать про&#160;неё в блог. Речь идет о Java-плагине для браузеров в Ubuntu/Mint. Этот плагин можно установить при помощи&#160;aptitude: 1sudo aptitude install sun-java6-plugin Однако, этого недостаточно, чтобы плагин был обнаружен и &#171;воспринят&#187; браузером. Для этого нужно создать символьные ссылки на библиотеку плагина для нужных браузеров. Причём, от [...]]]></description>
			<content:encoded><![CDATA[
<p><a href="http://feedads.g.doubleclick.net/~a/Sqp9O1kPLwYHb-oJkbcYGyBNrpA/0/da"><img src="http://feedads.g.doubleclick.net/~a/Sqp9O1kPLwYHb-oJkbcYGyBNrpA/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/Sqp9O1kPLwYHb-oJkbcYGyBNrpA/1/da"><img src="http://feedads.g.doubleclick.net/~a/Sqp9O1kPLwYHb-oJkbcYGyBNrpA/1/di" border="0" ismap="true"></img></a></p><p>Поскольку об этой мелочи я постоянно забываю, я решил написать про&nbsp;неё в блог. Речь идет о Java-плагине для браузеров в Ubuntu/Mint. Этот плагин можно установить при помощи&nbsp;aptitude:</p>
<div class="codecolorer-container bash default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:640px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">aptitude</span> <span style="color: #c20cb9; font-weight: bold;">install</span> sun-java6-plugin</div></td></tr></tbody></table></div>
<p>Однако, этого недостаточно, чтобы плагин был обнаружен и &laquo;воспринят&raquo; браузером. Для этого нужно создать символьные ссылки на библиотеку плагина для нужных браузеров. Причём, от дистрибутива к дистрибутиву путь, по которому размещён этот файл, изменяется. Поэтому, перед&nbsp;тем как раскидывать линки, лучше уточнить путь к файлу <tt>libnpjp2.so</tt>. В Linux Mint 11/Ubuntu Natty amd64 библиотека плагиина размещается по пути <tt>/usr/lib64/jvm/java-6-sun/jre/lib/amd64/</tt>. В Linux Mint 12/Ubuntu Oneiric этот путь уже эквивалентен <tt>/usr/lib/jvm/java-6-sun/jre/lib/</tt>. Eсли платформа не&nbsp;amd64, а&nbsp;x86, то путь тоже поменяется. Само собой, что нужно, чтобы браузеры и библиотека были скомпилированы под одну платформу. Для Opera директория с плагинами обычно размещается по пути <tt>/usr/lib/opera/plugins</tt>, для Firefox&nbsp;&mdash; <tt>/usr/lib/mozilla/plugins</tt>. Туда и нужно линковать. Выглядеть это будет примерно&nbsp;так:</p>
<div class="codecolorer-container bash default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:640px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><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>lib<span style="color: #000000; font-weight: bold;">/</span>opera<span style="color: #000000; font-weight: bold;">/</span>plugins <span style="color: #000000; font-weight: bold;">&amp;&amp;</span> <span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">ln</span> -s <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>lib64<span style="color: #000000; font-weight: bold;">/</span>jvm<span style="color: #000000; font-weight: bold;">/</span>java-<span style="color: #000000;">6</span>-sun<span style="color: #000000; font-weight: bold;">/</span>jre<span style="color: #000000; font-weight: bold;">/</span>lib<span style="color: #000000; font-weight: bold;">/</span>amd64<span style="color: #000000; font-weight: bold;">/</span>libnpjp2.so<br />
<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>lib<span style="color: #000000; font-weight: bold;">/</span>firefox<span style="color: #000000; font-weight: bold;">/</span>plugins <span style="color: #000000; font-weight: bold;">&amp;&amp;</span> <span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">ln</span> -s <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>lib64<span style="color: #000000; font-weight: bold;">/</span>jvm<span style="color: #000000; font-weight: bold;">/</span>java-<span style="color: #000000;">6</span>-sun<span style="color: #000000; font-weight: bold;">/</span>jre<span style="color: #000000; font-weight: bold;">/</span>lib<span style="color: #000000; font-weight: bold;">/</span>amd64<span style="color: #000000; font-weight: bold;">/</span>libnpjp2.so</div></td></tr></tbody></table></div>
<p><noindex><a rel="nofollow" title="http://olezhek.net/redir/aHR0cDovL3VidW50dWZvcnVtcy5vcmcvc2hvd3Bvc3QucGhwP3A9Nzg4MzI4NyZhbXA7cG9zdGNvdW50PTM=" href="http://olezhek.net/redir/aHR0cDovL3VidW50dWZvcnVtcy5vcmcvc2hvd3Bvc3QucGhwP3A9Nzg4MzI4NyZhbXA7cG9zdGNvdW50PTM=" target="_blank">Real deal</a></noindex> от Google, по идее, &laquo;подхватывает&raquo; этот плагин автоматически. Отмечу, что я использовал для примера выше путь к libnpjp2.so для&nbsp;Mint 11/Ubuntu&nbsp;Natty.</p>
<p>После создания символьных ссылок следует перезапустить браузеры, чтобы они подключили плагин. У Opera, на месте, где должен загружаться апплет,  может появиться сообщение, что плагин не обнаружен. Чтобы заработало, нужно просто покликать по этой области. Chrome у меня пожаловался на&nbsp;то, что плагин устарел. Возможно, это было связано с тем, что&nbsp;уже есть седьмая версия Java.  В любом случае, единственную альтернативу запуску апплета, которую сейчас может предложить Chrome&nbsp;&mdash; установку Java из самораспаковывающегося архива&nbsp;либо из rpm-пакета&nbsp;&mdash; для deb-систем нет смысла&nbsp;использовать.</p>
<p>&nbsp;</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/olezhek/feed?a=3rmVpWbX37c:hj5-78UczwM:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/olezhek/feed?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/olezhek/feed?a=3rmVpWbX37c:hj5-78UczwM:-BTjWOF_DHI"><img src="http://feeds.feedburner.com/~ff/olezhek/feed?i=3rmVpWbX37c:hj5-78UczwM:-BTjWOF_DHI" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/olezhek/feed?a=3rmVpWbX37c:hj5-78UczwM:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/olezhek/feed?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/olezhek/feed/~4/3rmVpWbX37c" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://olezhek.net/2012-01-15-java-plagin-v-ubuntumint-chto-i-gde.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://olezhek.net/2012-01-15-java-plagin-v-ubuntumint-chto-i-gde.html</feedburner:origLink></item>
		<item>
		<title>WordPress: admin.php поедает память</title>
		<link>http://feedproxy.google.com/~r/olezhek/feed/~3/GbsWn8z700Y/2011-12-23-wordpress-admin-php-poedaet-pamyat.html</link>
		<comments>http://olezhek.net/2011-12-23-wordpress-admin-php-poedaet-pamyat.html#comments</comments>
		<pubDate>Thu, 22 Dec 2011 22:39:18 +0000</pubDate>
		<dc:creator>Oleg</dc:creator>
				<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[admin.php]]></category>
		<category><![CDATA[memory_limit]]></category>
		<category><![CDATA[WP_MAX_MEMORY_LIMIT]]></category>

		<guid isPermaLink="false">http://olezhek.net/?p=1273</guid>
		<description><![CDATA[Сегодня обнаружил пренеприятную вещь. Если в WP, будучи авторизованным, производить какие-либо действия, через некоторое время сайт перестаёт отзываться и выпадает в осадок на непродолжительное время. После этого всё опять начинает работать, как&#160;ни в&#160;чём не бывало, до следующего такого&#160;же события. Я полез в логи в поисках источника проблемы. В /var/log/syslog я нашел исчерпывающую&#160;информацию: 1Dec 22 20:39:41 [...]]]></description>
			<content:encoded><![CDATA[
<p><a href="http://feedads.g.doubleclick.net/~a/vAtNA6DbJlPyBuYLP3zRIOrRRTU/0/da"><img src="http://feedads.g.doubleclick.net/~a/vAtNA6DbJlPyBuYLP3zRIOrRRTU/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/vAtNA6DbJlPyBuYLP3zRIOrRRTU/1/da"><img src="http://feedads.g.doubleclick.net/~a/vAtNA6DbJlPyBuYLP3zRIOrRRTU/1/di" border="0" ismap="true"></img></a></p><p>Сегодня обнаружил пренеприятную вещь. Если в WP, будучи авторизованным, производить <span style="white-space:nowrap">какие-либо</span> действия, через некоторое время сайт перестаёт отзываться и выпадает в осадок на непродолжительное время. После этого всё опять начинает работать, как&nbsp;ни в&nbsp;чём не бывало, до следующего такого&nbsp;же события. Я полез в логи в поисках источника проблемы. В <tt>/var/log/syslog</tt> я нашел исчерпывающую&nbsp;информацию:</p>
<div class="codecolorer-container bash default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:640px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">Dec <span style="color: #000000;">22</span> <span style="color: #000000;">20</span>:<span style="color: #000000;">39</span>:<span style="color: #000000;">41</span> <span style="color: #000000; font-weight: bold;">&lt;</span> хост убран <span style="color: #000000; font-weight: bold;">&gt;</span> suhosin<span style="color: #7a0874; font-weight: bold;">&#91;</span><span style="color: #000000;">19857</span><span style="color: #7a0874; font-weight: bold;">&#93;</span>: ALERT - script tried to increase memory_limit to <span style="color: #000000;">268435456</span> bytes <span style="color: #c20cb9; font-weight: bold;">which</span> is above the allowed value <span style="color: #7a0874; font-weight: bold;">&#40;</span>attacker <span style="color: #ff0000;">'&lt; ip убран &gt;'</span>, <span style="color: #c20cb9; font-weight: bold;">file</span> <span style="color: #ff0000;">'wp-admin/admin.php'</span>, line <span style="color: #000000;">109</span><span style="color: #7a0874; font-weight: bold;">&#41;</span></div></td></tr></tbody></table></div>
<p>Оказалось, что&nbsp;это полезняшка-Suhosin прибивает скрипт <tt>wp-admin/admin.php</tt> по причине того, что последний по непонятной причине начинает жрать очень уж много памяти. Гораздо больше, чем задано в настройках PHP. Начав копаться в движке, я обнаружил, что разработчики весьма щедро одарили свой движок памятью&nbsp;(<tt>wp-includes/default-constants.php:27</tt>):</p>
<div class="codecolorer-container php default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:640px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #339933;">!</span> <noindex><a rel="nofollow" title="http://www.php.net/defined" target="_blank" href="http://olezhek.net/redir/aHR0cDovL3d3dy5waHAubmV0L2RlZmluZWQ="><span style="color: #990000;">defined</span></a></noindex><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'WP_MAX_MEMORY_LIMIT'</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; <noindex><a rel="nofollow" title="http://www.php.net/define" target="_blank" href="http://olezhek.net/redir/aHR0cDovL3d3dy5waHAubmV0L2RlZmluZQ=="><span style="color: #990000;">define</span></a></noindex><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'WP_MAX_MEMORY_LIMIT'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'256M'</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span></div></td></tr></tbody></table></div>
<p>Подобная запись присутствовала в WP и раньше. Тогда значение просто было <noindex><a rel="nofollow" title="http://olezhek.net/redir/aHR0cDovL2NvcmUudHJhYy53b3JkcHJlc3Mub3JnL2NoYW5nZXNldC8xNzc0OQ==" href="http://olezhek.net/redir/aHR0cDovL2NvcmUudHJhYy53b3JkcHJlc3Mub3JnL2NoYW5nZXNldC8xNzc0OQ==" target="_blank">жёстко прописано</a></noindex> в те&nbsp;же 256Мб. В конфиге php у меня установлено максимальное значение в 128Мб. Именно по этой причине Suhosin и валил выполняющийся&nbsp;скрипт.</p>
<p>На данный момент я&nbsp;не очень представляю, чего&nbsp;же такого делает admin.php, что требует больше 128 мегабайт памяти. Особенно учитывая, что&nbsp;это происходит во время отправки комментария. Не смотря на&nbsp;то, что скрипту требуется память, я решил не раздвигать установленные в 128Мб рамки. Скорее наоборот, я решил придавить WordPress этими 128 мегабайтами. Как видно из кода выше, это совсем нетрудно сделать&nbsp;&mdash; достаточно определить константу <tt>WP_MAX_MEMORY_LIMIT</tt> в&nbsp;<tt>wp-config.php</tt>:</p>
<div class="codecolorer-container php default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:640px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><noindex><a rel="nofollow" title="http://www.php.net/define" target="_blank" href="http://olezhek.net/redir/aHR0cDovL3d3dy5waHAubmV0L2RlZmluZQ=="><span style="color: #990000;">define</span></a></noindex><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'WP_MAX_MEMORY_LIMIT'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'128M'</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></td></tr></tbody></table></div>
<p>Тогда вышеупомянутый код в <tt>wp-includes/default-constants.php</tt> не будет выполняться. Конечно, это полурешение. Более того, я ожидаю, что, если скрипту понадобится больше 128Мб, он также будет убиваться, но&nbsp;уже интерпретатором PHP. Однако, я все&nbsp;же посмотрю, как&nbsp;оно будет&nbsp;работать.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/olezhek/feed?a=GbsWn8z700Y:eaM23G2zw_c:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/olezhek/feed?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/olezhek/feed?a=GbsWn8z700Y:eaM23G2zw_c:-BTjWOF_DHI"><img src="http://feeds.feedburner.com/~ff/olezhek/feed?i=GbsWn8z700Y:eaM23G2zw_c:-BTjWOF_DHI" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/olezhek/feed?a=GbsWn8z700Y:eaM23G2zw_c:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/olezhek/feed?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/olezhek/feed/~4/GbsWn8z700Y" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://olezhek.net/2011-12-23-wordpress-admin-php-poedaet-pamyat.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://olezhek.net/2011-12-23-wordpress-admin-php-poedaet-pamyat.html</feedburner:origLink></item>
		<item>
		<title>Как зарезервировать instance на Amazon</title>
		<link>http://feedproxy.google.com/~r/olezhek/feed/~3/u7oJPUNqno8/2011-12-01-how-to-reserve-an-instance-in-amazon.html</link>
		<comments>http://olezhek.net/2011-12-01-how-to-reserve-an-instance-in-amazon.html#comments</comments>
		<pubDate>Thu, 01 Dec 2011 10:35:05 +0000</pubDate>
		<dc:creator>Oleg</dc:creator>
				<category><![CDATA[Технологии Веб]]></category>
		<category><![CDATA[Amazon]]></category>
		<category><![CDATA[AWS]]></category>
		<category><![CDATA[instance]]></category>
		<category><![CDATA[on-demand]]></category>
		<category><![CDATA[reserved]]></category>

		<guid isPermaLink="false">http://olezhek.net/?p=1245</guid>
		<description><![CDATA[У Amazon есть много вариантов использования их вычислительного облака. И это относится не только к широкой линейке тарифов. Можно сказать, что количество тарифов можно умножить на два, поскольку инстансы бывают двух типов&#160;&#8212; on-demand и reserved. Их отличие только в стоимости. Первый удобно заказывать, когда необходимо взять вычислительную мощность на время, меньшее чем 1 год. В [...]]]></description>
			<content:encoded><![CDATA[
<p><a href="http://feedads.g.doubleclick.net/~a/He_WVwzgYtcuMwi2s5tDoP582Vs/0/da"><img src="http://feedads.g.doubleclick.net/~a/He_WVwzgYtcuMwi2s5tDoP582Vs/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/He_WVwzgYtcuMwi2s5tDoP582Vs/1/da"><img src="http://feedads.g.doubleclick.net/~a/He_WVwzgYtcuMwi2s5tDoP582Vs/1/di" border="0" ismap="true"></img></a></p><p>У Amazon есть много вариантов использования их вычислительного облака. И это относится не только к широкой линейке тарифов. Можно сказать, что количество тарифов можно умножить на два, поскольку инстансы бывают двух типов&nbsp;&mdash; <noindex><a rel="nofollow" title="http://olezhek.net/redir/aHR0cDovL2F3cy5hbWF6b24uY29tL2VjMi8jaW5zdGFuY2U=" href="http://olezhek.net/redir/aHR0cDovL2F3cy5hbWF6b24uY29tL2VjMi8jaW5zdGFuY2U=" target="_blank">on-demand и reserved</a></noindex>. Их отличие только в стоимости. Первый удобно заказывать, когда необходимо взять вычислительную мощность на время, меньшее чем 1 год. В других случаях действительно выгоднее брать reserved-тип&nbsp;либо комбинировать оба. В принципе, ничто не мешает гонят on-demand instance годами, но финансовые потери в такой ситуации будут существенны, да и глупо это. <span id="more-1245"></span>Например, я подсчитал, что примерная месячная стоимость on-demand t1.micro с параметрами как&nbsp;на&nbsp;Free Tier будет составлять около&nbsp;$15.76 (я рассчитывал так, что ресурсы будут израсходованы по&nbsp;максимуму):</p>
<ul>
<li>Собственно вычислительная мощь: 0.48 * 30 * 12 =&nbsp;172.8</li>
<li>10 ГБ EBS: 0.1 * 10 * 12 =&nbsp;12</li>
<li>1 млн. I/O-операций на EBS: 0.1 * 12 =&nbsp;0.12</li>
<li>1 ГБ S3 storage для EBS: 0.14 * 12 =&nbsp;1.68</li>
<li>14 ГБ исходящего трафика (потому, что первый ГБ трафика ежемесячно бесплатен): 0.12 * 14 * 12 =&nbsp;20.16</li>
</ul>
<p>В год это $206.76&nbsp;&mdash; дешевле, чем самый дешевый тариф от <noindex><a rel="nofollow" title="http://olezhek.net/redir/aHR0cDovL3d3dy5saW5vZGUuY29tLw==" href="http://olezhek.net/redir/aHR0cDovL3d3dy5saW5vZGUuY29tLw==" target="_blank">Linode.com</a></noindex>. У Linode, правда, свои прелести есть. Например, 200 ГБ трафика дают на самом дешевом тарифе. Тем не менее, по сравнению с тем&nbsp;же AWS, on-demand выглядит дороже, когда узнаешь цену на reserved instance. Она составляет $54/1 год и&nbsp;$82/3 года. В принципе, можно было&nbsp;бы даже не учитывать всё, что навешивается дополнительно, достаточно сравнить первую цифру из расчетов с этими двумя. Что выбрать&nbsp;&mdash; 1 on-demand&nbsp;или 3 reserved t1.micro на&nbsp;год и пачку пива на вечер?&nbsp;:)</p>
<p>Хорошо, цифры смотрятся красиво, так как купить зарезервированный&nbsp;инстанс?</p>
<p>Тут есть два варианта. Первый&nbsp;&mdash; воспользоваться <noindex><a rel="nofollow" title="http://olezhek.net/redir/aHR0cDovL2F3cy5hbWF6b24uY29tL2RldmVsb3BlcnRvb2xzLzM1MT9fZW5jb2Rpbmc9VVRGOCZhbXA7aml2ZVJlZGlyZWN0PTE=" href="http://olezhek.net/redir/aHR0cDovL2F3cy5hbWF6b24uY29tL2RldmVsb3BlcnRvb2xzLzM1MT9fZW5jb2Rpbmc9VVRGOCZhbXA7aml2ZVJlZGlyZWN0PTE=" target="_blank">EC2 API Tools</a></noindex>. Второй&nbsp;&mdash; из <noindex><a rel="nofollow" title="http://olezhek.net/redir/aHR0cHM6Ly9jb25zb2xlLmF3cy5hbWF6b24uY29tL2VjMi8=" href="http://olezhek.net/redir/aHR0cHM6Ly9jb25zb2xlLmF3cy5hbWF6b24uY29tL2VjMi8=" target="_blank">консоли управления AWS</a></noindex>. Первый вариант я&nbsp;не пробовал, но всё&nbsp;же доверяю <noindex><a rel="nofollow" title="http://olezhek.net/redir/aHR0cDovL2F3cy50eXBlcGFkLmNvbS9hd3MvMjAwOS8wNC9ob3ctdG8tcHVyY2hhc2UtYW4tZWMyLXJlc2VydmVkLWluc3RhbmNlLmh0bWw=" href="http://olezhek.net/redir/aHR0cDovL2F3cy50eXBlcGFkLmNvbS9hd3MvMjAwOS8wNC9ob3ctdG8tcHVyY2hhc2UtYW4tZWMyLXJlc2VydmVkLWluc3RhbmNlLmh0bWw=" target="_blank">написанному</a></noindex>. Быть может, <span style="white-space:nowrap">кто-то</span> из&nbsp;вас его попробует и потом поделится в комментариях опытом с благодарным Олежкой и читателями его блога <img src='http://olezhek.net/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  . Кстати, если вы вознамерились делать первый вариант, и у&nbsp;вас при этом есть Ubuntu, то пользоваться ссылкой, которую я&nbsp;дал в начале абзаца, необязательно. EC2 API Tools есть в стандартных репозиториях Ubuntu, и проще поставить их традиционным&nbsp;способом:</p>
<div class="codecolorer-container bash default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:640px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #c20cb9; font-weight: bold;">aptitude</span> <span style="color: #c20cb9; font-weight: bold;">install</span> ec2-api-tools</div></td></tr></tbody></table></div>
<p>Второй вариант&nbsp;&mdash; из консоли управления&nbsp;AWS.</p>
<p>По цифрам на картинке&nbsp;&mdash; Закладка &laquo;EC2&raquo; -&gt; В категории &laquo;Instances&raquo; кликнуть по &laquo;Reserved instances&raquo; -&gt; Кликнуть по кнопке &laquo;Purchase Reserved&nbsp;instances&raquo;:</p>
<p><a href="http://olezhek.net/wp-content/uploads/2011/12/aws-reserved-1-steps.png"><img class="aligncenter size-full wp-image-1246" title="Покупка Reserved Instance по шагам" src="http://olezhek.net/wp-content/uploads/2011/12/aws-reserved-1-steps.png" alt="" width="505" height="348" /></a></p>
<p>Появится окошко, в котором будет предложено, какой тип инстанса вы хотите&nbsp;зарезервировать.</p>
<p><a href="http://olezhek.net/wp-content/uploads/2011/12/aws-reserved-2.png"><img class="aligncenter size-medium wp-image-1247" title="Покупка reserved instance" src="http://olezhek.net/wp-content/uploads/2011/12/aws-reserved-2-635x491.png" alt="" width="635" height="491" /></a></p>
<p>На снимке показаны те параметры, которые были нужны мне. <strong>Внимательно</strong> выбирайте нужные <strong>вам</strong> параметры. Тут зарыта маленькая, но немного воняющая собачка. Дело в том, что&nbsp;на самом деле вы покупаете не инстанс. Вы покупаете гарантию того, что <span style="white-space:nowrap">какой-то</span> из ваших инстансов (а может и все) будет работать непрерывно всё то время, которое вы оплатили. Проще говоря, после нажатия кнопки Continue вы не получите интерфейс для выбора AMI и прочей требухи для инстанса. После получения от&nbsp;вас подтверждения в ваших намерениях вам просто скажут &laquo;Всё окей, чувак, мы списали денежки с твой карточки, жди&nbsp;результата&raquo;.</p>
<p><a href="http://olezhek.net/wp-content/uploads/2011/12/aws-reserved-purchased.png"><img class="aligncenter size-medium wp-image-1251" title="Резерв куплен" src="http://olezhek.net/wp-content/uploads/2011/12/aws-reserved-purchased-635x365.png" alt="" width="635" height="365" /></a></p>
<p>Результатом будет появление ваших инстансов в категории Reserved instances, которая ранее пустовала. Если у&nbsp;вас такого инстанса нет (еще раз, внимательно смотрите на параметры резервируемых инстансов), вам необходимо его создать. В моей ситуации я&nbsp;уже имел работающий инстанс и&nbsp;во время резервирования указал именно его параметры. Инстанс появляется в категории Reserved не сразу, а в течение примерно 1&nbsp;часа.</p>
<p><a href="http://olezhek.net/wp-content/uploads/2011/12/aws-reserved-list.png"><img class="aligncenter size-medium wp-image-1252" title="aws-reserved-list" src="http://olezhek.net/wp-content/uploads/2011/12/aws-reserved-list-635x94.png" alt="" width="635" height="94" /></a></p>
<p>Вообще метод предоставления услуги весьма интересный. Вот, например, случай, в котором он сработает на клиента: допустим, у&nbsp;вас есть t1.micro в us-east-1a c Linux на борту и&nbsp;он зарезервирован. Вам понадобилось полностью обновить ПО, вместе с операционной системой. Разумеется, для этого нужно погасить старый инстанс, создать новый (с теми&nbsp;же параметрами, что и у старого, т.е. Linux-инстанс t1.micro в зоне us-east-1a) с нужной ОС и накатить на него софт. Так и делаете. В результате у&nbsp;вас два инстанса. Удаляете старый, и&nbsp;по прошествии определенного времени уже новый становится зарезервированным. Таким образом, вы не теряете уплаченные деньги, вам не нужно кантовать саппорт с просьбами переключить <span style="white-space:nowrap">что-то</span> на <span style="white-space:nowrap">что-то</span>, чтобы вернуть деньги&nbsp;или направить их в нужное &laquo;русло&raquo;. Вы как будто поменяли плашку оперативной памяти в своем компьютере. Подробнее про&nbsp;то, как&nbsp;оно работает, можно почитать в <noindex><a rel="nofollow" title="http://olezhek.net/redir/aHR0cHM6Ly9mb3J1bXMuYXdzLmFtYXpvbi5jb20vdGhyZWFkLmpzcGE/bWVzc2FnZUlEPTEyMDE0MA==" href="http://olezhek.net/redir/aHR0cHM6Ly9mb3J1bXMuYXdzLmFtYXpvbi5jb20vdGhyZWFkLmpzcGE/bWVzc2FnZUlEPTEyMDE0MA==" target="_blank">этой</a></noindex> ветке форума об&nbsp;AWS.</p>
<p>Однако, есть у меня один вопрос. Скажем, есть два одинаковых инстанса, находящихся в одной зоне. И вы покупаете резерв только для одного. Получается, что один резервируется, и один остается on-demand. Поскольку процесс резервирования происходит в режиме, который не контролируется пользователем, неизвестно, какой именно из этих двух инстансов будет зарезервирован. Это не имеет значения, даже смысла, когда два инстанса идентичны вплоть до выполняемых ими задач. Однако&nbsp;же, это имеет значение в противном&nbsp;случае.</p>
<p><strong>UPD</strong>: Каюсь, был невнимателен, когда читал их документацию. Дело в том, что, покупая у&nbsp;Amazon reserved-инстансы, вы покупаете серьёзную скидку за&nbsp;час работы инстанса. Т.е., после покупки reserved-инстанса, вам всё равно будут начислять денежки за пользование, но, конечно&nbsp;же, в итоге получится дешевле, чем on-demand. Так что, к стоимости вычислительной мощи reserved-инстанса нужно прибавить ежемесячное пользование. Для t1.micro это (на данный момент&nbsp;&mdash; декабрь 2011 года) 0.007 * 24 * 30 (тут, понятное дело, я взял усредненно количество дней). Даже при таком раскладе получается дешевле, чем, наверное,&nbsp;везде.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/olezhek/feed?a=u7oJPUNqno8:nRxtcsQSPmI:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/olezhek/feed?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/olezhek/feed?a=u7oJPUNqno8:nRxtcsQSPmI:-BTjWOF_DHI"><img src="http://feeds.feedburner.com/~ff/olezhek/feed?i=u7oJPUNqno8:nRxtcsQSPmI:-BTjWOF_DHI" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/olezhek/feed?a=u7oJPUNqno8:nRxtcsQSPmI:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/olezhek/feed?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/olezhek/feed/~4/u7oJPUNqno8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://olezhek.net/2011-12-01-how-to-reserve-an-instance-in-amazon.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://olezhek.net/2011-12-01-how-to-reserve-an-instance-in-amazon.html</feedburner:origLink></item>
		<item>
		<title>Установка php-fpm на Debian Squeeze</title>
		<link>http://feedproxy.google.com/~r/olezhek/feed/~3/GlZFld8bY44/2011-11-30-installing-php-fpm-on-debian-squeeze.html</link>
		<comments>http://olezhek.net/2011-11-30-installing-php-fpm-on-debian-squeeze.html#comments</comments>
		<pubDate>Wed, 30 Nov 2011 10:23:47 +0000</pubDate>
		<dc:creator>Oleg</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[php-fpm]]></category>
		<category><![CDATA[Squeeze]]></category>

		<guid isPermaLink="false">http://olezhek.net/?p=1241</guid>
		<description><![CDATA[Вы, наверное, думали, что&#160;под заголовком много всякой писанины про геморрой с установкой и настройкой? Нет, всё гораздо проще&#160;&#8212; php-fpm просто нет в репозиториях по умолчанию для&#160;Debian Squeeze. Это который 6. Забавно, я отлично помню кодовые имена для&#160;Debian и совершенно не помню, к каким версиям они относятся. Для Ubuntu&#160;же всё наоборот . Чтобы установить это расширение, нужно [...]]]></description>
			<content:encoded><![CDATA[
<p><a href="http://feedads.g.doubleclick.net/~a/_IzzAPBAeFwIAa07au2yM70JmLM/0/da"><img src="http://feedads.g.doubleclick.net/~a/_IzzAPBAeFwIAa07au2yM70JmLM/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/_IzzAPBAeFwIAa07au2yM70JmLM/1/da"><img src="http://feedads.g.doubleclick.net/~a/_IzzAPBAeFwIAa07au2yM70JmLM/1/di" border="0" ismap="true"></img></a></p><p>Вы, наверное, думали, что&nbsp;под заголовком много всякой писанины про геморрой с установкой и настройкой? Нет, всё гораздо проще&nbsp;&mdash; php-fpm просто нет в репозиториях по умолчанию для&nbsp;Debian Squeeze. Это который 6. Забавно, я отлично помню кодовые имена для&nbsp;Debian и совершенно не помню, к каким версиям они относятся. Для Ubuntu&nbsp;же всё наоборот <img src='http://olezhek.net/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> . Чтобы установить это расширение, нужно добавить сторонний репозиторий. Например, этот: <noindex><a rel="nofollow" title="http://olezhek.net/redir/aHR0cDovL3BhY2thZ2VzLmRvdGRlYi5vcmc=" href="http://olezhek.net/redir/aHR0cDovL3BhY2thZ2VzLmRvdGRlYi5vcmc=" target="_blank">http://packages.dotdeb.org</a></noindex>. Добавляем репозиторий и&nbsp;причиндалы:</p>
<div class="codecolorer-container bash default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:640px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;deb http://packages.dotdeb.org squeeze all&quot;</span> <span style="color: #000000; font-weight: bold;">&gt;&gt;</span> <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>apt<span style="color: #000000; font-weight: bold;">/</span>sources.list<br />
<span style="color: #c20cb9; font-weight: bold;">wget</span> http:<span style="color: #000000; font-weight: bold;">//</span>www.dotdeb.org<span style="color: #000000; font-weight: bold;">/</span>dotdeb.gpg<br />
<span style="color: #c20cb9; font-weight: bold;">cat</span> dotdeb.gpg <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">apt-key add</span> -</div></td></tr></tbody></table></div>
<p>Не забыть обновить&nbsp;список:</p>
<div class="codecolorer-container bash default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:640px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #c20cb9; font-weight: bold;">aptitude</span> update</div></td></tr></tbody></table></div>
<p>Теперь можно&nbsp;ставить:</p>
<div class="codecolorer-container bash default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:640px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #c20cb9; font-weight: bold;">aptitude</span> <span style="color: #c20cb9; font-weight: bold;">install</span> php5-fpm</div></td></tr></tbody></table></div>
<p>Вот и&nbsp;всё.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/olezhek/feed?a=GlZFld8bY44:KzNWXPCZNls:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/olezhek/feed?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/olezhek/feed?a=GlZFld8bY44:KzNWXPCZNls:-BTjWOF_DHI"><img src="http://feeds.feedburner.com/~ff/olezhek/feed?i=GlZFld8bY44:KzNWXPCZNls:-BTjWOF_DHI" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/olezhek/feed?a=GlZFld8bY44:KzNWXPCZNls:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/olezhek/feed?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/olezhek/feed/~4/GlZFld8bY44" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://olezhek.net/2011-11-30-installing-php-fpm-on-debian-squeeze.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://olezhek.net/2011-11-30-installing-php-fpm-on-debian-squeeze.html</feedburner:origLink></item>
		<item>
		<title>Поломанные шрифты для QT-приложений в Linux Mint</title>
		<link>http://feedproxy.google.com/~r/olezhek/feed/~3/064xA4KjCOg/2011-11-23-broken-fonts-linux-mint-qt.html</link>
		<comments>http://olezhek.net/2011-11-23-broken-fonts-linux-mint-qt.html#comments</comments>
		<pubDate>Wed, 23 Nov 2011 13:01:47 +0000</pubDate>
		<dc:creator>Oleg</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[gtk]]></category>
		<category><![CDATA[Mint]]></category>
		<category><![CDATA[qt]]></category>
		<category><![CDATA[шрифты]]></category>

		<guid isPermaLink="false">http://olezhek.net/?p=1226</guid>
		<description><![CDATA[Даже не предполагал, что в&#160;Linux Mint столкнусь с такой проблемой. Команда разработчиков этого дистрибутива вылизывает настройки интерфейса в&#160;Ubuntu до такой степени, что, вне зависимости от того, какая gui-библиотека была использована при написании программы, эта программа выглядит практически также, как и GTK-приложения. В результате, графический интерфейс Linux Mint выглядит взрослее, чем интерфейс его родителя. Однако&#160;же, я [...]]]></description>
			<content:encoded><![CDATA[
<p><a href="http://feedads.g.doubleclick.net/~a/_Jc4-5ERRnG7xbkSqn7d8YcbteQ/0/da"><img src="http://feedads.g.doubleclick.net/~a/_Jc4-5ERRnG7xbkSqn7d8YcbteQ/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/_Jc4-5ERRnG7xbkSqn7d8YcbteQ/1/da"><img src="http://feedads.g.doubleclick.net/~a/_Jc4-5ERRnG7xbkSqn7d8YcbteQ/1/di" border="0" ismap="true"></img></a></p><p>Даже не предполагал, что в&nbsp;Linux Mint столкнусь с такой проблемой. Команда разработчиков этого дистрибутива вылизывает настройки интерфейса в&nbsp;Ubuntu до такой степени, что, вне зависимости от того, какая gui-библиотека была использована при написании программы, эта программа выглядит практически также, как и GTK-приложения. В результате, графический интерфейс Linux Mint выглядит взрослее, чем интерфейс его родителя. Однако&nbsp;же, я всё-таки напоролся на проблему со шрифтами. <span id="more-1226"></span>Вот как она&nbsp;выглядела:</p>
<p style="text-align: center;"><a href="http://olezhek.net/wp-content/uploads/2011/11/qtconfig.jpg"><img class="aligncenter size-medium wp-image-1227" title="qtconfig broken fonts" src="http://olezhek.net/wp-content/uploads/2011/11/qtconfig-635x405.jpg" alt="" width="635" height="405" /></a></p>
<p>Как видно на снимке, кириллические символы отображаются <span style="white-space:nowrap">каким-то</span> шрифтом с засечками с невероятным расстоянием между символами, в&nbsp;то время, как с латинскими символами всё в порядке&nbsp;&mdash; они отрисовываются тем шрифтом, который задан в настройках. Проблема возникла после того, как я поставил дополнительные ttf-шрифты из стандартного репозитория. Я не спроста упоминал GTK в начале заметки, т.к. эта ситуация наблюдается в QT-приложениях, например qtconfig-qt4 (на снимке вверху), Gwenview и&nbsp;Skype. Приложения&nbsp;же, использующие GTK для отрисовки интерфейса, отображаются при этом нормально. Собственно настройки шрифтов для QT регулируются в qtconfig. Однако, это не касается случаев, когда на закладке &laquo;Внешний вид&raquo; выбрана тема GTK+,&nbsp;либо пользовательсткие настройки, как&nbsp;это было у меня. Поскольку это Linux Mint, очевидно, что&nbsp;под &laquo;Пользовательскими настройками&raquo; имеется в виду та&nbsp;же тема GTK+, только, может быть, &laquo;подкрученная&raquo;. Короче, в такой ситуации QT использует настройки шрифтов из настроек GTK. Однако в&nbsp;них я ничего не менял, шрифт там оставался стандартный&nbsp;&mdash; Sans&nbsp;&mdash; который, разумеется не имеет засечек <img src='http://olezhek.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> &nbsp;.</p>
<p style="text-align: center;"><a href="http://olezhek.net/wp-content/uploads/2011/11/font-settings-gtk.jpg"><img class="aligncenter size-medium wp-image-1228" title="gtk font settings before" src="http://olezhek.net/wp-content/uploads/2011/11/font-settings-gtk-635x483.jpg" alt="" width="635" height="483" /></a></p>
<p>Скорее всего, QT в <span style="white-space:nowrap">каких-то</span> своих умолчальных настройках, которые недоступны&nbsp;либо труднодоступны пользователю, имеет умолчальное&nbsp;же семейство шрифтов. Это семейство шрифтов и используется при отрисовке gui. В моем, а возможно и&nbsp;во всех случаях, это оказалось семейство sans-serif&nbsp;&mdash; без засечек. Я предполагаю, что после установки дополнительных шрифтов, QT <span style="white-space:nowrap">каким-то</span> непонятным образом не нашла шрифт Sans (а может никогда раньше и&nbsp;не находила) и использовала первый попавшийся sans-serif шрифт. Который, в свою очередь, оказался без поддержки кириллицы; что привело к откату QT на первый попавшийся шрифт с поддержкой кириллицы. Смахивает, кстати, на Georgia. Но установить, что&nbsp;это за шрифт, конечно, трудно. Как и&nbsp;то, какой шрифт без засечек использовался для латинских символов. Потому что много шрифтов, которые называются по разному, но отличаются один от другого в незначительных&nbsp;деталях.</p>
<p>В общем, я подыскал подходящий шрифт без засечек, который поддерживает кириллицу, и qt нормально его находит. Выставил его в настройках GTK и перезапустил&nbsp;qt-приложение.</p>
<p style="text-align: center;"><a href="http://olezhek.net/wp-content/uploads/2011/11/font-settings-gtk-after.jpg"><img class="aligncenter size-medium wp-image-1229" title="gtk font settings after" src="http://olezhek.net/wp-content/uploads/2011/11/font-settings-gtk-after-635x516.jpg" alt="" width="635" height="516" /></a></p>
<p>Заработало нормально&nbsp;:)</p>
<p><a href="http://olezhek.net/wp-content/uploads/2011/11/gtsettings-result.jpg"><img class="aligncenter size-medium wp-image-1230" title="qtconfig result" src="http://olezhek.net/wp-content/uploads/2011/11/gtsettings-result-635x419.jpg" alt="" width="635" height="419" /></a></p>
<p>Тем не менее, этот обходной путь не решил проблему, а лишь скрыл её. Если <span style="white-space:nowrap">кто-нибудь</span> знает, как заставить QT отрисовывать нормально gui с&nbsp;тем шрифтом, который задан в&nbsp;GTK, отпишитесь, пожалуйста <img src='http://olezhek.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> &nbsp;.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/olezhek/feed?a=064xA4KjCOg:kkIi7pW1MQE:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/olezhek/feed?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/olezhek/feed?a=064xA4KjCOg:kkIi7pW1MQE:-BTjWOF_DHI"><img src="http://feeds.feedburner.com/~ff/olezhek/feed?i=064xA4KjCOg:kkIi7pW1MQE:-BTjWOF_DHI" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/olezhek/feed?a=064xA4KjCOg:kkIi7pW1MQE:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/olezhek/feed?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/olezhek/feed/~4/064xA4KjCOg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://olezhek.net/2011-11-23-broken-fonts-linux-mint-qt.html/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://olezhek.net/2011-11-23-broken-fonts-linux-mint-qt.html</feedburner:origLink></item>
		<item>
		<title>Конфигурация Nginx для MODx Evolution</title>
		<link>http://feedproxy.google.com/~r/olezhek/feed/~3/O-ImZS6d0Hs/2011-11-09-konfiguraciya-nginx-dlya-modx-evolution.html</link>
		<comments>http://olezhek.net/2011-11-09-konfiguraciya-nginx-dlya-modx-evolution.html#comments</comments>
		<pubDate>Wed, 09 Nov 2011 18:07:10 +0000</pubDate>
		<dc:creator>Oleg</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Evolution]]></category>
		<category><![CDATA[MODx]]></category>
		<category><![CDATA[Nginx]]></category>

		<guid isPermaLink="false">http://olezhek.net/?p=1217</guid>
		<description><![CDATA[Сегодня понадобилось развернуть сайт, построенный на&#160;MODx Evolution, на сервере под управлением Nginx. Ниже&#160;&#8212; конфиг для этого движка. Строки в угловых скобках &#60; и&#160;&#62; нужно заменить на свои&#160;значения. 12345678910111213141516171819202122server { &#160; &#160; &#160; &#160; server_name &#60;домен&#62;; &#160; &#160; &#160; &#160; root &#60;абсолютный путь к директории с движком&#62;; &#160; &#160; &#160; &#160; index index.php; &#160; &#160; &#160; [...]]]></description>
			<content:encoded><![CDATA[
<p><a href="http://feedads.g.doubleclick.net/~a/YrobABez0G1wLObawh1Lo8mThXw/0/da"><img src="http://feedads.g.doubleclick.net/~a/YrobABez0G1wLObawh1Lo8mThXw/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/YrobABez0G1wLObawh1Lo8mThXw/1/da"><img src="http://feedads.g.doubleclick.net/~a/YrobABez0G1wLObawh1Lo8mThXw/1/di" border="0" ismap="true"></img></a></p><p>Сегодня понадобилось развернуть сайт, построенный на&nbsp;MODx Evolution, на сервере под управлением Nginx. Ниже&nbsp;&mdash; конфиг для этого движка. Строки в угловых скобках &lt; и&nbsp;&gt; нужно заменить на свои&nbsp;значения.</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:640px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br /></div></td><td><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">server {<br />
&nbsp; &nbsp; &nbsp; &nbsp; server_name &lt;домен&gt;;<br />
&nbsp; &nbsp; &nbsp; &nbsp; root &lt;абсолютный путь к директории с движком&gt;;<br />
&nbsp; &nbsp; &nbsp; &nbsp; index index.php;<br />
&nbsp; &nbsp; &nbsp; &nbsp; location / {<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; root &lt;абсолютный путь к директории с движком&gt;;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if (!-e $request_filename){<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; rewrite ^/(.*)$ /index.php?q=$1 last;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br />
&nbsp; &nbsp; &nbsp; &nbsp; }<br />
&nbsp; &nbsp; &nbsp; &nbsp; location ~ \.php$ {<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; try_files $uri =404;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; fastcgi_split_path_info ^(.+\.php)(.*)$;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; fastcgi_pass 127.0.0.1:9000;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; include /etc/nginx/fastcgi_params;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; fastcgi_ignore_client_abort on;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; fastcgi_param SERVER_NAME $http_host;<br />
&nbsp; &nbsp; &nbsp; &nbsp; }<br />
&nbsp; &nbsp; &nbsp; &nbsp; access_log &lt;Абсолютный путь к логу доступа&gt;;<br />
&nbsp; &nbsp; &nbsp; &nbsp; error_log &lt;Абсолютный путь к логу ошибок&gt;;<br />
}</div></td></tr></tbody></table></div>
<p>Напоследок замечу, что данная конфигурация работает на Debian-системах, для&nbsp;Nginx версии 0.8.54 и&nbsp;MODx ветки Evolution версии 1.0.5. Стоит иметь в виду, что&nbsp;со временем <span style="white-space:nowrap">что-то</span> может&nbsp;измениться.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/olezhek/feed?a=O-ImZS6d0Hs:KhMjdfK4ElE:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/olezhek/feed?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/olezhek/feed?a=O-ImZS6d0Hs:KhMjdfK4ElE:-BTjWOF_DHI"><img src="http://feeds.feedburner.com/~ff/olezhek/feed?i=O-ImZS6d0Hs:KhMjdfK4ElE:-BTjWOF_DHI" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/olezhek/feed?a=O-ImZS6d0Hs:KhMjdfK4ElE:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/olezhek/feed?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/olezhek/feed/~4/O-ImZS6d0Hs" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://olezhek.net/2011-11-09-konfiguraciya-nginx-dlya-modx-evolution.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://olezhek.net/2011-11-09-konfiguraciya-nginx-dlya-modx-evolution.html</feedburner:origLink></item>
	</channel>
</rss>

