несколько сайтов на базе одной копии системы.

Обсуждение CMS Made Simple в России.

Moderators: iturbay, wdwp

Post Reply
von-hamster
Power Poster
Power Poster
Posts: 339
Joined: Thu Nov 01, 2007 3:11 pm

несколько сайтов на базе одной копии системы.

Post by von-hamster »

столкнулся с такой проблемкой: на одной не очень сильной впске нужно поднять несколько сайтов-визиток на CMSMS. На впс поставил xcache и посмотрел статистику - получается чем больше копий сайта - тем больше копий файлов будут помещаться в кэш. Но несколько файлов достаточно много занимают в памяти места - в частности: основной класс смарти, основной класс контента и админские языковые файлы (около 500кб на файл).

Попробовал провернуть такой трюк: вынес все основные файлы ядра системы (admin, lib, modules...) во внешнюю папку, а на сайтах сделал на них симлинки. Система упала. Оказывается в ядре, во многих местах используется dirname(__FILE__), которые не очень дружат с симлинками, что вобщем-то и понятно. Но непонятно мне остается одно - зачем в конфиге тогда прописывается полный путь к корню, если почти везде используется dirname(__FILE__)....

Следующим этапом попытался вынести самые большие файлы, в итоге смарти, языковая папка админа и папка с классом для работы с базой успешно вынесены, на сайтах стоят симлинки на них. При попытке вынести папку libs - отключаются некоторые модули (их не видно в списке и они не работают).

Если-бы получилось вынести ядро во внешнюю папку, а с ядра сделать симлинк, то тогда будет классная система для установки большого числа сайтов на базе одной копии системы, более того - решится проблема с быстрым обновлением системы сразу на нескольких сайтах.

А теперь вопрос: кто-нть сталкивался с этим, и были ли какие решения?
Sonya

Re: несколько сайтов на базе одной копии системы.

Post by Sonya »

Сразу же оговорюсь я - Windows :) поэтому я бы попыталсь решить проблему другим путем. Как насчет модуля MultiDomains? Или он не то делает?
von-hamster
Power Poster
Power Poster
Posts: 339
Joined: Thu Nov 01, 2007 3:11 pm

Re: несколько сайтов на базе одной копии системы.

Post by von-hamster »

Немного не то...
MultiDomains создает домены на базе одной структуры страниц, а соответственно - на одной базе, и список модулей один для всех.
А смысл как раз в разделении баз, но использовании одних и тех-же файлов ядра. Тоесть получить 2 разных сайта с использованием одной файловой базы.

На примере - зачем:
У нас есть 2 сайта a.ru и b.ru каждый в своей папке (например, /var/www/a и /var/www/b). в каждой есть /lib/smarty/Smarty_Compiler.class.php
У нас есть xcache - байт компилер, который сохраняет промежуточный код php файла в оперативке. код смарти класса занимает около 400 K памяти (по статистике xcache).
Тоесть на 2 сайта - это дополнительно почти мегабайт.
Теперь делаем финт ушами, выносим /lib/smarty/Smarty_Compiler.class.php в /var/www/base а в /var/www/a и /var/www/b делаем символическую ссылку на смарти. И имеем - только 1 экземпляр кода в памяти.

Далее - выходит новая версия ms. В первом случае нужно залить файлы в 2 папки, во втором - только в одну.

Коментарий:
Для серьезных впс или железных серваков - это вобщем-то не критично, но для небольших впс - это уже серьезно...

Вообще - самый большой файл, который занимает почти 600к в памяти кэшера - это /lib/classes/class.content.inc.php
Sonya

Re: несколько сайтов на базе одной копии системы.

Post by Sonya »

Понятно. В принципе идея неплохая, но... обновление всех сайтов одним махом. Я бы побоялась. Различные сайты используют различные модули. Где, что упадет после апдейта? Все равно все ручками тестировать придется. К тому же есть модули, которые прекрасно работают на версии 1.8 и совсем худо на 1.9. Такие сайты остаются жить "до лучших времен" или когда руки дойдут на старой версии.

Есть модули, которым можно собирать информацию обо всех сайтах, о версиях, модулях и потихоньку ручками обновлять, где горит. http://dev.cmsmadesimple.org/projects/simplesiteinfo и http://dev.cmsmadesimple.org/projects/simplesitemgr
von-hamster
Power Poster
Power Poster
Posts: 339
Joined: Thu Nov 01, 2007 3:11 pm

Re: несколько сайтов на базе одной копии системы.

Post by von-hamster »

В общем случае - да... Но у меня сейчас все сайты типовые - практически не используют сторонние модули... Ручками полюбому придется допиливать, если что случится, но и откат сделать можно... В крайнем случае - предложеная мной система как раз на это и расчитана - можно у любого сайта убить симлинки и залить старую версию...
Sonya

Re: несколько сайтов на базе одной копии системы.

Post by Sonya »

von-hamster wrote: можно у любого сайта убить симлинки и залить старую версию...
Вот это мудро. Но помочь я, к сожалению, не могу, потому я - Windows :)
Post Reply

Return to “Russian - русский”