Создание приложения SaaS в CodeIgniter, такого как Shopify, с пользовательским псевдонимом домена


Я работаю над приложением SaaS. Мы берем Shopify/Magento Go и т.д. в качестве ссылки.

  • Я использовал PHP-фреймворк CodeIgniter.
  • Методология SaaS - Несколько баз данных, одна база кода

Наша архитектура SaaS выглядит следующим образом:

SaaS Architecture

  • когда клиент регистрируется, база данных создается с его именем и содержит его конкретные базы данных.
  • когда клиент регистрируется, он получает поддомен (например: test1.example.com)
  • В клиент может добавить свой собственный домен, который указывает на определенный системой поддомен. (Например: test1.example.com чтобы www.mydomain.com )

Как достичь этой функциональности?

Author: halfer, 2015-01-29

3 answers

Для этого вам нужно пройти несколько вариантов конфигурации.

  1. Настройка DNS: Создайте поддомен с помощью *. (попросите вашего хоста)
  2. Вам необходимо настроить apache или .htaccess, чтобы все запросы, поступающие в ваш домен, указывали на один и тот же каталог.
  3. Настройка базы данных: Попробуйте узнать, как использовать несколько баз данных в codeigniter.

Вот и все. Наслаждайтесь!

 1
Author: , 2015-01-29 14:35:36

Я думаю, что вам следует поискать термин: "многопользовательское приложение codeigniter", и, как было сказано ранее, управление слишком большим количеством баз данных не является решением!

 0
Author: med elhadi khedim, 2017-11-11 10:30:21

Вы можете реализовать предлагаемое приложение SAAS таким образом,

Будет 1 база данных для самого приложения и еще N баз данных для клиентов, у каждого нового клиента будет новая база данных.

  • Разрешите регистрацию своим клиентам, запросив основные сведения + поддомен для выбора, как это делают пользователи, поддомены, занятые существующими клиентами, не будут разрешены для повторного использования
  • Когда клиент успешно зарегистрируется, будет создана одна отдельная база данных, и они попадут на свою панель мониторинга. Здесь один сервер БД подойдет, но у него должно быть достаточно места и другой набор параметров для обработки нескольких баз данных.
  • Теперь на dahsboard и далее пользователь сможет видеть список функций для использования вместе с некоторым предопределенным набором контента, который будет совместно использоваться пользователем и загружаться из "базы данных приложений". Все, что они добавят, будет отправлено в их собственную независимую базу данных
  • Здесь кодовая база будет развернута на одном сервере кода, и основной домен будет сопоставлен с ним, поэтому вход/регистрация и т. Д. Будут происходить здесь и идентификация пользователя будет происходить на уровне входа в систему.

База данных приложений: Эта база данных будет отвечать за хранение основных данных уровня приложения, т.Е. Профиля клиента + регистрационных данных, других материалов, связанных с администратором, которыми они хотели поделиться со своими клиентами. В случае приложения типа shopify темы, макет, шаблоны могут быть основными материалами, которые будут храниться в этой базе данных.

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

Примечание: Если это платная услуга, то вы можете использовать хороший платежный шлюз, такой как stripe или chargebee, для управления всеми вашими планами, подписками, уведомлениями по электронной почте, уведомлениями, журналом платежей, успешными/неудачными платежами, счетами-фактурами оплаты.

ЧТО касается концепции поддоменов и пользовательских доменов, вы можете сделать это с помощью механизма виртуального хостинга, вы можете сделать это с помощью apache, а также сервера nginx. - Поддомен: Создайте конфигурационные файлы в соответствии с сервером, установите соответствующий место и любой созданный поддомен будут привязаны к определенному физическому виртуальному каталогу - Customdomain: Можно создать физический каталог, такой же, как поддомен, вместе с файлами конфигурации, но в этом случае вам нужно будет попросить вашего клиента выполнить привязку DNS с нашим IP-адресом

В обоих случаях, когда запрос поступает на наш сервер, сервер проверяет, доступны ли файл конфигурации и физический каталог, после чего перенаправляет пользователя на destiny forlder.

 0
Author: Sonal Khunt, 2018-07-04 09:31:58