<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xml:base="http://viju.tvercity.net" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
 <title>ViJu - Рубаночком по друпальчику - Комментарии</title>
 <link>http://viju.tvercity.net/articles/drupal-tuning</link>
 <description>Comments for &quot;Рубаночком по друпальчику&quot;</description>
 <language>ru</language>
<item>
 <title>Спасибо,</title>
 <link>http://viju.tvercity.net/articles/drupal-tuning#comment-143</link>
 <description>&lt;p&gt;Спасибо, интересно.&lt;br /&gt;
Пожелание - указывать версию Drupal.&lt;/p&gt;
</description>
 <pubDate>Sat, 31 Mar 2007 08:47:52 +0400</pubDate>
 <dc:creator>vadbars</dc:creator>
 <guid isPermaLink="false">comment 143 at http://viju.tvercity.net</guid>
</item>
<item>
 <title>В этой статье</title>
 <link>http://viju.tvercity.net/articles/drupal-tuning#comment-42</link>
 <description>&lt;p&gt;В этой статье не описывается, к сожалению, зачем делаются подобные изменения и к чему они приведут...&lt;/p&gt;
</description>
 <pubDate>Tue, 05 Sep 2006 15:25:33 +0400</pubDate>
 <dc:creator>B.X</dc:creator>
 <guid isPermaLink="false">comment 42 at http://viju.tvercity.net</guid>
</item>
<item>
 <title>Что-нибудь</title>
 <link>http://viju.tvercity.net/articles/drupal-tuning#comment-33</link>
 <description>&lt;p&gt;дописал в статью&lt;/p&gt;
</description>
 <pubDate>Fri, 18 Aug 2006 23:13:55 +0400</pubDate>
 <dc:creator>Виталий</dc:creator>
 <guid isPermaLink="false">comment 33 at http://viju.tvercity.net</guid>
</item>
<item>
 <title>а в htaccess что</title>
 <link>http://viju.tvercity.net/articles/drupal-tuning#comment-32</link>
 <description>&lt;p&gt;а в htaccess что писать?&lt;/p&gt;
</description>
 <pubDate>Fri, 18 Aug 2006 22:05:47 +0400</pubDate>
 <dc:creator>Anonymous</dc:creator>
 <guid isPermaLink="false">comment 32 at http://viju.tvercity.net</guid>
</item>
<item>
 <title>Рубаночком по друпальчику</title>
 <link>http://viju.tvercity.net/articles/drupal-tuning</link>
 <description>&lt;p&gt;&lt;span style=&quot;background-color: #EFAC95&quot;&gt;Устарело! Написано еще для drupal 4.7.1, но такой подход можно использовать и для drupal 5.x, надо понимать что будут побочные эффекты, на виртуальных хостингах возможны проблемы с правами доступа к файлам кеша.&lt;/span&gt;&lt;br /&gt;
&lt;h2&gt;Кэширование на клиенте&lt;br /&gt;&lt;/h2&gt;
&lt;p class=&quot;MsoNormal&quot;&gt;С кешированием в друпал почти всё хорошо, во всяком случае на порядок лучше, чем в у многих. Но есть что добавить. В &lt;span&gt;Drupal&lt;/span&gt;, по умолчанию, не&lt;span&gt;  &lt;/span&gt;рассчитывается полезный &lt;span&gt;http&lt;/span&gt; заголовок ответа &lt;span&gt;content&lt;/span&gt;-&lt;span&gt;length&lt;/span&gt;. Здесь указанно как это исправить.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;в файле bootstrap.inc:&lt;br /&gt;после строк&lt;br /&gt;      header(&amp;quot;Last-Modified: $date&amp;quot;);&lt;br /&gt;      header(&amp;quot;ETag: $etag&amp;quot;);&lt;br /&gt;добавить&lt;br /&gt;      header(&amp;quot;Cache-Control: must-revalidate&amp;quot;);&lt;/p&gt;
&lt;p&gt;и перед строками&lt;br /&gt;      print $cache-&amp;gt;data;&lt;br /&gt;      bootstrap_invoke_all(&amp;#39;exit&amp;#39;);&lt;br /&gt;      exit();&lt;br /&gt;добавить&lt;br /&gt;header(&amp;quot;Content-Length: &amp;quot;.strlen($cache-&amp;gt;data));&lt;/p&gt;
&lt;h2&gt;Кэширование на сервере&lt;/h2&gt;
&lt;p&gt;Если вас не очень устраивает производительность Drupal при обслуживании мало динамичного контента, то следующий совет может вам пригодиться. Drupal имеет свою систему кэширования, но есть несколько случаев, когда лучше бывает подумать о каком-нибудь еще более эффективном способе кэширования. Например, как в моём случае, вы не представляете зачем писать на PHP4, когда уже более двух лет есть PHP5. Вам нужно всё то, чего нет в четвёрке, и вас особенно огорчает отсутствие PHP5 на хостинге. Компилируем PHP5 как cgi, и работаем дальше (подыскивая новый нормальный хостинг). А проблему недостаточно быстрого отклика с сервера, можно частично решить слегка модифицировав стандартный механизм кэширования друпала и дописав несколько строк в htaccess (чтобы не было тупого copy/paste,  додумывайтесь сами каких строк, могу только подсказать, что использовать надо mod_rewrite - или посмотрите в конец страници).&lt;/p&gt;
&lt;p&gt;в файле common.inc:&lt;/p&gt;
&lt;p&gt;function page_set_cache() {&lt;br /&gt;  global $user, $base_root;&lt;/p&gt;
&lt;p&gt;  //Vitaliy&amp;#39;s code&lt;br /&gt;  if (!$user-&amp;gt;uid &amp;amp;&amp;amp; $_SERVER[&amp;#39;REQUEST_METHOD&amp;#39;] == &amp;#39;GET&amp;#39;) {&lt;br /&gt;    // This will fail in some cases, see page_get_cache() for the explanation.&lt;br /&gt;    if ($data = ob_get_contents()) {&lt;br /&gt;        header(&amp;#39;WriteCache: true&amp;#39;);&lt;br /&gt;        if ($CROOT == NULL){&lt;br /&gt;          $CROOT = $_SERVER[&amp;#39;DOCUMENT_ROOT&amp;#39;].&amp;#39;/cache&amp;#39;;&lt;br /&gt;      }&lt;br /&gt;        if (request_uri() == &amp;#39;/&amp;#39; or request_uri() == &amp;#39;&amp;#39;){&lt;br /&gt;          file_put_contents($CROOT.&amp;#39;/index.html&amp;#39;,$data.&amp;quot;\n&amp;lt;!-- Cache hit &amp;quot;.date(&amp;quot;F j, Y, g:i a&amp;quot;).&amp;quot; --&amp;gt;&amp;quot;);&lt;br /&gt;          //file_put_contents($GZIPCROOT.&amp;#39;index.html.gz&amp;#39;,$out);&lt;br /&gt;      } else {&lt;br /&gt;          makedirs(request_uri(),$CROOT);&lt;br /&gt;          htmlcache(request_uri(),$CROOT,$data);&lt;br /&gt;          //$this-&amp;gt;gzipcache($url,$GZIPCROOT,$out);&lt;br /&gt;      }&lt;br /&gt;...&lt;/p&gt;
&lt;p&gt;//Vitaliy&amp;#39;s code&lt;br /&gt;function makedirs($url,$CROOT){&lt;br /&gt;    $parts = explode(&amp;#39;/&amp;#39;,$url);&lt;br /&gt;    $path = &amp;#39;&amp;#39;;&lt;br /&gt;    foreach ($parts as $part){&lt;br /&gt;        $path.=&amp;#39;/&amp;#39;.$part;&lt;br /&gt;        if(!file_exists($CROOT.$path)){&lt;/p&gt;
&lt;p&gt;            mkdir($CROOT.$path);&lt;br /&gt;        }&lt;br /&gt;    };&lt;br /&gt;}&lt;/p&gt;
&lt;p&gt;//Vitaliy&amp;#39;s code&lt;br /&gt;function htmlcache($url,$CROOT,$out){&lt;br /&gt;    file_put_contents($CROOT.&amp;#39;/&amp;#39;.$url.&amp;#39;/index.html&amp;#39;,$out.&amp;quot;\n&amp;lt;!-- Cache hit &amp;quot;.date(&amp;quot;F j, Y, g:i a&amp;quot;).&amp;quot; --&amp;gt;&amp;quot;);&lt;br /&gt;}&lt;/p&gt;
&lt;p&gt;(дописано по заявке анонима)&lt;/p&gt;
&lt;p&gt;в htaccess писать, что-нибудь вроде внизу приведенного, или что-нибудь по лучше&lt;/p&gt;
&lt;p&gt;RewriteEngine on&lt;br /&gt;  RewriteBase /&lt;br /&gt; RewriteCond %{REQUEST_METHOD} GET&lt;br /&gt; RewriteCond %{QUERY_STRING} ^$&lt;br /&gt; RewriteCond %{REQUEST_URI} ^(.*)/$  &lt;br /&gt; RewriteCond /какой-то/путь/.cache%1/index.html -f&lt;br /&gt; RewriteRule ^(.*)/$ /.cache%1/index.html [L]  RewriteCond %{REQUEST_FILENAME}  !-d&lt;br /&gt;     RewriteCond %{REQUEST_FILENAME}  !-f&lt;br /&gt; RewriteRule ^(.*)/?$ /index.php?virtualurl=$1 [QSA] &lt;/p&gt;
</description>
 <comments>http://viju.tvercity.net/articles/drupal-tuning#comments</comments>
 <category domain="http://viju.tvercity.net/taxonomy/term/14">Статьи</category>
 <category domain="http://viju.tvercity.net/tags/drupal">drupal</category>
 <pubDate>Fri, 29 Jun 2007 20:34:40 +0400</pubDate>
 <dc:creator>Виталий</dc:creator>
 <guid isPermaLink="false">312 at http://viju.tvercity.net</guid>
</item>
</channel>
</rss>
