Обновление\бэкап MODX на сервере без FTP
Возникла необходимость обновить Revolution на сервере с медленным FTP. Копирование мне радостно показывало, что 4500 файлов будет заливаться около 7ми часов, и я решил как-то ускорить процесс.
Суть метода сводится к одному предложению: Распаковка zip архива прямо на сервере с помощью php.
Для работы с архивами в комплекте с Revo идет библиотека pclzip.lib.php — смело используем ее.
Обновление
1. Качаем свежий Revo, любой версии.
2. Распаковываем его у себя на компе и запаковываем обратно без директории. Смысл в том, чтобы при распаковке архива не создавалось директория, типа modx-2.2.4-pl, а все файлы загружались в корень.
3. Создаем на сервере в корне новый файл php и копипастим туда:
4. Открываем из броузера наш скрипт, выбираем для загрузки перепакованый архив, жмем submit и надеемся, что все прокатит.
5. Дальше как обычно: заходим браузером на sitename.ru/setup/, выбираем язык и обновляем движок.
P.S.
Для загрузки php файлов через менеджер MODX, переименовываем их сначала в txt, грузим, а потом переименовываем обратно в php. Или можно разрешить в настройках админки грузить php.
Не забудьте удалить загрузчик и pclzip.lib.php. Ну и директорию setup, конечно, если она останется после установки.
Бэкап
Бэкап всех файлов сайта.
Все как и при апгрейде: создать файл, вставить код, положить в корень и запустить через браузер.
Суть метода сводится к одному предложению: Распаковка zip архива прямо на сервере с помощью php.
Для работы с архивами в комплекте с Revo идет библиотека pclzip.lib.php — смело используем ее.
Обновление
1. Качаем свежий Revo, любой версии.
2. Распаковываем его у себя на компе и запаковываем обратно без директории. Смысл в том, чтобы при распаковке архива не создавалось директория, типа modx-2.2.4-pl, а все файлы загружались в корень.
3. Создаем на сервере в корне новый файл php и копипастим туда:
<form enctype="multipart/form-data" action="" method="POST">
Upload a Zip Archive (*.zip):
<input name="zip" type="file" />
<input type="submit" value="Upload" />
</form>
<?php
if(isset($_FILES['zip'])){
require MODX_CORE_PATH . 'xpdo/compression/pclzip.lib.php';
$filename = $_FILES['zip']['name'];
if(move_uploaded_file($_FILES['zip']['tmp_name'], $filename))
echo "Uploaded ". $filename . " - ". $_FILES['zip']['size'] . " bytes<br />";
else
die("<font color='red'>Error : Unable to upload file</font><br />");
$archive = new PclZip($filename);
if ($archive->extract(PCLZIP_OPT_PATH, '') == 0)
die("<font color='red'>Error : Unable to unzip archive</font>");
$list = $archive->listContent();
echo "<br /><b>Files in Archive</b><br />";
for ($i=0; $i<sizeof($list); $i++) {
if(!$list[$i]['folder'])
$bytes = " - ".$list[$i]['size']." bytes";
else
$bytes = "";
echo "".$list[$i]['filename']."$bytes<br />";
}
unlink($filename);
}Это не мое творчество, это я где то нашел и слегка модифицировал.4. Открываем из броузера наш скрипт, выбираем для загрузки перепакованый архив, жмем submit и надеемся, что все прокатит.
5. Дальше как обычно: заходим браузером на sitename.ru/setup/, выбираем язык и обновляем движок.
P.S.
Для загрузки php файлов через менеджер MODX, переименовываем их сначала в txt, грузим, а потом переименовываем обратно в php. Или можно разрешить в настройках админки грузить php.
Не забудьте удалить загрузчик и pclzip.lib.php. Ну и директорию setup, конечно, если она останется после установки.
Бэкап
Бэкап всех файлов сайта.
Все как и при апгрейде: создать файл, вставить код, положить в корень и запустить через браузер.
<?php
require MODX_CORE_PATH . 'xpdo/compression/pclzip.lib.php';
$archive = new PclZip('archive.zip');
$v_dir = getcwd();
$v_remove = $v_dir;
$v_list = $archive->create($v_dir, PCLZIP_OPT_REMOVE_PATH, $v_remove);
if ($v_list == 0) {
die("Error : ".$archive->errorInfo(true));
}
?> Комментарии: 6
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
> MODX_CORE_PATH – лишнее!
Для больших объёмов этот способ не подходит, конечно.