[REVO] Выносим админку на субдомен

Если честно, я пока не нашел практического применения этой фишке. Как вариант — таким образом можно решить конфликт ISPManager. В документации описано как можно перенести папку manager. Также там сказано, что имеется возможность вынести админку на субдомен, однако описания этого процесса нет. Я решил восполнить этот пробел.

Для начала условимся что файл конфирурации в папке core трогать не будем, также не будем вобще трогать начальные папки manager и connectors — это для подстраховки.

И так, допустим у нас такая структура папок:

/home/
     /core/
     /manager/
             /connectors/
             /config.core.php
             /index.php
     /www/
         /assets/
         /config.core.php
         /index.php


У нас есть сайт site.ru, мы хотим админку на manager.site.ru (или mgr.site.ru или secretroom.site.ru и т.д)

Для начала отключим compress_js и compress_css
Затем правим файл /home/manager/config.core.php:

<?php
define('MODX_CONFIG_KEY', 'config');
define('MODX_CORE_PATH', dirname(dirname(__FILE__)) . '/core/');
define('MODX_CONNECTORS_PATH', dirname(__FILE__) . '/connectors/');
define('MODX_CONNECTORS_URL', '/connectors/');
define('MODX_MANAGER_PATH', str_replace('\\', '/', dirname(__FILE__)) . '/');
define('MODX_MANAGER_URL', '/');
define('MODX_SITE_URL', 'http://site.ru/');
define('MODX_ASSETS_PATH', dirname(dirname(__FILE__)) . '/www/assets/');
define('MODX_ASSETS_URL', MODX_SITE_URL . 'assets/');
?>


Желательно указать абсолютные пути к папкам. В качестве MODX_SITE_URL указываем url своего сайта.

Далее правим файл /home/manager/connecors/config.core.php:
<?php
define('MODX_CONFIG_KEY', 'config');
define('MODX_CORE_PATH', dirname(dirname(dirname(__FILE__))) . '/core/');
define('MODX_MANAGER_PATH', dirname(dirname(__FILE__)) . '/');
define('MODX_MANAGER_URL', '/');
?>


Теперь админка должна заработать по адресу manager.site.ru. Старая админка конечно же тоже будет работать.

Теперь о плохом. Компоненты, имеющие свои панели, работать не будут. Проблема в том, что js-файлы и коннекторы компонентов обычно неверно располагают в /assets/components/, что конечно же неправильно. Ибо что js-файлы, что коннекторы должны располагаться в том контексте, в котором предполагается их использовать. Тоесть js-файлы должны быть в {manager_path}assets/components/ а коннекторы в {connectors_path}components.

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

5 комментариев

avatar
С учетом что в REVO и так можно переименовать папку manager ) то да вариант для совсем жестко спрятать )
avatar
а для чего её выносить на субдомен?
Я к примеру просто, переименовал папку manger на любое название и поправил в конфиге две строчки и всё. ( как пример like.artdevue.com/virus/ ) :)
Можно попробовать укстанавливать не Traditional а Advanced версию, там при установке вы всё выносите, и менеджер и конекторы…
avatar
а для чего её выносить на субдомен
Так я ж написал — не знаю пока :)

У меня в doc-root'е осталась только одинокая папка /assets/ да index.php с config.core.php
avatar
а для чего её выносить на субдомен?
Процесс вынесения админки на поддомен же ничем не отличается от вынесения админки на другой домен. Верно? Тогда допустим мы имеем 1 инсталляцию и N визиток на ней. У каждой визитки свои менеджеры. Но чтобы не палить соседние сайты и чтобы менеджер не удалил лишка по фтп — выносим админку на другой домен, а в корне сайта оставляем только index.php и config.core.php
Так и бекапы файлов конкретных сайтов делать проще…
avatar
Я кстати немного экспериментировал на днях. Пытался заставить работать несколько разных инсталляций modx на одном «ядре», то-есть с одной общей папкой core.

Почти получилось. Но необходимы некоторые правки в ядре и расширениях, я еще поработаю над этим. Проблема в папке core/components, этот путь во многих местах прописан жестко, и только в одном месте идет обращение сначала к опции components_path.

Одна из «особенностей» такой схемы — общий набор загруженных (еще не установленных) пакетов, так как папка core/packages общая. А значит возможно могут возникнуть коллизии.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.