一次DVBBS从ASP到PHP的转换实例
当前位置:点晴教程→知识管理交流
→『 技术文档交流 』
由于服务器从Windows转为了Linux,我不得不考虑将一个ASP的DVBBS转到Linux平台上。 首先想到的是Linux能否支持ASP?经过网上的查询,发现有个叫iASP的模块,可以插入Apache,让其支持ASP脚本。欣喜之下,赶忙找来iASP安装,不料却没能成功,一是用这个模块的少,其更新也慢,刚刚开始支持Apache2,还要重新编译PHP,反正我是没搞成功;二来这毕竟是个折中的办法,就算成功了,估计也有很多后患,加上用的人少,遇到问题就只能靠自己了,没有什么支持。 接下来只有考虑转为PHP版本的DVBBS了。经过几天的艰苦奋斗,终算新的论坛运行起来了,不过DVBBS.PHP还是个新发布的软件,不像其ASP兄弟那样久经考验,不论是转换程序还是论坛程序,存在的问题不少,费了我不少精神。弄完之后,长出一口气,想着将遇到的点点滴滴记录下来,供今后需要转换的兄弟们参考。 先介绍一下我的工作环境。我家里有两台电脑,一台Windows XP SP2,另一台是装的Debian Linux。我决定先在我的Linux试验一下新论坛,然后在导入网上的真实服务器。这里需要提醒要转换的朋友们,目前转换程序只能在Windows平台上使用,因为老的ASP BBS是建立在Access和MS SQL数据库上的,MS SQL我不太清楚,因为我的老论坛数据库是用的Access。而转换程序访问Access数据库用的是ADO,这个我还真不知道Linux下怎么支持,所以那些想在Linux下运行转换程序的朋友们,我劝你们还是不要再等了。 理一下转换工作的思路。要转换的数据主要有两部分:一是数据库,二是附件。那么我就先在自家的Linux上安装apache+php+mysql这个黄金组合,并安装好DVBBS.PHP。然后在我的Windows机器上安装IIS+PHP,将转换程序和老的Access数据库放到Windows的PHP平台下运行,但其中的mysql数据库却指向Linux机器上的mysql。转换好后,我先在我的Linux上的DVBBS检查转换结果,如果没有问题的话,将mysql的数据库导出为一个sql文件,传到真实服务器上,导入即可。剩下的工作就是把海量的图片文件慢慢地往上放了。 理清了思路,我们来关注一下转换过程中的细节。 首先安装好apache+php+mysql,这个没什么好说的,网上资料一堆一堆。 * 登录mysql,为其创建两个用户,一个是dvbbs,限制从localhost访问;再建一个远程访问的用户例如windows,这个是为了转换程序能从远端导入数据。具体的命令如下: * 在Windows上安装IIS+PHP,这个网上也有不少资料介绍,不过我还是碰到了问题。我装的PHP是4.x版本的,具体安装过程简单描述一下:将PHP拷贝到C:PHP;将dlls目录和isapi目录下的dll文件拷贝到C:PHP目录下;修改C:PHPphp.ini-dist为php.ini,并且编辑里面的extension_dir设置;将C:PHP添加到系统PATH,重启计算机让其生效;修改IIS的扩展配置,加入.php的扩展。最后有一点很重要,需要修改站点的文件安全性,要么集成Windows用户认证,要么将网页目录修改为允许IIS自建的用户访问。我就是在这最后一点搞了好久。 * 现在环境准备好了,将转换程序放入IIS的目录,再将Access数据库文件放入相应位置,运行。可是这里却发现了不少问题,这转换程序写得也太不仔细了,里面很多表名的大小写没有注意。Access里的数据库表名一般首字大写,可php版的mysql数据库表名全都是小写,没有办法,只能手工将其一一改正。 * 接着进行转换,还是有问题,经过仔细调试,又发现转换程序的一个问题,在用户转换一栏,以前Access的username字段是允许相同的,而mysql的表的这个字段却要求是唯一的。我的老数据库由于运行了很长时间,里面出现了很多同名的项。没有办法,只能打开转换程序输出的出错文件(在转换php文件的目录,以数字取名的),里面记录了所有重复的用户名,打开Access,一个一个将其纠正。 * 接下来又遇到问题,查看出错文件,写的是duplicate key,可是用户名明明不一样啊,猜想是字符集的问题,经过半天搜索,解决的办法是,将Linux上的mysql用gbk码启动,命令行如下: * 接下来以为正确了,可是转换后,帖子却不正常了,又捣鼓了半天,先把Access数据库修复了一下(在Access的菜单里),结果瞎猫碰见死耗子,好了! * 可是这样还不好,转换后的数据库虽然正确了,可原来的密码却怎么也不能登录了,查了网上资料,知道mysql 4.1的改动还有一个是密码算法的改动,无奈只得重新启动mysql: * 接下来开始导出数据库再导入,本以为是很简单的任务,可问题还是出在了字符集上,经过摸索,导出的命令为: * 数据库导入真实服务器后,进入真实服务器的管理页面,刷新服务器缓存,数据终于正常了。剩下的工作就是转移海量的图片和附件了。由于DVBBS.PHP和ASP两个版本的目录结果很不一样,这就只有去看那些帖子里图片的连接,巧妙运用Linux里的ln命令创建符号连接来解决这个问题了。 大致过程和碰到的问题先写到这,关于新的PHP版本DVBBS,发现还是有不少问题,比如首页调用很多内容就无法显示(比如帖子调用里的replyuser和replytime等)。这个只有等待动网的朋友们来改了。 该文章在 2012/4/25 0:32:46 编辑过 |
关键字查询
相关文章
正在查询... |