Как в PHP реализовать схему: несколько поддоменов — один движок — к каждому поддомену своя база данных?

Уважаемые! Прошу помощи.

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

Вопрос: Как можно настроить сервер или движок так, чтобы все поддомены работали на одном движке и с разной базой данных? Хотя бы направьте пожалуйста, как это называется?
  • Вопрос задан
  • 1618 просмотров
Решения вопроса 1
@kazsat Автор вопроса
Оказывается это называется алиасами. Когда осуществляется заход через поддомены, парсим через $_SERVER['SERVER_NAME'] и дальше соответственно подключать базы данных :) Спасибо за помощь
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 5
kgnk
@kgnk
Разрабатываю сайты, рисую интерфейсы
Настраиваешь виртуальные хосты, в php дописываешь пару строк на подключение к базе данных в зависимости от хоста.
Ответ написан
Комментировать
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
Если субдоменов ограниченное и не увеличивающееся количество - добавляете субдомены, прописываете им папку движка как документ рут, в движке определяете какой поддомен загружен(по урл), грузите соответствующие настройки бд.
Для "пакетного" добавления - cname на основной домен (маска *.domen.tld), в апаче прописать надо поддоменные алиасы, точно не помню строчку, легко ищется гуглом. База так же грузится в зависимости от поддомена, ну тут уже логику сами придумывайте, по поддомену префикс делать там например..
Ответ написан
Комментировать
vesper-bot
@vesper-bot
Любитель файрволлов
Запихать весь движок в папку скажем core, а в vhost'ах её алиасить на один и тот же физический путь. В итоге конфиги у каждого поддомена свои, а движок общий.
Ответ написан
Комментировать
@kuftachev
Если вопрос только про бд, то можно парсить url и на основании него подключать бд обычным switch. Если там какой-то фреймворк, то могут быть более элегантные решения.
Ответ написан
Комментировать
Arris
@Arris
Сапиенсы учатся, играя.
Ваши поддомены - это отдельные папки (виртуальных хостов), так?

Допустим, файлы движка у вас лежат в /var/www/host1/core/, а конфиги сайта (подключение к БД и прочее) в /var/www/host1/config

Перекладываем код движка куда-нибудь в /var/www/my_engine_core/ и создаем символьные ссылки

Если мне не изменяет память, должно быть что-то вроде

ln -s -T /var/www/my_engine_core/ /var/www/host1/core/
ln -s -T /var/www/my_engine_core/ /var/www/host2/core/

etc

Ну конечно еще надо права доступа правильно настроить, владельцев папок и так далее.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы