Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Многосайтовая реализация CMS\CMF
Форумы портала PHP.SU » » CMS и фреймворки » Многосайтовая реализация CMS\CMF

Страниц (1): [1]
 

1. virus_forever - 19 Ноября, 2013 - 13:36:04 - перейти к сообщению
Доброго времени суток!

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

На каждом из сайтов используется "своя" система, делал попытки сделать с нуля.
Эта самая система очень простая, содержит только нужный здесь и сейчас код.
Все работает!
Все что от них требуется сейчас, они выполняют на 100%. Более того, скрипты написаны с пониманием происходящего, хорошо подошел к безопасности.

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

И вот пришло время...
Пришло время для реорганизации всего и вся. Кое какие-программы устарели окончательно и бесповоротно.
Есть планы по созданию сервера учетных записей, сервера авторизации, отдельного сервера обновлений, сервера загрузок, сервера приема платежей (биллинг).
Планы, конечно, "Наполеоновские" - но не об этом разговор.

Все эти сервера\сервисы\сайты так или иначе будут использовать один и тот-же (подобный) код.

Я решил делать свою CMS \ CMF
как и сотни и тысячи других программистов взявшихся за PHP

Предпосылки:
-Хочу перейти на PHP 5.4. Хостер дает такую возможность - почему бы и нет, тем более в отличии от PHP 5.2, достаточно изменений в производительности и безопасности.
-Хочу полностью перейти на UTF-8
-Хочу мультиязычность
-Хочу поддержку пользователей и многосайтовую авторизацию.
-Хочу админку (Да да, до сих пор я пользовался phpMyAdmin + узкоспециализированными самописныеми программами.
-Хочу онлайн продажу своих настоящих и готовящихся к выходу проектов.
-Хочу резервное копирование бд с отправкой на почту (ох как было не по себе, когда денег заплатить за хостинг не было, вот вот было бы удаление учетной записи вместе со всеми данными - а без оплаты нет доступа к файлам и бд).

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

Я тут подумал, не плохо бы...
В целом, для начала, оформить все в виде определенного набора компонентов, подобно .Net Framework (да, в Windows я его презираю, в виду определенных причин. Но это отдельный разговор).

И сама собой сложилась вот что:
-Хочу поддержку многосайтовости.

Проблема
Проблема в том, что я совсем на данный момент, не имею представления об общих методах и принципах реализации многосайтовости.

Не видел ,доступных для изучения, (free\nulled) CMF или CMS с такой возможностью.

Может быть...
Может быть поделитесь со мной своими мыслями по данной теме?

"Сайты" должны иметь возможность использовать "общие" компоненты или свои.
Эти самые компоненты должны иметь возможность использовать "общие" данные, так и свои.
(Тут речь идет о таблицах, в пределах одной базы данных - с разными преффиксами или без. Очень грубо говоря, таблица с "сессиями" - одна для всех; а таблица с "новостями" - каждая на свой сайт).

Разумеется настройки сайта, компонентов, кеш и прочее...

Может быть есть какие-то не сильно замудренные, доступные для изучения, скрипты?

Может быть есть какие-то мануалы?
2. caballero - 19 Ноября, 2013 - 13:45:31 - перейти к сообщению
многосайтовость на самом деле нужна довольно редко
с этим больше хлопот чем пользы
3. Ch_chov - 19 Ноября, 2013 - 14:38:06 - перейти к сообщению
В настройках сервера создайте несколько хостов с одним общим DocumentRoot. А дальше все зависит от ваших потребностей и от возможностей вашей CMS. Все что нужно сделать "мультисайтовым" должно быть обозначено в конфигурации (не в коде). Например, в случае с таблицей новостей, можно создать в конфиге опцию news_table и переключать её в зависимости от текущего урла. Либо, если у вас используется какой то свой класс для работы с БД, можно с помощью префиксов переключать таблицы автоматически. Лучше всего для каждого сайта подключать свой конфигурационный файл, который будет переопределять опции из файла по умолчанию.
Например:
default.ini - подключается всегда
site1.ini - подключается только для site1
site2.ini - подключается только для site2

Если сайтов много, то возможно потребуется создать дополнительный интерфейс в админке для пакетной работы с сайтами.
Для общей авторизации может понадобится устанавливать корректный cookie_domain.
4. Zuldek - 19 Ноября, 2013 - 15:00:04 - перейти к сообщению
Цитата:
хорошо подошел к безопасности.

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

Улыбка
По теме. Берите Zend и делайте с ним что вам нужно чтобы избежать повторного изобретения велосипедов.

 

Powered by ExBB FM 1.0 RC1