Решение нашлось, понадобится добавить лишь несколько строчек кода, об этом ниже)
В принципе, я подготовил архив с уже подредактированными файлами – они для версии 2.5.1. Необходимо просто закинуть на хостинг, заменив имеющиеся. Файл можно скачать здесь: cloud.mail.ru/public/HSSo/xvgxtdPEs
\system\controllers\admin\actions\install_ftp.php
\system\core\config.php
Добавится один новый – \system\config\domen.config.php
Принцип работы прост: при заходе с разных доменов на сайт, CMS подключается к разным базам данных, либо той же, но с другими настройками (какие — укажете при установке). Обо всём подробнее ниже.
Добавляемые строки кода
$file = 'config.php';
$file = $_SERVER['HTTP_HOST'] . '-config.php';
public function getDomenConfig(){ //require_once('domen.config.php'); include('system/config/domen.config.php'); return $cfg_file; }
$cfg_file='config.php'; $cfg_file = self::getDomenConfig();
'system/config' => 'config.php'
'system/config' => $cfg_file
Добавляется новая функция:
public function getDomenConfig(){ //require_once('domen.config.php'); include('system/config/domen.config.php'); return $cfg_file; }
$cfg_file = self::getDomenConfig();
Здесь прописаны переменная и правило:
$cfg_file='config.php'; if($_SERVER[HTTP_HOST] == 'mysite.ru') { $cfg_file='config.php'; }
Внимание! Прежде чем продолжить работу над сайтом, необходимо изменить доменное имя "mysite.ru" на имя вашего первого (основного) домена!
Все изменения сопровождаются комментариями в самих файлах.
В общем-то ни чего сложного нет, как видите. Этот способ был опробованы на версиях 2.4.0 и 2.5.1 – всё отлично работает!
Установка
Рекомендую производить установку первого сайта обычным образом, с применением стандартной сборки CMS. Иначе, если вы замените файлы до установки первого (основного) сайта, необходимо будет подредактировать следующие файлы:
if($_SERVER[HTTP_HOST] == 'your-domen.ru') { $cfg_file='your-domen.ru-config.php'; }
if($_SERVER[HTTP_HOST] == 'mysite.ru') { $cfg_file='config.php'; }
Далее заменяем в строке
if($_SERVER[HTTP_HOST] == 'mysite.ru') { $cfg_file='config.php'; }
\system\config\your-domen.ru-config.php — заменяем имя файла на "config.php" (ПС. Здесь "your-domen.ru" — имя домена, с которого вы производили установку первого (основного) сайта).
После того, как вы закончили с установкой первого сайта, можно подходить к установке второго, и последующих – процедура установки каждого следующего сайта, начиная со второго, одинакова:
1. Заходим на нужный нам домен (например, "site2.ru"), добавляем через слеш название папки инсталляции (например, так: "site2.ru/install"), переходим по получившемуся адресу;
2. Здесь вполне стандартная установка, кроме двух пунктов:
– на вкладке, где указываем расположение кэша и загружаемых файлов, желательно (не обязательно) указать другое расположение, и скопировать туда соответствующие предустановленные папки ("cache" и "upload");
– на вкладке, где прописываем базу данных и префикс, мы должны указать другую базу данных, либо префикс – иначе оба ваших сайта будут работать с одними и теми же данными.
3. Радуемся)
Комментарии и замечания
Во время установки второго сайта на первой вкладке я менял названия папок следующим образом: "\cache" на "\cache_domen-name", "\upload" на "\upload_domen-name". На второй вкладке я исправлял только префикс с "cms_" на "cms_domen-name_", базу данных я оставлял прежней. Здесь важное замечание: ни когда не пишите префиксы с точками, например так: "cms_site2.ru_" – работать не будет, проверенно!Cron не работает, увы.
PHP Warning: include(): Failed opening 'system/config/domen.config.php' for inclusion (include_path='.:/opt/php53/share/pear:/usr/share/pear') in /home/x/мой_логин_на_хостинге/папка_сайта/public_html/system/core/config.php on line 50 PHP Warning: include(): Failed opening 'system/config/domen.config.php' for inclusion (include_path='.:/opt/php53/share/pear:/usr/share/pear') in /home/x/мой_логин_на_хостинге/папка_сайта/public_html/system/core/config.php on line 50 PHP Warning: include(): Failed opening '/home/x/мой_логин_на_хостинге/папка_сайта/public_html/system/config/' for inclusion (include_path='.:/opt/php53/share/pear:/usr/share/pear') in /home/x/мой_логин_на_хостинге/папка_сайта/public_html/system/core/config.php on line 168
Обновлять не пробовал. ИМХО, это возможно, но производить обновление придётся в обязательном порядке для каждого "внутреннего сайта", ни кого не упуская, так как системные (основные) файлы у них у всех будут одни и теже.