Discuz!是非常知名的论坛系统,今天我们介绍一下从雷傲论坛转换到Discuz!论坛的方法。
一、环境配置
选择的服务器环境是WINXP+II5,首先请确保电脑上的IIS已经配置完成,并且IIS的主目录指向D:\WEB。
1、让服务器支持PHP。我选择的是php-4.3.11-Win32.zip
解压缩PHP压缩包到C:\PHP(这个路径可以随意,不过以下要是用到这个路径,请相应的修改)。
复制C:\PHP目录下的php4ts.dll及C:\PHP\dlls目录下的所有文件到windows的c:\windows\system32文件夹里:
其中C:为你现在所使用的操作系统的系统盘,如果你目前操作系统不是安装在C:\windows下,请相应做出修改。
复制php.ini-dist到C:\windows下,并将其改名为php.ini。然后用记事本打开,利用记事本的查找功能搜索 extension_dir = "./",并将其路径指到你的 PHP 目录下的 extensions 目录,比如:extension_dir = "C:\PHP\extensions";再搜索 register_globals = Off,将 Off 改成 On,直接保存关闭 php.ini 即可。
2、让服务器支持MYSQL。我选择的是mysql-4.0.20d-win.zip
下载获得Mysql的for win32安装包后,用winzip解压缩,直接运行setup.exe,需要注意的是选择一个安装路径,当然,安装路径可以任意,建议选择C:\MySQL目录。安装完成后MySQL也就完成了。默认的用户名是root,密码为空。
进入C:\mysql\bin\,双击winmysqladmin.exe,就可以启动MYSQL数据库了(此时在系统托盘处可以看到
图标)3、让IIS对PHP进行解析。
请按以下图示操作
至此Discuz!论坛的运行环境就全部配置完毕了。
二、准备好待转换的雷傲论坛程序
根据我的经验是直接将雷傲论坛的全部文件下载下来,分为cgi-bin和non-cgi两个文件夹,存放到D盘的LBBBS目录下面。
三、配置LB2DZ转换程序,开始转换
转换程序可以在Discuz!官方进行下载,下载地址:http://www.discuz.net/thread-249700-1-1.html配置转换程序lb32discuz41.php
本地
//$lb_user = "D:/LBBBS/cgi-bin/members6VzyhOD9L/"; // LB的用户资料绝对路径, 最后不要遗漏"/"
//$lb_dir = "D:/LBBBS/cgi-bin/"; // LB 的绝对路径, 最后不要遗漏"/"
//$lb_attach = "D:/LBBBS/non-cgi/usr/"; // LB 附件路径, 最后不要遗漏"/"
//$lb_attach = "D:/WEB/discuz/attachments/LBuploads/"; ///LB附件移动到Discuz!4.1.0目录中的位置,后面添加/
服务器
//$lb_user = " D:/LBBBS/cgi-bin/members6VzyhOD9L/"; // LB的用户资料绝对路径, 最后不要遗漏"/"
//$lb_dir = " D:/LBBBS/cgi-bin/";
//$lb_attach = "D:/WEB/discuz/attachments/LBuploads/"; // LB 附件路径, 最后不要遗漏"/"
在本地安装Discuz!4.1程序
安装目录设为D:\WEB\discuz,在浏览器目录执行安装程序install.php。
需要注意的是以下的设置:数据库用户名默认的root,数据库密码保留空(因为当初安装的时候没设密码的哈),数据库名称就写个test的吧。
然后一路下来就可以将Discuz!4.1安装好。
开始进行数据的转换工作
运行转换程序lb32discuz41.php,如果一切顺利,转换程序将一直自动运行到结束。我在经过几次转换后,也总结了一些常见的问题和错误。
出现问题最多的就是在转换用户数据那步,经常因为用户名有重复而导致进程的终止。
解决好了用户数据转换这步,其他步骤的转换都是水到渠成的事情。
经过多次摸索,我采用了另外的一种转换方式,首先将雷傲的用户数据转换成动网的,再使用动网转DZ的程序,完整的把用户数据转换过来。经过多次实践,这个方法能够保证用户数据最大程度的完整。
雷傲转动网的程序可以到下面地址下载:http://www.discuz.net/viewthread.php?tid=232205&extra=page%3D1%26filter%3Ddigest
转换完成后,记得到后台管理那更新各项统计信息。同时记得把雷傲的所有附件移到D:/WEB/discuz/attachments/LBuploads/下
最后来完成对附件的关联
升级数据库,执行:
SELECT MAX(tid)
FROM cdb_threads;
请在./include/discuzcode.func.php中找到
for($i = 0; $i <= $discuzcodes['pcodecount']; $i++) {
$message = str_replace("[\tDISCUZ_CODE_$i\t]", $discuzcodes['codehtml'][$i], $message);
}
上面加
//LB转换数据后专用 $tid是你主题的最大id
global $fid,$tid;
if ($tid < 11253) {
$lbfilepath = './attachments/lbupfile/';
$message = preg_replace(array( "/\[UploadFile=([^\[]+?)\.(gif|jpg|png|bmp|jpeg)\]/ies", "/\[UploadFile=(.*)\]/ies"),
array("bbcodeurl('\\1', '<center><img src=\"".$lbfilepath.$fid."/\\1.\\2\" border=\"0\"
onload=\"if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt=\'Click here to open new window\';}\" onmouseover=\"if(this.resized) this.style.cursor=\'hand\';\" onclick=\"if(this.resized) {window.open(\'%s\');}
\"></center><br>')", "bbcodeurl('\\1', '【<a href=\"".$lbfilepath.$fid."/\\1\" target=\"_blank\"
style=\"color:#0000FF;font-weight:bold\">点击下载文件</a>】')"), $message);
}
unset($fid,$tid,$lbfilepath);
//LB转换数据后专用
四、完成转换工作
注意:删除转换程序lb32discuz41.php