ego008
ego008
3386 4 0

youBBS PHP 版数据导入Go 版新站

适用于把PHP 版的数据导入Go 版。
导入过程:

1)在原服务器网站目录下放一个文件 gettopic.php (内容见回复)

2)添加一条重定向规则,nginx 环境是

rewrite ^/get/(.+?)/(.+) /gettopic.php?tb=$1&id=$2 last;

以确保网址 yourdomain.com/get/users/1 能正常访问。

3)修改新站配置 config/config.yaml,只需修改一项 OldSiteDomain,填写原网站网址

OldSiteDomain: "http://youbbs.sinaapp.com"

4)在本地或服务器运行go 版,添加一个参数 getoldsite,设参数值为1、2 分别运行一次
解释getoldsite 参数值的作用:
1 读取原网站数据并保存在新数据库(一般完成后要把同目录下后缀名为db 的文件备份)
2 把上一步得到的数据导入到新站

./goyoubbs_linux -getoldsite=1
./goyoubbs_linux -getoldsite=2

5)上面顺利就大功告成,运行网站主程序

./goyoubbs_linux

6)默认端口是8082,打开下面网址看到新站

http://127.0.0.1:8082

密码策略不同,原站用户名、密码登录会无效,第三方账户登录不受影响。

0

See Also

Nearby


Discussion (4)

ego008
ego008 2017-11-30 09:06

文件 gettopic.php 内容:

<?php
define('IN_SAESPOT', 1);
define('ROOT' , pathinfo(__FILE__, PATHINFO_DIRNAME));

// 添加重定向
//add     rewrite ^/get/(.+?)/(.+) /gettopic.php?tb=$1&id=$2 last;

include(ROOT . '/config.php');
include(ROOT . '/common.php');

$tb = $_GET['tb'];
$id = intval($_GET['id']);

$tb_arr = array('articles' => 1, 'categories' => 1, 'comments'=>1, 'qqweibo'=>1, 'tags'=>1, 'users'=>1, 'weibo'=>1);
if(!array_key_exists($tb, $tb_arr)){
    header("HTTP/1.0 404 Not Found");
    header("Status: 404 Not Found");
    echo '{"code":404,"msg":"tb not found"}';
    exit;
}

// 注意表前缀,你使用的版本可能不是"yunbbs_",修改为自己的表前缀
$query = "SELECT * FROM `yunbbs_$tb` WHERE id='$id'";
$obj = $DBS->fetch_one_array($query);
if($obj){
    if($tb=="users"){
        /* 
        密码修正,按照自己的规则来修改,修改后的密码为新站登录密码,
        新站密码规则:输入内容的md5 值,如作以下修改则登录密码均改为"admin"
        md5("admin") == "21232f297a57a5a743894a0e4a801fc3"
        */
        // $obj["password"] = "21232f297a57a5a743894a0e4a801fc3";
    }
    echo json_encode($obj, JSON_UNESCAPED_UNICODE);
}else{
    header("HTTP/1.0 404 Not Found");
    header("Status: 404 Not Found");
    echo '{"code":404,"msg":"not found"}';
}

?>

0
7weishu
7weishu 2017-11-30 09:20

太好了,这个周有东西折腾了。

0
7weishu
7weishu 2017-12-01 23:48

@ego008 第4步"添加一个参数 getoldsite" 不知道怎么弄。。。

0
ego008
ego008 2017-12-02 01:17

@7weishu 在命令行写入:
./goyoubbs_linux -getoldsite=1
回车

0
Login Topics