Создание приложения SaaS на платформе Zend Framework


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

User_name.pms.com

Имя_пользователя - Имя пользователя, выбранное при регистрации пользователя в Системе управления проектами (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 ?

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

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

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

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

Очень важно:

Важно 1:

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

Т.Е. "имя пользователя 1.pms/контакт" будет обслуживаться с pms.com/contact но в адресной строке мы все еще видим URL-адрес "имя_пользователя 1.pms/контакт"

Важно 2:

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

Еще один вопрос о перенаправлении пользовательского домена:

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

Вариант (а): "pms.com " Вариант (b): "site1.pms.com

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

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

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

Author: Web_Developer, 2012-03-19

2 answers

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

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

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

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

 0
Author: PHP Developer, 2012-05-31 13:48:06

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

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

  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, вероятно, является правильным выбором, направляя его на поддомен, но вам все равно придется узнать о виртуальных хостах и о том, как правильно их настроить, чтобы все работало.

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

 1
Author: Jason, 2012-03-19 13:27:00