Перенос блоголета с одного сервера на другой
04.03.2011Голосование
| Тип | Вопрос |
| Состояние | Исправлено |
| Приоритет | Высокий |
| Версия | 4.33 |
| Система | Linux Debian 6.0.0 |
| Воспроизводимость | Нет |
| Автор | m4rkell |
| Исполнитель | Блоголётчик |
И так собственно сабж, уже 3 дня бьюсь над этой задачей, алгоритм действий следующий, заходим шелом на сервачек на котором в данный момент сайт рабтоает.
Запаковываем весь www каталог где и лежит блоголет. Скачиваем на новый сервер, распаковываем.
Через phpmyadmin сохраняем всю базу со старого сервера, заливаем ее на новый.
Далее по совету Владимира выкачиваем скрипт:
wget http://litepublisher.googlecode.com/svn/trunk/utils/passworddb.php
Начинаем его редактировать: Задача, сменить название БД, имя пользователя БД, пароль БД и имя сайта, так как сервер еще только тестим.
Редактируем скрипт до такого состояния:
<?php
$password = "НОВЫЙ ПАРОЛЬ";
define('dbversion', false);
define('litepublisher_mode', 'xmlrpc');
try {
include('index.php');
} catch (Exception $e) {
echo "error: ";
echo $e->GetMessage();
}
litepublisher::$options->dbconfig['password'] = 'НОВЫЙ ПАРОЛЬ';
litepublisher::$options->data['dbconfig']['login'] = 'ИМЯ ПОЛЬЗОВ';
litepublisher::$options->data['dbconfig']['dbname'] = 'ИМЯ БД';
litepublisher::$site->url = 'НОВЫЙ УРЛ';
litepublisher::$options->save();
litepublisher::$options->savemodified();
echo "
\n";
echo "$password\n
НОВЫЙ ПАРОЛЬ";
?>
после исполнения скрипта, на экран выдается новый пароль два раза.
После попытки зайти на сайт, выдается ошибка связи с БД. Всё.
Caught exception:
Error connect to database
0 index.php(79): tdatabase->__construct()
1 {main}
Айнид хелп...а что ручками негде нельзя в конфиге то просто поменять эти данные?
Комментарии (20) на запись “Перенос блоголета с одного сервера на другой”
Оставить комментарий
В скрипте ошибки, пароль не устанавливается, надо так:
litepublisher::$options->setdbpassword('НОВЫЙ ПАРОЛЬ');
litepublisher::$options->data['dbconfig']['login'] = 'ИМЯ ПОЛЬЗОВ';
litepublisher::$options->data['dbconfig']['dbname'] = 'ИМЯ БД';
litepublisher::$site->url = 'НОВЫЙ УРЛ';
litepublisher::$options->save();
litepublisher::$options->savemodified();
в твоем примере пароль не менялся
Я в свою пору связался с Блоголётом именно из-за того, что он был сделан на файлах, без БД. Поскольку думал, что в случае чего будет проще переносить сайты с сервера на сервер. Тем более, что делал, собственно, не сайты, а разделы новостей для имевшихся сайтов.
Но последовали один облом за другим. Сначала выяснилось, что нет нормального обновления версий - сайты 2.хх не обгрейдились до 3.хх. И так далее. В итоге мои сайты застряли в старых версиях.
Когда же понадобилось перенести сайты на другой хостинг, облом был ещё более жестким. Вместо своих сайтов я получил белый экран. И если на версии 2.хх удалось решить проблему новой установкой Блоголёта с последующей загрузкой резервной копии, то в версии 3.27 и этот вариант ничего не дал.
Бьюсь как рыба об лёд уже несколько дней и кляну судьбу за то, что связался с таким вот любительским движком...
Похожая проблема. Необходимо перенести блог на другой хостинг, другое доменное имя.
Каким в конечно итоге должен быть скрипт?
P.S. В моем случае также меняется путь до Mysql сервера..
Если есть шелл доступ на обоих серверах, то элементарно: копируются все файлы и папки вместе с дампом mysql. Если все перенесено и надо сменить параметры доступа к бд, то можно при помощи скрипта:
http://litepublisher.googlecode.com/svn/trunk/utils/dbconfig.php
скаченный скрипт следует отредактировать, заменив значения в примере на новые и выполнить на сервере. Протестировать сайт, если все ок, то удалить скрипт с сервера, если нет - написать точную проблему. И что значит путь до сервера? Имя сервера и порт? Если надо установить имя сервера (не путать с именен бд) то вот значения по умолчанию:
$c[''host'] = 'localhost';
$c['port'] = 0;
Нет, не смена версий.
Спасибо, доступ блога к mysql появился,но теперь другая проблема.
При нажатии ссылок к адресу добавляется ещё раз адрес сайта и соответственно ничего не открывается=( сайт: http://yanepsih.16mb.com
Кстати чутка помучался аз-за двух апострофов=))
$c['[font size=7]'[/fonr]host'] = 'localhost';
litepublisher::$site->seturl('http://yanepsih.16mb.com');
До админки достучаться не получается=\
Пробовал так поменять адрес сайта...но результатов не дало!
<?php
define('dbversion', false);
define('litepublisher_mode', 'xmlrpc');
try {
include('index.php');
} catch (Exception $e) {
echo "error: ";
echo $e->GetMessage();
}
litepublisher::$options->files = 'http://yanepsih.16mb.com';
?>
В админку всё также не попасть
http://litepubl.ru/
А можно как-то одним махом(скриптом например) поменять во всех файлах путь до картинок с url прошлого сайта (http://oldblog.ru/images/) на новый путь (http://newblog.ru/images/)
litepublisher::$site->url = 'http://yanepsih.16mb.com';
litepublisher::$site->files = 'http://yanepsih.16mb.com';
litepublisher::$site->q = '?';
litepublisher::$options->savemodified();
в таком виде должно выручить