Обновление\бэкап 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
require MODX_CORE_PATH. 'core/xpdo/compression/pclzip.lib.php';
> MODX_CORE_PATH – лишнее!
> MODX_CORE_PATH – лишнее!
Спасибо, поправил.
После экспорта «сжатая ZIP папка имеет неправильный формат». В чем может быть проблема!?
Скорее всего, хостингу не хватило времени всё сжать, поэтому архив недописан.
Для больших объёмов этот способ не подходит, конечно.
Для больших объёмов этот способ не подходит, конечно.
Поправил, спасибо.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.