рубрика cms

Подружить Magento и X-Cache

28.02.2013г. // Рубрики: web, Рецепты, cms
Как-то сделал товарищу магазин на Magento, ну и там пока то да сё - пустил его пожить на своём VDS-е. Мне было не в тягость, пока этот магазин не начал периодически отжирать ресурсы не слабо. Сегодня я решил задуматься о разных php-шных заморочках и вспомнил, что у меня к одному форуму на сервере уже прикручен X-Cache, вот его решил использовать и для магенты.
Быстро поискал в интернете и нашел нужные настройки, в файле app/etc/local.xml, в секции <global> необходимо сделать вставку:
<cache>
    <backend>xcache</backend>
    <prefix>MAGENTO_</prefix>
</cache>
здесь prefix - это всего лишь только префикс, и больше ничего, нужен, чтобы разделять кеши от разных проектов, можно придумать любое имя.
Всё бы ничего, да только после этого Magento сдох (или Магента сдохла?) Короче, полез в var/report и полюбовался на:
a:4:{i:0;s:78:"fast_backend must implement the Zend_Cache_Backend_ExtendedInterface interface";i:1;s:1258:"#0 lib/Zend/Cache/Backend/TwoLevels.php(153): Zend_Cache::throwException('fast_backend mu...')
#1 lib/Zend/Cache.php(153): Zend_Cache_Backend_TwoLevels->__construct(Array)
#2 lib/Zend/Cache.php(94): Zend_Cache::_makeBackend('TwoLevels', Array, true, true)
#3 app/code/core/Mage/Core/Model/Cache.php(124): Zend_Cache::factory('Varien_Cache_Co...', 'TwoLevels', Array, Array, true, true, true)
#4 app/code/core/Mage/Core/Model/Config.php(1350): Mage_Core_Model_Cache->__construct(Array)
#5 app/Mage.php(432): Mage_Core_Model_Config->getModelInstance('core/cache', Array)
#6 app/code/core/Mage/Core/Model/App.php(396): Mage::getModel('core/cache', Array)
#7 app/code/core/Mage/Core/Model/App.php(290): Mage_Core_Model_App->_initCache(Array)
#8 app/code/core/Mage/Core/Model/App.php(332): Mage_Core_Model_App->baseInit(Array)
#9 app/Mage.php(640): Mage_Core_Model_App->run(Array)
#10 index.php(80): Mage::run('', 'store')
#11 {main}";s:3:"url";s:1:"/";s:11:"script_name";s:10:"/index.php";}
Пришлось вновь залезать в Интернет и разбираться.
Итак, лекарство:
  1. ищем файлик app/code/core/Mage/Core/Model/Cache.php и открываем его редактором
  2. находим там строчку, начинающуюся с case 'xcache':
  3. комментируем пониже выражение $enable2levels = true;
В общем, у меня получилось так:
case 'xcache':
    if (extension_loaded('xcache')) {
        /*$enable2levels = true;*/
        $backendType = 'Xcache';
    }
    break;
После этого магазин шустренько зажил, так что можно сказать, что я доволен.
На всякий случай решил записать этот рецептик, возможно ещё пригодится при каком-нибудь апгрейде.

Алгоритм разбора URL-ов для CMS, у которой не бывает дублей

22.02.2013г. // Рубрики: web, cms
Вебмастера, которые достаточно давно тусуются в сайтостроительстве и имеют опыт наблюдения за своим сайтом в выдаче поисковых систем, прекрасно осведомлены в проблеме "дублей". Смысл простой: скажем для Яндекса, урлы 'http://my-super-puper.ru/news', 'http://my-super-puper.ru/news/' и 'http://my-super-puper.ru/news?kakoi-to-bred' - совершенно разные страницы. А подавляющее большинство CMS-ов и самописов выдают по ним одинаковое содержимое. Таким способом образуется значительная часть дублей в индексе поисковой машины.  Читать полностью >

Приоритеты в mod_rewrite

01.08.2009г. // Рубрики: web, cms
Вчера с удивлением наткнулся на любопытное свойство mod_rewrite, может так оно и должно быть, но никогда всерьез не задумывался над последовательностью внутренних механизмов Apache.
Вообщем, есть у меня сайт, движок которого позволяет отдавать разный контент в зависимости от доменного имени. Вообщем, движок общий на кучу сайтов, просто у каждого своя БД. А поскольку robots.txt в папке может быть только один, то была придумана следующая инструкция
RewriteCond %{REQUEST_URI} ^/robots.txt$
RewriteRule .* robots.%{SERVER_NAME}.txt [L]
Т.е. для каждого сайта в каталоге лежит свой файлик robots.mysite.ru.txt со своими правилами. Все это хозяйство прекрасно работало до тех пор, пока каким-то чудесным образом в каталоге не оказался реальный robots.txt
После этого апач начхал на правила mod_rewrite и стал отдавать исключительно его.. Впрочем, мне кажется, должна существовать какая-то настройка, меняющее поведение сервера. Поищем на досуге.

Усовершенствование плагина ImageManager для WordPress

07.01.2007г. // Рубрики: web, cms
Вчера делал картинную галерею для сайта одной знакомой на базе этого плагина версии 2.37 и нарвался на засаду: фотки сделаны с разрешением примерно 1000x1200 и знакомая уперлась - ни в какую не хотела уменьшать их. Плагин такие фотки выводит в окошке в обрезанном виде. Ужоснах.  Читать полностью >

Что есть из существующего

05.01.2007г. // Рубрики: cms
Дернул из ФИДО
Как-то pаз (а точнее 10 Jul 04 в 22:05) Dmitry Suhodoev писал(а) к all:
DS> сабж. много хочу? в гугле и на sf.net искал.
так CMS или "а-ля php-nuke" ? Если пеpвое, то, навеpное, для каждого известного веб-фpеймвоpка на Perl есть минимум одна CMS: для Mason - Bricolage (ему PostgreSQL нужен, если из-за этого не подойдет - можно посмотpеть в стоpону Krang), Embperl - Ewok, AxKit - Callisto CMS. MovableType под это дело затачивается, Wiki-системы - аналогично. О! Можно попpобовать адаптиpовать под свои нужды LiveJournal. Еще стоит посмотpеть на Everything2 и OpenInteract. Из "нюковых" систем есть как минимум SlashCode, Scoop и WebApp.
Попутно, неплохонький список CMS нашел  http://www.oscom.org/matrix/index.html
  

Рубрики