Николай Ланец
13 авг. 2013 г., 15:17

Программирование нескольких сайтов в админке одного сайта с помощью modxSDK

В прошлом своем топике я писал про интересный хостинг digitalocean.com (кстати, сразу скажу, что у меня нет на этом хостинге никакой партнерки и не буду заводить, так что не сочтите за платную рекламу). И еще момент: про этот хостинг рассказал один из далеко не самых последних в MODX-е людей;-) И как я говорил уже, хоть modxcloud и вернулся обратно в MODX, тем не менее нет цели сделать так, чтобы все MODX-еры хостились только там. Постепенно будут появляться и другие хостеры, которые будут предоставлять этот же сервис. Не скрою, что и у меня есть свое определенное видение на этот счет. А пока же digitalocean.com для меня — это просто дешевый VDS для своих экспериментов.
Так вот, хотел бы я рассказать про такой вот эксперимент: на modxcloud.com все хорошо, но есть моменты очень ограничивающие. Один из таких моментов — изолированность сайтов. Вы не можете обратиться к файловой системе одного сайта из другого сайта. А вот здесь собственной сервер, что хотим, то и делаем :-) И вот что я сделал: по соображениям безопасности я загоняю сайты в собственные open_basedir, чтобы если какой сайт и взломали, чтобы не могли выйти за пределы файловой системы этого сайта. А вот один центровой сайт (чисто под свои нужды) я не стал ограничивать по файловой системе (я просто разрешил доступ к этому сайту только с одного ip). И вот этот центровой сайт я планирую использовать для управления другими сайтами :-)
Сделать это не сложно. Ведь modxSDK использует для своей работы Источники файлов самого MODX-а, а эти источники не обязательно должны работать только от DOCUMENT_ROOT. Достаточно просто переключить basePathRelative источника файлов в false.
?
И все, файловая система другого сайта доступна.
?
При этом здесь мы получаем сразу несколько положительных моментов:
1. При работе сmodxSDK на текущем сайте, сайт можно запросто сломать, при чем так, что через текущий modxSDK его уже не починить. Причина одна — modxSDK использует этот же сайт для редактирования и сохранения файлов. А это означает, что если вы зацепите какой-то важный файл из того же ядра, который будет приводить к фатальной ошибке, то modxSDK просто не сможет выполнить запрос на обновление этого файла, так как MODX сломан. Замкнутый круг :-) А здесь редактирование файлов выполняется из другого сайта, так что даже если вы сломаете целевой сайт, его же можно будет восстановить через текущий же modxSDK.
2. Целевой сайт вообще может не быть MODX-ом. То есть это может быть вообще любой сайт. Так что если вы работаете не только с MODX-ом, и необходимо поработать со сторонним сайтом, с ним можно работать через центральный MODX-сайт. Мне вот, к примеру, иногда приходится работать с тем же Эво, а там modxSDK нет.
3. Теоритически, в дальнейшем можно докрутить modxSDK так, что можно будет работать даже с распределенными серверами, используя modxSDK как центр управления сайтами, с централизованным сбором статистики, управлением и т.п. И даже работать с объектами целевого сайта (ведь ничто не мешает настроить доступ к объекту $modx на целевом сайте). А это даже выполнение xPDO-запросов на целевых сайтах через единую консоль. Это конечно еще планы, но в целом они очень даже достижимые.

Добавить комментарий