Создание приложения SaaS на Zend Framework - PullRequest
2 голосов
/ 19 марта 2012

Я нахожусь на пути к созданию SaaS-приложения с использованием Zend Framework на PHP.Вот основная информация о проекте.Система управления проектами по модели SaaS.Когда пользователь регистрируется на сайте, он получает доменное имя в формате:

user_name.pms.com

user_name - выбранное имя пользователя, когда пользователь зарегистрирован в системе управления проектами.(pms)

pms.com - основной SaaS-сервер.

В настоящее время мы предоставляем субдомен на нашем сервере.А для крупных фирм это выглядит не очень хорошо, и они могут предпочесть получить собственный домен вместо этого по умолчанию.Таким образом, может быть:

user_name.pms.com [Всегда присутствует]

user1.com [Пользовательский или независимый домен пользователя] Этот пользовательский домен должен быть связан с URL-адресом пользователя по умолчанию,

Полный веб-сайт планируется разработать с использованием Zend Framework.

В Zend Framework у нас есть следующий HTAccess в корневой папке для его работы, и он находится ниже:

SetEnv APPLICATION_ENV development
RewriteEngine On
RewriteRule .* index.php

Вот мои вопросы:

  1. Нужно ли создавать субдомен, подобный URL-адресу профиля для всех пользователей после их регистрации на сайте?

  2. Если необходимо создать поддомены, может ли PHP проверить, существуют ли выбранные поддомены и может ли создавать поддомены из самого сценария?

  3. Если нет необходимости во вспомогательном домене, можем ли мы достичь той же цели, используя HTAccess в Zend Installation?

  4. Можете ли вы предоставить код доступа HT, который выполняет следующие действия:

"user_name1.pms.com" необходимо перенаправить на "pms.com"

"user_name1.pms.com/contact" нужно перенаправить на "pms.com/contact "

, т. е. любой запрос к субдомену, например URL, должен перенаправляться на основной веб-сайт в формате: pms.com, за которым следует строка запроса.

Очень важно:

Важно1:

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

т.е. "user_name1.pms / contact" будет обслуживаться с pms.com/contact, но в адресной строке мы все еще видим URL "user_name1.pms / contact"

Важно 2:

Всякий раз, когда мы используем HTAccess для перенаправления запроса на главный Zend Server, могу ли я определить фактический URL-адрес, введенный в адресную строку, например, "site1.pms or site1.com"?

Другой вопросПеренаправление пользовательского домена:

Имя пользовательского домена, например "site1.com" или "site2.com", необходимо перенаправить на:

Option (a): параметр "pms.com"(b): "site1.pms.com

для обслуживания запроса. Здесь также мне нужно сохранить URL-адрес в адресной строке таким же, как введенный пользователем.

  1. Какой из указанных выше вариантов лучше (а) или (б)?

  2. Какая технология работает, сопоставление доменов или CName? Или любая другая технология для обеспечения этой работы.

Ответы [ 2 ]

1 голос
/ 19 марта 2012

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

Прежде всего, ваши вопросы:

  1. Вам может необходимо фактически настроить целый виртуальный хост для каждого пользователя, если вы хотите, чтобы они могли взаимодействовать с вашим сайтом через собственный домен. Если вы просто хотите, чтобы они перенаправили свой домен на ваш, что можно сделать у их регистратора (и если они могут успешно использовать маскирование, что я всегда считал проблематичным, это может работать полностью без этого. Если вы игнорируете пользовательский домен требования, то вы можете полностью управлять поддоменами через mod_rewrite без необходимости их фактической настройки.
  2. Вероятно, лучшая архитектура для вашего сайта - это упреждающая настройка того, что необходимо настроить в момент регистрации пользователя. Не пытайтесь делать это «вовремя», когда пользователь впервые пытается получить к нему доступ, и поэтому это так же просто, как отображать ошибку, когда кто-то, скажем, вводит usre.pms.com, а не user.pms.com .
  3. Вы можете использовать htaccess или конфигурационный файл для вашего сайта (что лучше для производительности, но строго для целей «работы», htaccess будет работать нормально).
  4. Google

Очень важный момент # 1: так работает mod_rewrite. Не волнуйтесь. Очень важный момент # 2: да, если вы включаете эту информацию в правило mod_rewrite

Ваш последний вопрос о перенаправлении пользовательских доменов:

Здесь все усложняется. Вы не можете обслуживать site1.com с pms.com, если apache не будет полностью осведомлен о том, что он ищет site1.com (если только у вас нет переадресации с маскировкой для работы без проблем у регистратора). Вообще говоря, если вы используете переадресацию какого-то рода, то вы хотите, чтобы они переадресовывали на поддомен, и все будет хорошо через mod_rewrite. Если они направляют домен прямо на ваш сервер, запись CNAME, вероятно, является правильным выбором, направляя на поддомен, но вам все равно придется узнать о виртуальных хостах и ​​о том, как правильно настроить их, чтобы все работало.

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

0 голосов
/ 31 мая 2012

Субдомены могут обрабатываться с использованием некоторой техники в CPanel. Чтобы добавить виртуальные субдомены из CPanel, выполните следующие действия:

  1. Выберите "CPanel - Поддомены"
  2. Введите звездочку и выберите ваше доменное имя
  3. Выберите каталог, в который нужно перенаправить

И обработайте перенаправление со своей страницы.

Чтобы разработать SaaS-приложение с использованием Zend, ознакомьтесь с руководством Разработка SaaS-приложения с использованием PHP в Zend Framework

...