2017年3月21日星期二

Discuz X 论坛 笔记

discuz x2 升级 x3.2,提示需要先升级 ucenter 1.6

资料 discuz x3.2官方升级教程

用 install/update.php?step=prepare 访问即可

discuz gbk 转 utf8

mysqldump 导出 sql 文件,将 gbk 替换成 utf8,文件另存为 utf8 编码

与升级操作相同,将utf8编码的upload下的安装文件上传至论坛根目录,并修改原有的 config 目录下的配置文件,数据库连接编码修改为utf8

将安装包的utility目录下的update.php复制到论坛install目录下,剩余操作与更新一致

更新完毕后,到 后台 -> 工具 -> 更新缓存

批量修改用户密码

假设新密码为123456

除了uid=1的用户全改掉

update pre_ucenter_members set password=md5(concat(md5('123456'),salt)) where uid!=1;

用户重命名

假设discuz的旧用户名为 xxx,要改成新用户名 yyy。

相关执行的SQL语句如下:

#UC用户表
update pre_ucenter_members set username='yyy' where username='xxx';

#论坛用户表
update pre_common_member set username='yyy' where username='xxx';

#帖子列表
update pre_forum_thread set author='yyy' where author='xxx';

#帖子内容表
update pre_forum_post set author='yyy' where author='xxx';

#帖子内容(慎用)
update pre_forum_post set message=replace(message,'xxx','yyy') where message like '%xxx%';

目录权限

linux环境需要设置

chmod -R 777 data

从 Discuz X2 升级到 Discuz X2.5

记得检查上传后目录对应都用户、用户组:http://www.discuz.net/thread-2212029-1-1.html

升级教程:http://www.discuz.net/thread-2744369-1-1.html
论坛搬家 数据迁移

吐槽一下:用官方的restore.php实在是太太太坑爹了。

每次点恢复不是提示404,就是ucenter通信失败,什么通信key/api/ip按帖子照做N轮还是抽筋。

还不如直接"改配置文件 + 导入数据库"恢复简单。
备份旧数据

数据库备份:进管理后台,站长 -> 数据库 -> 备份,生成都备份文件放在data/backup_xxxx目录下,名字一般是xxxx-1.sql等,分好几份存

站点文件备份:直接保存站点根目录下所有文件,打个tgz压缩包就行了
迁移前需要知道的信息

假设旧域名为 http://www.oldsite.com,旧数据库主机为db.oldsite.com,旧数据库名为 mydiscuzdb

要迁移到新的域名 http://www.newsite.com,假设根目录为 /srv/http

且已知新的mysql数据库主机db.newsite.com、端口newport、用户名newuser、密码newpwd
上传论坛文件

修改旧的根目录下的3个配置文件里的数据库连接信息:

config/config_ucenter.php
config/config_global.php
uc_server/data/config.inc.php

检查一下旧的根目录下出现localhost、db.oldsite.com、www.oldsite.com的文件,按实际需要进行修改

将旧的根目录下所有文件上传到新的http://www.newsite.com的对应都根目录/srv/http下
导入数据库

$ mysql -hdb.newsite.com -Pnewport -unewuser -pnewpwd
> create database mydiscuzdb
> use mydiscuzdb
> source xxx-1.sql
> source xxx-2.sql
> ...

也可以直接用navicat之类的客户端图形化工具导入,比较省劲
修复签名档图片链接

部分签名档图片会以 http://www.oldsite.com/data/xxxxxx/xxxx.png的形式出现,需要在数据库中更新

$ mysql -hdb.newsite.com -Pnewport -unewuser -pnewpwd
> use mydiscuzdb
> update pre_common_member_field_forum set sightml = replace(sightml,'http://www.oldsite.com','http://www.newsite.com')

其他

这样搞完,大部分数据都已经可用。但是自定义用户组的信息失效,不知何故。

没有评论:

发表评论