Перейти к содержимому


- - - - -

Мультисайтинг


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 13

#1 D@nil

D@nil

    Участник

  • Пользователи Zebrum CMS
  • PipPip
  • 15 сообщений

Отправлено 07.11.2008, 04:26

Мультисайтинг поддерживают все хорошие движки (Drupal итд), а те которые не поддерживают (WP) - дорабатываются руками :)

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


Как реализовать?
Добавим в начало index.php
define('SITEID', str_replace(array(':80','www.'),'',getenv('HTTP_HOST')));


Заменим в zengine\classes\zsource\txt.php
static private $contentDir = 'content';
на
static private $contentDir = 'content/'.SITEID;

В zengine\classes\zcache.php

после
	public function __construct ($cachedir) {
Добавим строку
		$cachedir .= '/'.SITEID;

Zebrum Lite.

Кодеры проекта добавте возможность корректного управления такими сайтами в Zebrum CMS и у вас будет +1 покупатель :)

#2 support

support

    Активный участник

  • Главные администраторы
  • PipPipPip
  • 1 140 сообщений

Отправлено 07.11.2008, 09:57

Просмотр сообщенияD@nil (7.11.2008, 7:26) писал:

Почему удобно использовать?
Так как файлы едины их удобно обновлять, файлы не дублируются на хостинге для каждого сайта. изменили файлик - изменения сразу отобразились на всех сайтах.
Это реализуется использованием символических ссылок.

Просмотр сообщенияD@nil (7.11.2008, 7:26) писал:

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

Просмотр сообщенияD@nil (7.11.2008, 7:26) писал:

Как реализовать?
Добавим в начало index.php
define('SITEID', str_replace(array(':80','www.'),'',getenv('HTTP_HOST')));

Заменим в zengine\classes\zsource\txt.php
static private $contentDir = 'content';
на
static private $contentDir = 'content/'.SITEID;

В zengine\classes\zcache.php

после
	public function __construct ($cachedir) {
Добавим строку
		$cachedir .= '/'.SITEID;
Здесь не учитываются разные настройки для каждого из сайтов, разные изображения на страницах, создание папки для кэша каждого сайта.

Дополнительные минусы:
- привязка сайта к домену (указание папки сайта в папке content) усложнит установку системы для тех, кому не нужна данная возможность.
- перенос одного сайта на другой сервер становится проблемматичным.

Так же не забываем, что не желательно размещать много сайтов на одном IP, следовательно на одном хостинге желательно размещать не более 10-20 сайтов (если нет возможности использовать разные IP).

Просмотр сообщенияD@nil (7.11.2008, 7:26) писал:

Кодеры проекта добавте возможность корректного управления такими сайтами в Zebrum CMS и у вас будет +1 покупатель :)
Реализация данной поддержки в Zebrum CMS не является тривиальной задачей, а если смотреть на перспективы развития Zebrum Lite и Zebrum CMS, то может только оттянуть реализацию более важных задач.

Расстановка ссылок сразу со многих сайтов будет реализована в Zebrum CMS намного удобнее, тем более, что сайты могут располагаться на разных хостингах.

Zebrum Lite можно установить и на одном хостинг-аккаунте. Для этого нужно в корне сайта создать папки с названиями доменов и установить в них системы. В файле index.php каждого сайта нужно прописать следующий код (можно после 50-й строчки):

	define('ZENGINE_BASEURI', '/');

В корне сайта создать файл .htaccess следующего содержания (тестировал на Apache 2.2, но должно работать и на версии 1.3):

RewriteEngine on
RewriteCond %{DOCUMENT_ROOT}/%{HTTP_HOST} -d
RewriteRule (.*) /%{HTTP_HOST}/$1 [L]

Если требуется, то можно создать в корне сайта папку .zengine и в нее скопировать движок сайта, а на самих сайтах использовать символические ссылки. Опять же, если 304кб это очень много или изменения в движке происходят очень часто. Аналогичным образом можно поступить и со ссылками.

При таком подходе проблем с интеграцией сайтов в Zebrum CMS быть не должно (не тестировал).

#3 D@nil

D@nil

    Участник

  • Пользователи Zebrum CMS
  • PipPip
  • 15 сообщений

Отправлено 07.11.2008, 11:22

Цитата

Это реализуется использованием символических ссылок.
Опишите подробнее этот момент.

PS Ответьте на письмо на вашем email'е

#4 support

support

    Активный участник

  • Главные администраторы
  • PipPipPip
  • 1 140 сообщений

Отправлено 07.11.2008, 12:52

Просмотр сообщенияD@nil (7.11.2008, 14:22) писал:

Опишите подробнее этот момент.
Описание того, что это такое:
http://ru.wikipedia....

В unix для создания ссылки через шелл (ssh) выполняется команда:
ln -s /path/to/file /path/to/copy/file

В Windows либо через команды (см. вики), либо через Far Manager.

PHP можно использовать функцию symlink (работает и в Windows, в файловой системе NTFS):

Есть ещё жёсткие ссылки, но я предпочитаю символьные.

Просмотр сообщенияD@nil (7.11.2008, 14:22) писал:

PS Ответьте на письмо на вашем email'е
На Ваше письмо должны были ответить.

#5 gevak

gevak

    Участник

  • Пользователи Zebrum CMS
  • PipPip
  • 13 сообщений

Отправлено 19.11.2008, 15:41

Вопрос: как сделать поддержку мульсайтинга, как на HOSTcms:

Цитата

Поддержка нескольких сайтов

В отличие от конкурентов, HostCMS предлагает возможность создания различных сайтов, управляемых одним экземпляром системы управления. При разработке нескольких сайтов для одного клиента можно сэкономить значительные средства, приобретя один экземпляр HostCMS.

Экземпляр HostCMS должен быть установлен в одну директорию на сервере и работать с единой базой данных, все домены, поддерживаемые системой, должны ссылаться на эту директорию (быть алиасами). Раздел администрирования является общим для этих сайтов.

Правильно ли я понял, что это возможно? Если да, то:
1) Для этого нужно создать всего одну папку на хостинге и направлять все будщие домены туда?
2) В этой единственной папке нужно сделать ровно столько подпапок, сколько досенов направленно на папку?
3) В каждую подпапку залить экземпляр системы?
4) Если да, то как это будет все управлятся. При одновлении мне перезаливать все экземпляры? С какого сайта или домена я смогу управлять сатами? Я смогу управлять всеми сайтами с одного домена?

Объясните, пожалуйста, подробно этот момент. Если такая возможность мультисайтинга реализуема, то система будет мной куплена на этой неделе.

Заранее спасибо за ответ.

#6 support

support

    Активный участник

  • Главные администраторы
  • PipPipPip
  • 1 140 сообщений

Отправлено 19.11.2008, 17:40

Просмотр сообщенияgevak (19.11.2008, 18:41) писал:

Правильно ли я понял, что это возможно? Если да, то:
1) Для этого нужно создать всего одну папку на хостинге и направлять все будщие домены туда?
Да. Все домены будут ссылаться на одну и туже папку.

Просмотр сообщенияgevak (19.11.2008, 18:41) писал:

2) В этой единственной папке нужно сделать ровно столько подпапок, сколько досенов направленно на папку?
Да. В корне сайта создается файл .htaccess, который будет перенаправлять запросы на нужные папки (например, example.com).

Просмотр сообщенияgevak (19.11.2008, 18:41) писал:

3) В каждую подпапку залить экземпляр системы?
Да. В каждую подпапку нужно установить систему Zebrum Lite для обработки входящих запросов.

Рекомендую попробовать реализовать данный метод на Вашем сервере (могут потребоваться незначительные изменения указанного в качестве примера файла .htaccess), а заодно проверить опытным путем минимальные системные требования для работы Zebrum Lite. Для работы в этом режиме лучше всего подходит последняя версия Zebrum Lite 1.1 (в предыдущих версиях нужно будет делать небольшие изменения в файле index.php). В настройках движка нужно будет указать значение опции baseuri равной /:

baseuri = /

Просмотр сообщенияgevak (19.11.2008, 18:41) писал:

4) Если да, то как это будет все управлятся.
При одновлении мне перезаливать все экземпляры?
Если речь идет об управлении через Zebrum CMS, то после добавлении/изменении/удалении страниц/шаблонов/файлов на сайте в системе для обновления его в интернете достаточно нажать одну кнопку.

Просмотр сообщенияgevak (19.11.2008, 18:41) писал:

С какого сайта или домена я смогу управлять сатами? Я смогу управлять всеми сайтами с одного домена?
Система ZebrumCMS работает только с сайтами на движке Zebrum Lite и устанавливается в корень домена или поддомена - либо на локальной машине (например, используя сервер denwer), либо на сервере в интернете. В ZebrumCMS при работе с сайтами изменения вносятся в их локальную рабочую версию (все изменения можно посмотреть, перейдя на вкладку "Предпросмотр"). После внесения изменений их можно опубликовать (обновить версию сайта в интернете) нажав соответствующую кнопку.

Для обновления сайта в интернете указывается FTP доступ, путь к корню сайта по FTP и доменное имя, по которому он доступен. При обновлении сайта в интернете система сама осуществит соединение с FTP сервером, определит, какие страницы и файлы нужно закачать на сервер или удалить и произведет соответствующие действия. При этом будет выдан отчет о совершенных действиях. (Видео по подключению готового сайта к системе: http://blog.zebrum.r...s-video-attach/. Там показана старая версия, но принцип работы должен быть понятен.)

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

#7 gevak

gevak

    Участник

  • Пользователи Zebrum CMS
  • PipPip
  • 13 сообщений

Отправлено 19.11.2008, 18:05

support,
огромное спасибо за столь развернутый ответ. Можно еще вопросы:

1. Правильно ли я понимаю ситуацию: Zebrum Lite доступен для всех, но если сайтов много, то очень неплохо поставить Zebrum CMS. Или какие отличия CMS (платной) от ее лайт версии?

2. Если я в каждую подпаку залью лайт версию ситсетмы, то как мне обнавлять лайт версии? Или их можно обновить через основную систему (Zebrum CMS, которая и управляет всеми сайтами). Обновление всех версий лайт систем в подпапках будет произведено тоже с нажатия одной кнопки?

3. Как ставить большую CMS-версию на денвер - есть ли подробный FAQ?

Заранее спасибо за ответы.

#8 support

support

    Активный участник

  • Главные администраторы
  • PipPipPip
  • 1 140 сообщений

Отправлено 19.11.2008, 18:37

Просмотр сообщенияgevak (19.11.2008, 21:05) писал:

support,
огромное спасибо за столь развернутый ответ. Можно еще вопросы:

1. Правильно ли я понимаю ситуацию: Zebrum Lite доступен для всех, но если сайтов много, то очень неплохо поставить Zebrum CMS. Или какие отличия CMS (платной) от ее лайт версии?
Zebrum Lite - это бесплатный движок для сайтов и в нем нет админки. Zebrum CMS - это административная панель управления большим количеством сайтов, которые работают на движке Zebrum Lite.

Просмотр сообщенияgevak (19.11.2008, 21:05) писал:

2. Если я в каждую подпаку залью лайт версию ситсетмы, то как мне обнавлять лайт версии? Или их можно обновить через основную систему (Zebrum CMS, которая и управляет всеми сайтами).
Пожалуйста, посмотрите видео: http://blog.zebrum.r...s-video-attach/

Просмотр сообщенияgevak (19.11.2008, 21:05) писал:

Обновление всех версий лайт систем в подпапках будет произведено тоже с нажатия одной кнопки?
На сегодняшний день для каждого сайта нужно будет нажать на кнопку. В дальнейшем будет одна "большая" кнопка - "опубликовать изменения на всех сайтах".

Просмотр сообщенияgevak (19.11.2008, 21:05) писал:

3. Как ставить большую CMS-версию на денвер - есть ли подробный FAQ?
Пожалуйста, посмотрите видео: http://blog.zebrum.r...m-cms-na-local/

#9 gevak

gevak

    Участник

  • Пользователи Zebrum CMS
  • PipPip
  • 13 сообщений

Отправлено 19.11.2008, 18:41

support,
спасибо. пошел оформлять кредит на покупку. обещаю если куплю и все получится написать ФАК для таких как я про то, как правильно направить все домены на одну папку.

#10 gevak

gevak

    Участник

  • Пользователи Zebrum CMS
  • PipPip
  • 13 сообщений

Отправлено 13.01.2009, 15:05

Не получается. Что я делаю не так?

1. Создаю папку на сервере. Называю ее zebrum. В этой папке есть папка public_html. В папке public_html есть папка cgi-bin с файлом php4.cgi, который я оставляю.

2. Далее я создаю в папке public_html три папки, например site1, site2, site3. В каждую эту папку заливаю по экземпляру системы (без изменений).

3. Далее захожу в каждую эту папку и изменяю файл index.php, добавляя в его самый конец такой код (во все папки одинаковый):
define('ZENGINE_BASEURI', '/');
Пи этом другой код не трогаю вообще.

4. После этого в папках site1, site2, site3 редактирую файл .htaccess добавляя в его конец следующий код (во все папки одинаковый):
RewriteCond %{DOCUMENT_ROOT}/%{HTTP_HOST} -d
RewriteRule (.*) /%{HTTP_HOST}/$1 [L]
При этом то, что было в этом файле до этого не трогаю, а именно:
RewriteEngine on

RewriteCond %{SCRIPT_FILENAME} !\.(jpg|gif|png|css|js|php|zip|rar|html)$ [OR]
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !robots.txt
RewriteCond %{SCRIPT_FILENAME} !favicon.ico
RewriteRule .* index.php

5. После этого в браузеру ввожу адреса сайтов - ни один не отвечает.

#11 gevak

gevak

    Участник

  • Пользователи Zebrum CMS
  • PipPip
  • 13 сообщений

Отправлено 13.01.2009, 15:25

При этом пробовал на папку zebrum в папку public_html направить всего один домен и заливал один экземпляр систему непосредственно (без папки site1). Без всяких изменений - все работало хорошо.

#12 gevak

gevak

    Участник

  • Пользователи Zebrum CMS
  • PipPip
  • 13 сообщений

Отправлено 13.01.2009, 17:03

Неужели никто так и не ответит?(
Возможно нужно как то изменить то, что записывается в файл .htaccess или у меня порядок действий не тот?

#13 gevak

gevak

    Участник

  • Пользователи Zebrum CMS
  • PipPip
  • 13 сообщений

Отправлено 13.01.2009, 18:48

Так! Понял уже свою первую ошибку. Я зря правил файлы index.php
Вместо этого я должен был править файл config.ini и там ставить
baseuri = /
Правильно ли я понял? Т.к. все изменил (я о том, что говорю в этом сообщении) и все равно ничего не работает.
Надо ли ставить
baseuri = /
или же надо ставить
baseuri = /site1/
?

#14 support

support

    Активный участник

  • Главные администраторы
  • PipPipPip
  • 1 140 сообщений

Отправлено 14.01.2009, 06:55

Просмотр сообщенияgevak (13.1.2009, 21:48) писал:

Так! Понял уже свою первую ошибку. Я зря правил файлы index.php
Вместо этого я должен был править файл config.ini и там ставить
baseuri = /
Правильно ли я понял? Т.к. все изменил (я о том, что говорю в этом сообщении) и все равно ничего не работает.
Надо ли ставить
baseuri = /
или же надо ставить
baseuri = /site1/
?
В baseuri можно указывать слеш во время настройки. Zebrum CMS прописывает слеш автоматически.
Я ответил по почте на Ваше письмо.




Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 скрытых пользователей