мультисайтовость

зверек

Новичок
есть несколько сайтов организации, работающих на самописной cms. Сайты простые, cms полностью удовлетворяет все потребности. Но сейчас cms стоит на каждом сайте. Хочется чтобы все сайты работали на одном движке. Грубо говоря, заходим на админку основного сайта и выбираем из списка сайт, с которым работать и подгружается рубрикатор и прочие модули админки именно выбранного сайта.

например есть site.ru на котором как я понимаю будет общая БД и файлы админки.
И есть site1.ru, site2.ru и st.site.ru (то есть как отдельные домены, так и поддомены). Вот как заставить их все работать с файлами админки основного сайта?

Буду признателен за алгоритм действий. Или может кто расскажет как это устроено в современных крупных cms.
 

WMix

герр M:)ller
Партнер клуба
а простой frame не решает проблему?, на крайний случай страничка с линками....
проблемы с входом будут (придется в каждой админке заного вводить пароль), это решается переписыванием всех сайтов.
 

зверек

Новичок
Если надо переписать - перепишем. Сайты простые, ничего сложного там нет. Но изменения вносятся на них часто и очень утомительно входить в 10 админок, 10 раз набирать разный логин-пароль и прочее.
Фрейм - не понял, как фрейм решит проблему? Сайты лежат на разных доменах и поддоменах (хостер один). Индексируются поисковиками... Это и должно так остаться.
Просто надо понять как сделать так, чтобы при заходе на site1.ru использовалась БД и файлы админки, которые лежат на site.ru
 

hell0w0rd

Продвинутый новичок
Я думаю, что вам нужен пункт синхронизации. То есть база/файлы, все что надо. И научить админку к ней коннектиться.
Ну а дальше все, что хотите - синхронизация баз, обновления, работа с файлами и тд и тп.
 

hell0w0rd

Продвинутый новичок
Так вот я и хочу понять как это сделать.... В деталях.
Что как делать? Ну есть основной сервер, у него есть ftp доступ для файлов и доступ до базы из интернета. Если нет - открыть, желательно на нестандартных портах.
А теперь стучитесь в базу из своей админки.
Допустим у вас обновилась статья на каком-то из сайтов. Отсылаете изменения в копию базы, а в таблицу очередей задач ставите это изменение. Раз в 10 минут на всех сайтах поставить cron задачу стучаться к серверу и забирать изменения. Возможно чего-то не учел, но общий принцип такой)
 

зверек

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

hell0w0rd

Продвинутый новичок
а если нужно срочно что-то поставить? нет, вариант с кроном не подходит. Нужна возможность зайдя в админку выбрать из селекта сайт. при этом будет подгружен рубрикатор именно этого сайта и все прочие модули админки для этого сайта. Внес изменения, потом выбрал из списка другой сайт - подгрузился контент другого сайта... и т.д. Вот такое хочется замутить.
У вас две разные задачи:
1 - править контент 1 раз для всех сайтов сразу
2 - быстро переключаться между админками.
Вам в любом случае нужна 1 база, что вы и как в ней настроите - зависит от ваших задач.
Относительно последнего - вам нужна авторизация через 1 бд вот и все
 

зверек

Новичок
править контент один раз для всех сайтов сразу не стоит. Сайты разные и контент у них разный.
Задача править контент для нужного сайта через одну админку, просто выбрав в админке нужный сайт.
Тот факт что нужна общая база я понял.
Не могу понять, как при заходе на site1.ru заставить использовать БД и файлы админки, которые находятся на site.ru
 

WMix

герр M:)ller
Партнер клуба
1. нарисовать фрайм меню всех сайтов. так чтобы по клику в соседний фрайм подгружалась админка выбранного сайта. (таким образом имеем меню всех сайтов)
2. заменить в каждом сайте способ аутификации на к примеру http://openid.net/ - пароль вводим всего 1 раз
 

зверек

Новичок
1. я зашел в админку сайта site.ru
2. выбрал из списка сайт site1.ru
3. подгрузился рубрикатор сайта site1.ru (допустим таблицы в БД имеют префикс соответвующего домена)
4. изменил инфу.
5. зашел на сайт site1.ru и хочу видеть здесь измененную инфу.

я не понял, как тут с фреймами что делать?
 

hell0w0rd

Продвинутый новичок
У вас не получится везде использовать 1 систему на хостинге.
Либо берите vds, либо на всех прийдется обновиться.
И вы точно понимаете что делает фрейм? Окно в окне и все такое?
 

WMix

герр M:)ller
Партнер клуба
PHP:
<html>
<head>
<title>СУПЕР АДМИНКА<title>
</head>
<frameset cols = "25%, *">
  <frame src ="МЕНЮ_ВСЕХ_САЙТОВ.html" name="menu" />
  <frame src ="ЧТО_УГОДНО.html" name="admin" />
</frameset>
</html>
МЕНЮ_ВСЕХ_САЙТОВ.html
PHP:
<a href="http://site1.ru/admin" target="admin">site1</a> ...
 

Фанат

oncle terrible
Команда форума
WMix
Неоптимальность размножения одной и той же кодовой базы все равно останется

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

Останется только разрулить файлы, примерно таким же способом. причем большую часть работты на себя возьмут рерайт рули
 

WMix

герр M:)ller
Партнер клуба
я думал о том, что чаще всего хостеры закрывают достуб к базе из не локальных сетей.
 

зверек

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