<?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>The WebDevil &#187; PHP</title>
	<atom:link href="http://dmitry.shaposhnik.name/category/php/feed/" rel="self" type="application/rss+xml" />
	<link>http://dmitry.shaposhnik.name</link>
	<description>Enjoy development</description>
	<lastBuildDate>Mon, 24 May 2010 01:29:18 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>MacOS X Leopard php extensions</title>
		<link>http://dmitry.shaposhnik.name/2009/05/29/macos-x-leopard-php-extensions/</link>
		<comments>http://dmitry.shaposhnik.name/2009/05/29/macos-x-leopard-php-extensions/#comments</comments>
		<pubDate>Fri, 29 May 2009 12:33:47 +0000</pubDate>
		<dc:creator>dm</dc:creator>
				<category><![CDATA[MacOSX]]></category>
		<category><![CDATA[Newbie]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://dmitry.shaposhnik.name/?p=278</guid>
		<description><![CDATA[Столкнулся с необходимостью добавить к PHP в макоси несколько экстеншенов.
Апач в MacOS работает в x86_64. Да-да, там бинарник для нескольких архитектур:
file `which httpd`
Проблема  в том что по умолчанию экстеншены будут собираться под i386. И потому из php-cli они доступны и работают, в то время как в mod_php их нет, а в логах апача видно [...]]]></description>
			<content:encoded><![CDATA[<p>Столкнулся с необходимостью добавить к PHP в макоси несколько экстеншенов.<br />
Апач в MacOS работает в x86_64. Да-да, там бинарник для нескольких архитектур:</p>
<div class="codecolorer-container bash default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><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;">file</span> <span style="color: #000000; font-weight: bold;">`</span><span style="color: #c20cb9; font-weight: bold;">which</span> httpd<span style="color: #000000; font-weight: bold;">`</span></div></div>
<p>Проблема  в том что по умолчанию экстеншены будут собираться под i386. И потому из php-cli они доступны и работают, в то время как в mod_php их нет, а в логах апача видно примерно такое:</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">PHP Warning: &nbsp;PHP Startup: Unable to load dynamic library '/usr/lib/php/extensions/no-debug-non-zts-20060613/mcrypt.so' - (null) in Unknown on line 0</div></div>
<p>Для сборки под несколько архитектур надо собирать все зависимости также под несколько архитектур. Я решил ограничиться вариантом x86_64 и i386.</p>
<p>Итак, в /opt/local/etc/macports/macports.conf добавим требуемые архитектуры:</p>
<div class="codecolorer-container bash default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><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: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">'universal_archs x86_64 i386'</span><span style="color: #000000; font-weight: bold;">&gt;&gt;</span> <span style="color: #000000; font-weight: bold;">/</span>opt<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>macports<span style="color: #000000; font-weight: bold;">/</span>macports.conf</div></div>
<p>Чудесно. Теперь на примере gettext.</p>
<div class="codecolorer-container bash default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><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> port <span style="color: #c20cb9; font-weight: bold;">install</span> <span style="color: #c20cb9; font-weight: bold;">gettext</span> +universal<br />
<span style="color: #c20cb9; font-weight: bold;">file</span> <span style="color: #000000; font-weight: bold;">`</span><span style="color: #c20cb9; font-weight: bold;">which</span> <span style="color: #c20cb9; font-weight: bold;">gettext</span><span style="color: #000000; font-weight: bold;">`</span></div></div>
<p>В качестве вывода мы должны получить что-то вроде</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">dm@Loki ~$ file `which gettext`<br />
/opt/local/bin/gettext: Mach-O universal binary with 2 architectures<br />
/opt/local/bin/gettext (for architecture i386): Mach-O executable i386<br />
/opt/local/bin/gettext (for architecture x86_64): &nbsp; Mach-O 64-bit executable x86_64</div></div>
<p>Далее нужны сорсы php. В сорсах есть папка ext.</p>
<div class="codecolorer-container bash default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><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> php-5.2.8<span style="color: #000000; font-weight: bold;">/</span>ext<span style="color: #000000; font-weight: bold;">/</span><span style="color: #c20cb9; font-weight: bold;">gettext</span><br />
phpize<br />
<br />
<span style="color: #007800;">CFLAGS</span>=<span style="color: #ff0000;">&quot;-arch i386 -arch x86_64 -g -Os -pipe -no-cpp-precomp&quot;</span> \<br />
<span style="color: #007800;">CCFLAGS</span>=<span style="color: #ff0000;">&quot;-arch i386 -arch x86_64 -g -Os -pipe&quot;</span> \<br />
<span style="color: #007800;">CXXFLAGS</span>=<span style="color: #ff0000;">&quot;-arch i386 -arch x86_64 -g -Os -pipe&quot;</span> \<br />
<span style="color: #007800;">LDFLAGS</span>=<span style="color: #ff0000;">&quot;-arch i386 -arch x86_64 -bind_at_load&quot;</span> \<br />
.<span style="color: #000000; font-weight: bold;">/</span>configure <span style="color: #660033;">--with-gettext</span>=<span style="color: #000000; font-weight: bold;">/</span>opt<span style="color: #000000; font-weight: bold;">/</span><span style="color: #7a0874; font-weight: bold;">local</span><br />
<br />
<span style="color: #c20cb9; font-weight: bold;">make</span><br />
<span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">make</span> <span style="color: #c20cb9; font-weight: bold;">install</span><br />
<span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">'extension=gettext.so'</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>php.ini<br />
<span style="color: #c20cb9; font-weight: bold;">sudo</span> apachectl restart</div></div>
<p>Предварительно убедитесь, что у Вас есть файл /etc/php.ini. По умолчанию его нет.</p>
<p>После этого модуль должен завестись в mod_php.</p>
<p>UPD: а чобы (по возможности) все из портов собиралось с флагом universal надо сделать</p>
<div class="codecolorer-container bash default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><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;">'+universal'</span> <span style="color: #000000; font-weight: bold;">&gt;&gt;</span> <span style="color: #000000; font-weight: bold;">/</span>opt<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>macports<span style="color: #000000; font-weight: bold;">/</span>variants.conf</div></div>
]]></content:encoded>
			<wfw:commentRss>http://dmitry.shaposhnik.name/2009/05/29/macos-x-leopard-php-extensions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Webservers benchmark</title>
		<link>http://dmitry.shaposhnik.name/2008/02/03/webservers-benchmark/</link>
		<comments>http://dmitry.shaposhnik.name/2008/02/03/webservers-benchmark/#comments</comments>
		<pubDate>Sun, 03 Feb 2008 05:08:54 +0000</pubDate>
		<dc:creator>dm</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[lighttpd]]></category>

		<guid isPermaLink="false">http://dmitry.shaposhnik.name/2008/02/03/webservers-benchmark/</guid>
		<description><![CDATA[Решил потестировать PHP в разных связках, а именно &#8211; Apache + mod_php, Apache + mod_fcgid + php, Lighttpd + mod_fastcgi + php. Все это еще в двух вариантах &#8211; с APC (Advanced PHP Cache) и без него.
Тестировал выполнением вот такой команды:
ab -c 5 -n 500 http://dmitry.shaposhnik.name/
Выполнял команду на другом сервере чтобы снизить влияние случайных факторов.
И [...]]]></description>
			<content:encoded><![CDATA[<p>Решил потестировать PHP в разных связках, а именно &#8211; Apache + mod_php, Apache + mod_fcgid + php, Lighttpd + mod_fastcgi + php. Все это еще в двух вариантах &#8211; с APC (Advanced PHP Cache) и без него.</p>
<p>Тестировал выполнением вот такой команды:</p>
<div class="codecolorer-container bash default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">ab <span style="color: #660033;">-c</span> <span style="color: #000000;">5</span> <span style="color: #660033;">-n</span> <span style="color: #000000;">500</span> http:<span style="color: #000000; font-weight: bold;">//</span>dmitry.shaposhnik.name<span style="color: #000000; font-weight: bold;">/</span></div></div>
<p>Выполнял команду на другом сервере чтобы снизить влияние случайных факторов.</p>
<p>И вот что получилось в результате:<br />
<a href='http://dmitry.shaposhnik.name/files/2008/02/screenshot1.png' title='testing results, table' rel="lightbox"><img src='http://dmitry.shaposhnik.name/files/2008/02/screenshot1.thumbnail.png' alt='testing results, table' /></a><br />
Вот полный вывод в текстовом виде:<br />
<a href='http://dmitry.shaposhnik.name/files/2008/02/tests.txt' title='testing results'>testing results</a></p>
<p>UPD: вот на том же сервере решил протестировать приложение-блогодвижек (<a href="http://sergey.tatarenkov.name/">Записки айтишника</a>) на рельсах той же командой.<br />
<span id="more-170"></span></p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;height:300px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">Document Length: &nbsp; &nbsp; &nbsp; &nbsp;13176 bytes<br />
<br />
Concurrency Level: &nbsp; &nbsp; &nbsp;5<br />
Time taken for tests: &nbsp; 15.141659 seconds<br />
Complete requests: &nbsp; &nbsp; &nbsp;500<br />
Failed requests: &nbsp; &nbsp; &nbsp; &nbsp;0<br />
Write errors: &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 0<br />
Total transferred: &nbsp; &nbsp; &nbsp;6743500 bytes<br />
HTML transferred: &nbsp; &nbsp; &nbsp; 6588000 bytes<br />
Requests per second: &nbsp; &nbsp;33.02 [#/sec] (mean)<br />
Time per request: &nbsp; &nbsp; &nbsp; 151.417 [ms] (mean)<br />
Time per request: &nbsp; &nbsp; &nbsp; 30.283 [ms] (mean, across all concurrent requests)<br />
Transfer rate: &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;434.89 [Kbytes/sec] received<br />
<br />
Connection Times (ms)<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; min &nbsp;mean[+/-sd] median &nbsp; max<br />
Connect: &nbsp; &nbsp; &nbsp; &nbsp;0 &nbsp; &nbsp;0 &nbsp; 0.0 &nbsp; &nbsp; &nbsp;0 &nbsp; &nbsp; &nbsp; 1<br />
Processing: &nbsp; &nbsp; 6 &nbsp;100 1126.2 &nbsp; &nbsp; &nbsp;7 &nbsp; 15141<br />
Waiting: &nbsp; &nbsp; &nbsp; &nbsp;4 &nbsp; 98 1126.1 &nbsp; &nbsp; &nbsp;5 &nbsp; 15139<br />
Total: &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;6 &nbsp;100 1126.2 &nbsp; &nbsp; &nbsp;7 &nbsp; 15141<br />
<br />
Percentage of the requests served within a certain time (ms)<br />
&nbsp; 50% &nbsp; &nbsp; &nbsp;7<br />
&nbsp; 66% &nbsp; &nbsp; &nbsp;8<br />
&nbsp; 75% &nbsp; &nbsp; &nbsp;9<br />
&nbsp; 80% &nbsp; &nbsp; 10<br />
&nbsp; 90% &nbsp; &nbsp; 11<br />
&nbsp; 95% &nbsp; &nbsp; 13<br />
&nbsp; 98% &nbsp; &nbsp;110<br />
&nbsp; 99% &nbsp; &nbsp;211<br />
&nbsp;100% &nbsp;15141 (longest request)</div></div>
<p><strong>UPD:</strong> по коментариям Вадима сделал более жесткий тест:</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">ab -c300 -n3000 http://dmitry.shaposhnik.name/test.php</div></div>
<p><a href='http://dmitry.shaposhnik.name/files/2008/02/test2.txt' title='testing results, heavy testing'>testing results, heavy testing</a><br />
Без APC mod_fcgid отлетает (2 запроса). Подскажите как подтюнинговать.</p>
]]></content:encoded>
			<wfw:commentRss>http://dmitry.shaposhnik.name/2008/02/03/webservers-benchmark/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>PHP Optimizers revisited</title>
		<link>http://dmitry.shaposhnik.name/2007/12/27/php-optimizers-revisited/</link>
		<comments>http://dmitry.shaposhnik.name/2007/12/27/php-optimizers-revisited/#comments</comments>
		<pubDate>Thu, 27 Dec 2007 11:34:15 +0000</pubDate>
		<dc:creator>dm</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[webtech]]></category>

		<guid isPermaLink="false">http://dmitry.shaposhnik.name/2007/12/27/php-optimizers-revisited/</guid>
		<description><![CDATA[Только-что наткнулся на эту публикацию, в которой основные ссылки &#8211; на сорс и на результат.
Как и показали результаты, стоит особо присмотреться к APC. Лично я еще после первого тестирования перешел на него.
UPD: есть нарекания на конфиг XCache в приведенном тесте, но у меня он страшно &#8220;лагал&#8221; с правильным конфигом, так что я свой выбор не [...]]]></description>
			<content:encoded><![CDATA[<p>Только-что наткнулся на <a href="http://phpinside.ru/?q=node/731">эту публикацию</a>, в которой основные ссылки &#8211; <a href="http://blog.digitalstruct.com/2007/12/23/php-accelerators-the-missing-details/">на сорс</a> и <a href="http://blog.digitalstruct.com/2007/12/24/accelerators-revisited/">на результат</a>.<br />
Как и показали результаты, стоит особо присмотреться к APC. Лично я еще после первого тестирования перешел на него.</p>
<p>UPD: есть нарекания на конфиг XCache в приведенном тесте, но у меня он страшно &#8220;лагал&#8221; с правильным конфигом, так что я свой выбор не поменял.</p>
]]></content:encoded>
			<wfw:commentRss>http://dmitry.shaposhnik.name/2007/12/27/php-optimizers-revisited/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>NetBeans 6.0 released</title>
		<link>http://dmitry.shaposhnik.name/2007/12/04/netbeans-60-released/</link>
		<comments>http://dmitry.shaposhnik.name/2007/12/04/netbeans-60-released/#comments</comments>
		<pubDate>Mon, 03 Dec 2007 21:26:22 +0000</pubDate>
		<dc:creator>dm</dc:creator>
				<category><![CDATA[C++]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[RoR]]></category>
		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://dmitry.shaposhnik.name/2007/12/04/netbeans-60-released/</guid>
		<description><![CDATA[Наконец-то вышел NetBeans 6.0 &#8211; замечательная Java IDE. Для меня она ценна изумительной поддержкой Ruby, а также наличием в плагинах средств для работы с UML, PHP, C/C++.

]]></description>
			<content:encoded><![CDATA[<p>Наконец-то вышел NetBeans 6.0 &#8211; замечательная Java IDE. Для меня она ценна изумительной поддержкой Ruby, а также наличием в плагинах средств для работы с UML, PHP, C/C++.</p>
<p><a href="http://download.netbeans.org/netbeans/6.0/final/"><img src="http://blogs.sun.com/tor/resource/110x32_dl2.gif"/></a></p>
]]></content:encoded>
			<wfw:commentRss>http://dmitry.shaposhnik.name/2007/12/04/netbeans-60-released/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Server monitoring tool</title>
		<link>http://dmitry.shaposhnik.name/2007/11/30/server-monitoring-tool/</link>
		<comments>http://dmitry.shaposhnik.name/2007/11/30/server-monitoring-tool/#comments</comments>
		<pubDate>Fri, 30 Nov 2007 18:47:46 +0000</pubDate>
		<dc:creator>dm</dc:creator>
				<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[MacOSX]]></category>
		<category><![CDATA[Networking]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://dmitry.shaposhnik.name/2007/11/30/server-monitoring-tool/</guid>
		<description><![CDATA[Стояли у меня разные сервера, и для мониторинга сервисов на них стоял monit. Со своей задачей он справлялся &#8211; если что-то упало &#8211; поднять указанным скриптом.
Но чего нехватало &#8211; так центра, в котором я бы мог озирать со своего места все сервера.

Вот так и решил поставить nagios. Поставил, посмотрел, попытался настроить, что-то получилось. Так как [...]]]></description>
			<content:encoded><![CDATA[<p>Стояли у меня разные сервера, и для мониторинга сервисов на них стоял monit. Со своей задачей он справлялся &#8211; если что-то упало &#8211; поднять указанным скриптом.<br />
Но чего нехватало &#8211; так центра, в котором я бы мог озирать со своего места все сервера.<br />
<span id="more-146"></span><br />
Вот так и решил поставить <a href="http://www.nagios.org/">nagios</a>. Поставил, посмотрел, попытался настроить, что-то получилось. Так как я &#8211; вэбдевел, то я, понятное дело, привы пользоваться вэб-мордами для таких штук. И у нагиоса она не то чтоб неюзабельна&#8230; Там полное отсуствие термина &#8220;удобство&#8221;. За что он и был снесен на следующие сутки.</p>
<p>Вторым&#8230; точнее второй была сестрёнка &#8211; <a href="http://bigsister.graeff.com/">BigSister</a>. Но она мне что-то сразу не приглянулась, и прожила минут 10-15. На большее меня нехватило. Интерфейс тоже неахти какой.</p>
<p>Попробовал я и <a href="http://manageengine.adventnet.com/products/opmanager/index.html">ManageEngine(r) OpManager</a> &#8211; я не смог его запустить, так как он требовал старые либы. У него внутри свой апач, что порадовало &#8211; ведь системный может и отвалиться, а мониторилка должна продолжить жить. Но именно этот апач и не стартовал из-за возраста.</p>
<p>И вот, наконец, меня подтолкнули в сторону <a href="http://www.zabbix.com/">Zabbix</a>. Сначала его навороченость меня отпугнула, юзабилити показалось страшным, но уже много лучше нагиоса. А потом я его настроил &#8211; что оказалось весьма легко &#8211; и обрел счастье.</p>
<p>В общем, что сие из себя представляет.<br />
Есть сервер, есть агент. Сервер пишет в MySQL/PostgreSQL/Oracle/SQLite. Есть вэб-морда (PHP), которая работает как раз с этой самой sql-базой. Клиент коннектится к серверу (или нескольким серверам). Первому в списке серверу он шлет всю инфу как можно чаще, остальным &#8211; более умеренно. По какому протоколу &#8211; не знаю, вроде по своему (поверх tcp).<br />
Ну а дальше у морды настраиваются триггеры (события, при которых шлется уведомление), item&#8217;ы (события, на которых строятся триггеры), media (чем и как и куда слать &#8211; даже через COM через сотовый может =)), графики и т.п.<br />
Агент, кстати, может выполнять указанные сервером команды. Например, при падении апача/мускуля/etc поднять его.</p>
<p>В общем &#8211; пока у меня живет <a href="http://www.zabbix.com/">Zabbix</a>, и я доволен. Всем советую.<br />
Но планы на разработку сходной мониторилки с человеческим обличьем уже есть <img src='http://dmitry.shaposhnik.name/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://dmitry.shaposhnik.name/2007/11/30/server-monitoring-tool/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>php developers test</title>
		<link>http://dmitry.shaposhnik.name/2007/11/04/php-developers-test/</link>
		<comments>http://dmitry.shaposhnik.name/2007/11/04/php-developers-test/#comments</comments>
		<pubDate>Sun, 04 Nov 2007 18:37:06 +0000</pubDate>
		<dc:creator>dm</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://dmitry.shaposhnik.name/2007/11/04/php-developers-test/</guid>
		<description><![CDATA[
Набрал не пользуясь шпаргалками. Оставалось еще 5 минут, так что можно было и подглянуть =)
]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.corp.mamba.ru/test/promo.phtml"><img border="0" src="http://www.corp.mamba.ru/test/widget.phtml?id=2412" /></a><br />
Набрал не пользуясь шпаргалками. Оставалось еще 5 минут, так что можно было и подглянуть =)</p>
]]></content:encoded>
			<wfw:commentRss>http://dmitry.shaposhnik.name/2007/11/04/php-developers-test/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
		<item>
		<title>Tidy</title>
		<link>http://dmitry.shaposhnik.name/2007/09/19/tidy/</link>
		<comments>http://dmitry.shaposhnik.name/2007/09/19/tidy/#comments</comments>
		<pubDate>Wed, 19 Sep 2007 07:56:09 +0000</pubDate>
		<dc:creator>dm</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://0804team.kiev.ua/dm/blog/2007/09/19/tidy/</guid>
		<description><![CDATA[$config = array&#40;
&#160; 'doctype' =&#62; &#34;strict&#34;,
&#160; 'indent' =&#62; 'auto',
&#160; 'output-xhtml' =&#62; true,
&#160; 'wrap' =&#62; 90,
&#160; 'show-body-only' =&#62; true,
&#160; 'enclose-block-text' =&#62; true
&#41;;

$encoding=&#34;raw&#34;;

$tidy = new tidy;
$tidy-&#62;parseString&#40;$text, $config, $encoding&#41;;
$tidy-&#62;cleanRepair&#40;&#41;;
return &#34;$tidy&#34;;
При работе с текстом в cp1251 все замечательно, при utf8 имеем знаки вопроса когда встречается два и более пробелов.
Лечение:
$encoding=&#34;utf8&#34;;
]]></description>
			<content:encoded><![CDATA[<div class="codecolorer-container php default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000088;">$config</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/array"><span style="color: #990000;">array</span></a><span style="color: #009900;">&#40;</span><br />
&nbsp; <span style="color: #0000ff;">'doctype'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">&quot;strict&quot;</span><span style="color: #339933;">,</span><br />
&nbsp; <span style="color: #0000ff;">'indent'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'auto'</span><span style="color: #339933;">,</span><br />
&nbsp; <span style="color: #0000ff;">'output-xhtml'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #339933;">,</span><br />
&nbsp; <span style="color: #0000ff;">'wrap'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">90</span><span style="color: #339933;">,</span><br />
&nbsp; <span style="color: #0000ff;">'show-body-only'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #339933;">,</span><br />
&nbsp; <span style="color: #0000ff;">'enclose-block-text'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #009900; font-weight: bold;">true</span><br />
<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
<span style="color: #000088;">$encoding</span><span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;raw&quot;</span><span style="color: #339933;">;</span><br />
<br />
<span style="color: #000088;">$tidy</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> tidy<span style="color: #339933;">;</span><br />
<span style="color: #000088;">$tidy</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">parseString</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$text</span><span style="color: #339933;">,</span> <span style="color: #000088;">$config</span><span style="color: #339933;">,</span> <span style="color: #000088;">$encoding</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$tidy</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">cleanRepair</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #b1b100;">return</span> <span style="color: #0000ff;">&quot;<span style="color: #006699; font-weight: bold;">$tidy</span>&quot;</span><span style="color: #339933;">;</span></div></div>
<p>При работе с текстом в cp1251 все замечательно, при utf8 имеем знаки вопроса когда встречается два и более пробелов.<br />
Лечение:</p>
<div class="codecolorer-container php default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000088;">$encoding</span><span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;utf8&quot;</span><span style="color: #339933;">;</span></div></div>
]]></content:encoded>
			<wfw:commentRss>http://dmitry.shaposhnik.name/2007/09/19/tidy/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>PHP opcode cachers review</title>
		<link>http://dmitry.shaposhnik.name/2007/09/15/php-opcode-cachers-review/</link>
		<comments>http://dmitry.shaposhnik.name/2007/09/15/php-opcode-cachers-review/#comments</comments>
		<pubDate>Sat, 15 Sep 2007 00:07:47 +0000</pubDate>
		<dc:creator>dm</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[apache]]></category>

		<guid isPermaLink="false">http://0804team.kiev.ua/dm/blog/2007/09/15/php-opcode-cachers-review/</guid>
		<description><![CDATA[&#8220;Папа обещал &#8211; папа сходил&#8221;

Обещался я сделать сравнение разных средств для ускорения работы скриптов. Если кто будет говорить о неточности или неправильности метода тестирования &#8211; говорите как лучше, сделаем лучше.
Итак, основным камнем преткновения для проведения тестирования послужило использование Zend Framework. Он использует чрезмерно много загрузок разных файлов, что заметно снижает скорость работы.
Тестовый стенд &#8211; ноутбук [...]]]></description>
			<content:encoded><![CDATA[<div style="float:right;"><i>&#8220;Папа обещал &#8211; папа сходил&#8221;</i></div>
<p><br style="display:block; clear: both;" /></p>
<p>Обещался я сделать сравнение разных средств для ускорения работы скриптов. Если кто будет говорить о неточности или неправильности метода тестирования &#8211; говорите как лучше, сделаем лучше.</p>
<p>Итак, основным камнем преткновения для проведения тестирования послужило использование Zend Framework. Он использует чрезмерно много загрузок разных файлов, что заметно снижает скорость работы.</p>
<p>Тестовый стенд &#8211; ноутбук Asus A6Tc, OS: Linux Ubuntu &#8220;Gutsy&#8221;, Lighttpd-1.4.17, PHP 5.2.3 через FastCGI.<br />
Тестовое приложение основано на Zend Framework, использует подключение к БД (но не делает выборок), а для View использован Smarty.</p>
<p>Тестировал Pure PHP, Zend Optimizer 3.3.0, XCache 1.2.1, APC 3.0.14, eAccelerator 0.9.5.2.</p>
<p>Тестировал тривиально и просто &#8211; замерял время запуска и время окончания внутри скрипта, в конце вывода смарти эхал полученое время. И копипастил его (все действия для чистоты эксперимента проводились с другой машинки) в OO SpreadSheets.</p>
<p>Вот результаты (время в мс):</p>
<table border=1>
<tr>
<th><b>Pure PHP</b></th>
<th><b>ZO</b></th>
<th><b>XCache</b></th>
<th><b>APC</b></th>
<th><b>eAccelerator</b></th>
</tr>
<tr>
<td>247.8</td>
<td>272.92</td>
<td>573.43</td>
<td>397.9</td>
<td>156.2</td>
</tr>
<tr>
<td>251.04</td>
<td>271.81</td>
<td>106.81</td>
<td>89.75</td>
<td>74.16</td>
</tr>
<tr>
<td>245.14</td>
<td>286.8</td>
<td>108.96</td>
<td>88.38</td>
<td>110.42</td>
</tr>
<tr>
<td>252.72</td>
<td>267.1</td>
<td>91.01</td>
<td>89.2</td>
<td>534.97</td>
</tr>
<tr>
<td>207.39</td>
<td>221.43</td>
<td>65.54</td>
<td>47.49</td>
<td>69.55</td>
</tr>
<tr>
<td>209.5</td>
<td>221.34</td>
<td>65.89</td>
<td>53.31</td>
<td>71.01</td>
</tr>
<tr>
<td>217.66</td>
<td>232.13</td>
<td>70.04</td>
<td>47.66</td>
<td>70.32</td>
</tr>
<tr>
<td>202.88</td>
<td>222.59</td>
<td>66.1</td>
<td>48.04</td>
<td>70.26</td>
</tr>
<tr>
<td>203.17</td>
<td>220.79</td>
<td>69.94</td>
<td>54.19</td>
<td>70.76</td>
</tr>
<tr>
<td>204.03</td>
<td>235.28</td>
<td>65.76</td>
<td>48.49</td>
<td>70.05</td>
</tr>
</table>
<p>И вот по этому добру график:</p>
<p><img src='http://0804team.kiev.ua/dm/blog/files/2007/09/screenshot3.png' alt='opcode cachers diagram' /></p>
<p>С XCache был замечен баг: если дважды быстро обновить страницу то контент вылазил полтора-два-три раза. Но я думаю это из-за перегенерации шаблона в Smarty. Однако неприятный осадок остался.</p>
<p>Жду комментариев =)</p>
]]></content:encoded>
			<wfw:commentRss>http://dmitry.shaposhnik.name/2007/09/15/php-opcode-cachers-review/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>XCache</title>
		<link>http://dmitry.shaposhnik.name/2007/09/07/xcache/</link>
		<comments>http://dmitry.shaposhnik.name/2007/09/07/xcache/#comments</comments>
		<pubDate>Fri, 07 Sep 2007 13:05:33 +0000</pubDate>
		<dc:creator>dm</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://0804team.kiev.ua/dm/blog/2007/09/07/xcache/</guid>
		<description><![CDATA[Попробовал только-что настроить XCache. Впечатления положительные.
Простое приложение на ZF 1.0.1 со Smarty отдавало тестовую страничку за 0.1-0.2 секунды. После установки XCache страничка отдается за 0.018 сек. Что весьма радует  
Еще оно не будет работать вместе с ZendOptimizer &#8211; соответственно, зашифровать скрипты Zend Guard&#8217;ом уже не удасться. Но есть альтернатива &#8211; IonCube. 
Вот такой конфиг [...]]]></description>
			<content:encoded><![CDATA[<p>Попробовал только-что настроить XCache. Впечатления положительные.</p>
<p>Простое приложение на ZF 1.0.1 со Smarty отдавало тестовую страничку за 0.1-0.2 секунды. После установки XCache страничка отдается за 0.018 сек. Что весьма радует <img src='http://dmitry.shaposhnik.name/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Еще оно не будет работать вместе с ZendOptimizer &#8211; соответственно, зашифровать скрипты Zend Guard&#8217;ом уже не удасться. Но есть альтернатива &#8211; IonCube. </p>
<p>Вот такой конфиг получился у меня:</p>
<div class="codecolorer-container ini default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;height:300px;"><div class="ini codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000099;">extension</span> <span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;"> xcache.so</span><br />
<br />
<span style="color: #000066; font-weight:bold;"><span style="">&#91;</span>xcache.admin<span style="">&#93;</span></span><br />
xcache.admin.auth <span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;"> On</span><br />
xcache.admin.user <span style="color: #000066; font-weight:bold;">=</span> <span style="color: #933;">&quot;admin&quot;</span><br />
xcache.admin.pass <span style="color: #000066; font-weight:bold;">=</span> <span style="color: #933;">&quot;4eae35f1b35977a00ebd8086c259d4c9&quot;</span><br />
<br />
<span style="color: #000066; font-weight:bold;"><span style="">&#91;</span>xcache<span style="">&#93;</span></span><br />
xcache.shm_scheme <span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;"> &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #933;">&quot;mmap&quot;</span><br />
xcache.size &nbsp;<span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;64M</span><br />
xcache.count <span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 2</span><br />
xcache.slots <span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;8K</span><br />
xcache.ttl &nbsp; <span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;0</span><br />
xcache.gc_interval <span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 30</span><br />
<br />
xcache.var_size &nbsp;<span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;64M</span><br />
xcache.var_count <span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 1</span><br />
xcache.var_slots <span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;8K</span><br />
xcache.var_ttl &nbsp; <span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 0</span><br />
xcache.var_maxttl &nbsp; <span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;0</span><br />
xcache.var_gc_interval <span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;"> &nbsp; &nbsp; 30</span><br />
<br />
xcache.test <span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;On</span><br />
xcache.readonly_protection <span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;"> Off</span><br />
xcache.mmap_path <span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;"> &nbsp; &nbsp;</span><span style="color: #933;">&quot;/dev/zero&quot;</span><br />
<br />
xcache.coredump_directory <span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;"> &nbsp; </span><span style="color: #933;">&quot;/tmp/phpcore/&quot;</span><br />
<br />
xcache.cacher <span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; On</span><br />
xcache.stat &nbsp; <span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; On</span><br />
xcache.optimizer <span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; On</span><br />
<br />
<span style="color: #000066; font-weight:bold;"><span style="">&#91;</span>xcache.coverager<span style="">&#93;</span></span><br />
xcache.coverager <span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Off</span><br />
<br />
xcache.coveragedump_directory <span style="color: #000066; font-weight:bold;">=</span> <span style="color: #933;">&quot;&quot;</span></div></div>
<p>PS: В новостях недосмотрел &#8211; он уже может работать с ZendOptimizer. Надо будет проверить <img src='http://dmitry.shaposhnik.name/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://dmitry.shaposhnik.name/2007/09/07/xcache/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>ZendOptimizer with FreeBSD</title>
		<link>http://dmitry.shaposhnik.name/2007/09/03/zendoptimizer-with-freebsd/</link>
		<comments>http://dmitry.shaposhnik.name/2007/09/03/zendoptimizer-with-freebsd/#comments</comments>
		<pubDate>Mon, 03 Sep 2007 12:05:43 +0000</pubDate>
		<dc:creator>dm</dc:creator>
				<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://0804team.kiev.ua/dm/blog/2007/09/03/zendoptimizer-with-freebsd/</guid>
		<description><![CDATA[Баг &#8211; не работает ZendOptimizer. При выполнении скрипта в браузере видим чистую страницу.
Наблюдения: Любопытно, но в консоли &#8220;php info.php&#8221; видим все чудесно. Очевидно, все прекрасно и с php-cgi. Опыт это доказал.
Данные: Итак, имеем 

ось FreeBSD example.com 6.2-RELEASE FreeBSD 6.2-RELEASE #0.
  
скрипты, которые зашифрованы ZendGuard-ом.
  
апач версии apache-2.2.4.
  
PHP версии 5.2.3.


Такие скрипты работают [...]]]></description>
			<content:encoded><![CDATA[<p>Баг &#8211; не работает ZendOptimizer. При выполнении скрипта в браузере видим чистую страницу.</p>
<p>Наблюдения: Любопытно, но в консоли &#8220;php info.php&#8221; видим все чудесно. Очевидно, все прекрасно и с php-cgi. Опыт это доказал.</p>
<p>Данные: Итак, имеем </p>
<ul>
<li>ось FreeBSD example.com 6.2-RELEASE FreeBSD 6.2-RELEASE #0.
  </li>
<li>скрипты, которые зашифрованы ZendGuard-ом.
  </li>
<li>апач версии apache-2.2.4.
  </li>
<li>PHP версии 5.2.3.
</li>
</ul>
<p>Такие скрипты работают только при установленном ZendOptimizer. На данный момент версия 3.3.</p>
<p>Лечение:<br />
Первое что я увидел &#8211; народ советует удалить Suhosin-патч, якобы мешает он. У меня его удаление не дало результата.<br />
Второе &#8211; народ сползал на апач 1.3 и все само собой лечилось. Но это же неинтересно <img src='http://dmitry.shaposhnik.name/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Я же дошел до того, что поставил к апачу mod_fcgid-2.1_1 и через него подключил php-cgi. Чудесным образом все заработало.</p>
<p>Вот что вышло в конфиге:</p>
<p>в /usr/local/etc/apache22/httpd.conf добавляем строку</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">LoadModule fcgid_module libexec/apache22/mod_fcgid.so</div></div>
<p>Потом чуть ниже добавляем вот такое:</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&lt;ifmodule mod_fcgid.c&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; AddHandler fcgid-script .fcgi &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&lt;/ifmodule&gt;</div></div>
<p>Потом непосредственно в конфиге vhost&#8217;а добавляем вот такие строки:</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">AddType application/x-httpd-fastphp .php<br />
Action application/x-httpd-fastphp /cgi-bin/php</div></div>
<p>phpinfo теперь должен показать что он работает через CGI/FastCGI. И криптованые скрипты в такой конфигурации работают чудесно.</p>
]]></content:encoded>
			<wfw:commentRss>http://dmitry.shaposhnik.name/2007/09/03/zendoptimizer-with-freebsd/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
