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

Установка и обновление MODX Revolution через консоль

На днях увидел очень интересное видео от Aaron Belafonte @abelafonte.
Это его собственный скрипт для установки MODX-а через консоль. Плюс в том, что вам даже архив MODX-а не нужен. Просто создаете на выполнение баш-скрит (вот его код), запускаете его, отвечаете на несколько вопросов и все. Скрипт сам скачает последнюю версию MODX-а, сам распакует, сам установит и т.п. Я попробовал, все работает. Только вот такой момент: по умолчанию он предлагает установить в новую папку по имени архива MODX-а, к примеру modx-2.2.8-pl. То есть установит не в текущую папку (как вы наверняка того пожелали бы), а во вложенную. Соответственно на том шаге, где спросит про папку (4-ый шаг), укажите точку. Where should this be extracted? [modx-2.2.8-pl/]. Тогда установит в текущую папку.
А еще после себя оставляет пару временных папок, их можно удалить.
Весь набор утилит на гитхабе: github.com/craftsmancoding/modx_utils
С вашей подачи решил попробовать digitalocean. До этого пользовался не дорогим шаред хостингом. Пока полностью доволен сменой. Сервер настраивал по статье bezumkin'а на хабре. habrahabr.ru/post/139461/ В конце статьи есть ссылка на скрипт установки (так же есть обновление и удаление) сайта, которые создает пользователя, папку для сайта, конфиг для nginx, базу, скачивает последний modx, генерирует пароли для mysql и sftp. Я в начале поставил ispconfig, но сейчас понял, что этими скриптами проще. При закачке файлов по sftp не возникает проблем с правами/владельцем. Пакет сделанный с modxcloud через vapor стал без проблем.
При закачке файлов по sftp не возникает проблем с правами/владельцем.
Вот про этот момент можно чуть подробней? От чьего имени работает веб-сервер, и от чьего имени вы по sftp работаете и есть ли какая-то автоматическая смена прав на файлы или типа того? И я так понимаю, идет связка nginx+fastcgi? Апач не используется? И все сайты не изолированы друг от друга? То есть если зайти в админку одного сайта, то через него можно добраться до любого другого сайта? (то есть не используется open_basedir или типа того? Про это я писал здесь.)
Пакет сделанный с modxcloud через vapor стал без проблем.
Использовали этот Vapor? И использовали входящий в него import.php, или просто устанавливали как обычный пакет через менеджер пакетов?
Работает nginx+php5-fpm. Апач не используется. В статье написано «запуск разных сайтов от разных юзеров». nginx работает под www-data. php-fpm под индивидуальным пользователем для каждого сайта. По sftp работаю так же под пользователем — владельцем папки с сайтом, т.е. для заливки файлов на разные сайты использую разные логины. Папка с сайтом — это домашняя папка пользователя. В sshd_config прописано ChrootDirectory. Vapor этот. Устанавливал через управление пакетами. Сессия как обычно отвалилась, но все стало как надо. Делал несколько раз. Ни единого разрыва.
В sshd_config прописано ChrootDirectory
Это не позволяет подняться выше по ssh, но если на сайтах права 775 и 664, то это позволит их просматривать от имени других пользователей. То есть сайт один взломали, и можно пролистать файлы других сайтов. И пусть нет возможности что-то туда записать, зато можно прочитать config-файл и увидеть логины/пароли в БД, а далее просто создается юзер для целевого сайта и спокойно входим в админку.
Сессия как обычно отвалилась, но все стало как надо.
Смотрите в вапоре скрипт import.php С его помощью можно запускать импорт через ssh. vapor/import.php package=core/packages/package.transport.zip (само собой имя своего пакета). Здесь не будет проблем с сессиями и т.п., так как они не требуются. Можно будет увеличить время выполнения и накатить даже очень большой снапшот.
Как можно проверить изолированы сайты или нет?
А попробуйте завести источник файлов в MODX-е с указанием абсолютного пути на корневую директорию всех сайтов, или сразу до папки другого сайта. Я говорил здесь как это делается.
Попробовал. basePathRelative в false. basePath на папку соседнего сайта. В итоге пусто.
Ну и замечательно. Скорее всего прав нет для «все остальные» (если путь верно прописан).
Права есть, путь прописан верно. Может для обхода надо еще что-то… Я не специалист. А для modx нужны права для «всех остальных»?
Права для «все остальные» и т.п. — это дело уже самой операционной системы. Если не жалко, пришли в личку логины и пароли в админки двух сайтов на одном сервере, я посмотрю что у тебя там и как, и скажу точно изолированы они или нет.

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