Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

如何把Discuz! 5.0论坛换成一个纯净的版本(卸掉所有插件和无用文件夹)

[复制链接]
郭鑫 发表于 2006-9-27 21:57:49 | 显示全部楼层 |阅读模式
注意:在做这些之前,请先用自定义备份,全部备份论坛的数据表和论坛的所有文件,并确保能恢复成功。

1, 去后台删除插件
       在后台¬->扩展设置->插件管理可以卸载掉
2, 删除掉无用的文件夹
Discuz! 5.0纯净版本的文件夹和文件如目录下的files.txt所示,其他文件都是自己添加的或者插件添加的。注:以下几个目录最好不要动
./api  应用程序接口,也就是和外部程序比如支付宝,奇虎,shopex, siteengine挂钩的。
./archiver  静态化,无图版用的。 Discuz Archiver
./attachments 附件存放目录
./customavatars 用户自定义存放目录
./forumdata  论坛缓存,备份数据存放目录
./install  安装sql文件,语言文件存放目录
./ipdata ip数据包
./wap  wap网站所需文件
插件一般喜欢添加文件在include,images,plugins,templates以及论坛根目录


3, 用phpmyadmin检查数据表,删除多于的数据表
       这部分是最难的,技术成份也最高,不过你看看插件的原始安装数据,然后对比一下自己的数据表就知道哪些能删除了。
通过看install/discuz.sql文件分析出默认Discuz! 5.0存在68个表,这点从phpmyadmin中能直观的看出来,分别是:
  cdb_access
  cdb_activities
  cdb_activityapplies
  cdb_adminactions
  cdb_admingroups
  cdb_adminnotes
  cdb_adminsessions
  cdb_advertisements
  cdb_announcements
  cdb_attachments
  cdb_attachtypes
  cdb_banned
  cdb_bbcodes
  cdb_blogcaches
  cdb_buddys
  cdb_creditslog
  cdb_crons
  cdb_failedlogins
  cdb_favorites
  cdb_forumfields
  cdb_forumlinks
  cdb_forums
  cdb_medals
  cdb_memberfields
  cdb_members
  cdb_moderators
  cdb_modworks
  cdb_myposts
  cdb_mythreads
  cdb_onlinelist
  cdb_onlinetime
  cdb_orders
  cdb_paymentlog
  cdb_pluginhooks
  cdb_plugins
  cdb_pluginvars
  cdb_pms
  cdb_pmsearchindex
  cdb_polloptions
  cdb_polls
  cdb_posts
  cdb_profilefields
  cdb_promotions
  cdb_pushedthreads
  cdb_ranks
  cdb_ratelog
  cdb_regips
  cdb_relatedthreads
  cdb_rewardlog
  cdb_rsscaches
  cdb_searchindex
  cdb_sessions
  cdb_settings
  cdb_smilies
  cdb_stats
  cdb_statvars
  cdb_styles
  cdb_stylevars
  cdb_subscriptions
  cdb_templates
  cdb_threads
  cdb_threadsmod
  cdb_threadtypes
  cdb_tradelog
  cdb_trades
  cdb_usergroups
  cdb_validating
  cdb_words


很多插件会添加表和修改表,这些表是完全可以删除的。关于如何删除表看附件:

不过更多的插件选择的是在表中增加字段,这样我们就只能通过修改数据表来达到目标了。如附件:

关于如何检查插件加了哪些数据字段在表里面,我以一个例子来说明:

**[++梦幻宠物(简繁研究版)++]** For Discuz! 5.0 正式版
https://discuz.dismall.com/thread-394323-1-1.html

下载以后解压缩,压缩包中有许多文件,但是一般我们只用看与install有关的东西,其实这里的文件也可以做个参考,让你知道你装这个插件传了多少文件上去了。
打开installpf.php,用记事本就可以了。看人家的代码,我们关注的是数据表的部分,没关系,很容易懂的。看下面的代码:
  1. query("drop TABLE IF EXISTS `cdb_dropitem`");
  2. query("CREATE TABLE `cdb_dropitem` (
  3.   `id` smallint(5) unsigned NOT NULL auto_increment,
  4.   `itemname` varchar(15) NOT NULL default '',
  5.   `cname` varchar(30) NOT NULL default '',
  6.   PRIMARY KEY  (`id`)
  7. ) TYPE=MyISAM;");
复制代码


其实是很简单的代码的,这几行的意思是,我要加一个cdb_dropitem的数据表,因此这个表就是插件增加的表,如果你不要这个插件了,这个表完全可以drop(删除)掉。

  1. query("drop TABLE IF EXISTS `cdb_itemmarket`");
  2. query("CREATE TABLE `cdb_itemmarket` (
  3.   `id` smallint(5) unsigned NOT NULL auto_increment,
  4.   `itemname` varchar(20) NOT NULL default '',
  5.   `itemnum` smallint(5) unsigned NOT NULL default '0',
  6.   `itemmoney` int(10) unsigned NOT NULL default '0',
  7.   `itemuesr` varchar(30) NOT NULL default '',
  8.   `itemtime` int(10) unsigned NOT NULL default '0',
  9.   `itemclass` varchar(30) NOT NULL default '',
  10.   PRIMARY KEY  (`id`)
  11. ) TYPE=MyISAM;");
  12. query("drop TABLE IF EXISTS `cdb_mypetatk`");
  13. query("CREATE TABLE `cdb_mypetatk` (
  14.   `id` smallint(5) unsigned NOT NULL auto_increment,
  15.   `username` varchar(15) NOT NULL default '',
  16.   `atker` varchar(15) NOT NULL default '',
  17.   `revatk` smallint(5) unsigned NOT NULL default '0',
  18.   `atkeratk` smallint(5) unsigned NOT NULL default '0',
  19.   `revexp` smallint(5) unsigned NOT NULL default '0',
  20.   `atkerexp` smallint(5) unsigned NOT NULL default '0',
  21.   `atktime` int(10) unsigned NOT NULL default '0',
  22.   `mypetdead` tinyint(5) unsigned NOT NULL default '0',
  23.   `atkerpetdead` tinyint(5) unsigned NOT NULL default '0',
  24.   PRIMARY KEY  (`id`)
  25. ) TYPE=MyISAM;");
复制代码


关于这类的代码就容易懂了吧?全是在你的数据库里建立数据表的。

  1. query("INSERT INTO `cdb_npcdata` VALUES (1, '1', '波利', 'm1.gif', 11, 0, 500, 2, 10, 10, 1, '土', 1),
  2. (2, '2', '绿棉虫', 'm2.gif', 13, 0, 550, 3, 13, 12, 1, '土', 1),
  3. (3, '3', '小鸡', 'm3.gif', 15, 0, 600, 4, 16, 14, 1, '火', 1),
复制代码
关于这段代码,意思是往cdb_npcdata数据表中插入数据的。如果删除了这个表,那么所有的数据也就被删除了。

INSERT表示向表里面插入数据。说完了数据表的增加,我们来看看人家插件怎么改变我们已经存在的表
看下面的代码:

  1. query("ALTER TABLE `cdb_mypetdata` ADD `hack` smallint(5) UNSIGNED DEFAULT '0' NOT NULL AFTER `mypetexp`");
复制代码
上面的代码是什么意思?
ALTER TABLE意思就是改变我的数据表,ADD表示就是增加,明白了吧?这个的意思就是,改变cdb_mypetdata的结构,在mypetexp这个字段的后面加一个hack字段。

   不过这里不用怎么在意,因为cdb_mypet不是Discuz!的核心表,这个表恐怕你在卸载的时候就已经DROP掉了,不用手动修改它的结构了。懂了这些,看下面的代码是不是很轻松?
  1. query("ALTER TABLE `cdb_mypetdata` ADD `tstk` tinyint(5) UNSIGNED DEFAULT '0' NOT NULL ");
  2. query("ALTER TABLE `cdb_mypetdata` ADD `tsqz` tinyint(5) UNSIGNED DEFAULT '0' NOT NULL ");
  3. query("ALTER TABLE `cdb_mypetdata` ADD `tsfp` tinyint(5) UNSIGNED DEFAULT '0' NOT NULL ");
复制代码


但是如果我们在某个插件的安装文件中找到了类似下面的代码怎么办?
  1. ALTER TABLE `cdb_memberfields` ADD `mypetid` tinyint(5) UNSIGNED DEFAULT '0' NOT NULL
复制代码


很明显,这个就修改了Discuz!核心数据表中的cdb_memberfields,在里面加了一个字段mypetid了,看附件:

怎么删除呢?进入phpmyadmin,打开cdb_memberfields表,找到mypetid这个字段,点那个红色的叉,就能安全删除掉了。

这样,我们得到一个基本适用的万能方法,先备份数据库和文件。然后去后台先删除插件看插件的安装文件或者安装要求升级的sql文件的内容,找出这个插件要在我的数据库里加些什么,改掉些什么,按照我说的方法,该删的删除,该改的改回来。

然后,把你修改过的php文件和html文件修改回来。这样,一个插件就干净卸载掉了,我一直用的这个方法卸插件的。

至于要删除掉所有的插件,我的建议是和一个干净安装的Discuz!5.0,对比两个的数据表差异,一个个对比,找到不同的地方,放心删除。

然后把所有的论坛文件(前面提到的那些目录不用,加上config.inc.php不用)都用最原始的覆盖掉。
这些好了以后,登陆,去后台更新缓存。就可以了!

有了上面的这些,相信各位也知道了关于修改数据库的一些插件如何卸载了,无非就是把数据库改回原来的样子,把新增的文件删除掉,把修改过的文件改回来,不是很难的。
本文只针对新手,希望达到抛砖引玉的目的。

@鑫~#
2006.9.27


[ 本帖最后由 @鑫~# 于 2006-9-27 22:12 编辑 ]
安笛 发表于 2006-9-27 21:58:32 | 显示全部楼层

回复 #1 @鑫~# 的帖子

偶座沙发喽  
回复

使用道具 举报

摇摆 发表于 2006-9-27 22:06:03 | 显示全部楼层
板凳?
                           
回复

使用道具 举报

摇摆 发表于 2006-9-27 22:07:06 | 显示全部楼层
问个问题 如果有多余的文件 会有什么影响?
回复

使用道具 举报

 楼主| 郭鑫 发表于 2006-9-27 22:14:07 | 显示全部楼层
几乎没有影响。

只要不调用就没有事。调用了就占点速度了,与MYSQL挂钩的话就影响效率了。
回复

使用道具 举报

靖江 发表于 2006-9-27 22:59:34 | 显示全部楼层

谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢!

:P
回复

使用道具 举报

靖江 发表于 2006-9-27 23:20:14 | 显示全部楼层

真有耐心呀,姐姐

我看都看得累死了,头晕,辛苦你了!
关于如何删除所有插件的方法,我看得似懂非懂。
(其实我也没有安装多少插件,主要是安装了风格,出了错~)

为了防止再出错不可挽回,我想请姐姐帮一个忙行吗?
我想把ftp帐号、管理员帐号,都发给你,请求姐姐替我还原成纯净的版本
所有的插件都不要,只要所有会员资料和帖子资料都不能丢了。

不知道能否帮助我?

[ 本帖最后由 靖江 于 2006-9-27 23:21 编辑 ]
回复

使用道具 举报

靖江 发表于 2006-9-28 07:23:23 | 显示全部楼层

我已经把数据库全部备份,并且全站ftp下载备份,下一步怎么做?

我已经把数据库全部备份,并且全站ftp下载备份,刻成了光盘,我现在想删除所有的程序,然后安装新的,下一步该怎么做?
还有,discuz的数据库已经备份了,但是supesite的数据库在哪里?怎么备份的?也在bbs/forumdata下面吗?
原来的supesite安装在根目录下,现在我想乘重新安装,改在space目录下,请问怎么弄?
能否请姐姐代劳一下?我汇款50元手工费给你就是
回复

使用道具 举报

freddy 发表于 2006-9-28 17:27:05 | 显示全部楼层
兄弟的贴子不能不支持的
回复

使用道具 举报

 楼主| 郭鑫 发表于 2006-9-28 18:58:43 | 显示全部楼层
原帖由 靖江 于 2006-9-28 07:23 发表
我已经把数据库全部备份,并且全站ftp下载备份,刻成了光盘,我现在想删除所有的程序,然后安装新的,下一步该怎么做?
还有,discuz的数据库已经备份了,但是supesite的数据库在哪里?怎么备份的?也在bbs/foru ...



十一期间我能帮你弄。不过现在没时间。实在是太忙了。

2007年世界特殊奥运会在上海举办,我现在在做志愿者培训。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2024-11-15 23:25 , Processed in 0.031609 second(s), 4 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表