Dedecms是很多新手站长都会接触到的基于php+mysql的cms系统。得益于其开源且源生支持中文的特性,在国内被广泛应用于站点建设。大到门户论坛、企业站点、小到个人博客,个人主页,Dedecms以其易用性和稳定性广受好评。
然而对于大多数新手站长来说,一般都是运营企业官网或者个人主页、博客之类的轻量级站点。而Dedecms的一些高级功能如会员、商城、积分等都毫无用处,且大多数此类站点也不需要留言评论投票等功能。基于可维护性、性能和安全性的需要,我们可以适当对其进行精简,删除不需要的功能和对应的文件。
精简的方式可分为两种:
- 安装后精简
安装后精简则需要承担一定的风险,如果是正常运行的站点进行精简,如操作失误可能导致网站无法打开。所以已经安装且网站正在运行的一定要做好==整站备份==,以便于失误后的回滚操作。 - 全新安装前精简
全新安装前精简的优点在于一步到位,你甚至可以直接使用已经精简的版本进行安装。
但总的来说,安装后精简主要多一步删除MySQL数据库中对应的不需要的数据表,全新安装精前精简则是因为修改了数据库创建过程,将不会创建不需要的数据表,所有不需要再次进入数据库删除对应的数据表。但总的来说,两种方法结果是一样的。
==只不过全新安装前的精简可以直接安装已经精简后的安装包,直接省去了手动去精简的过程==
==小技巧:dedecms模块文件很多,但是大多还是命名规范,快速删除文件可以使用Windows 资源管理器的搜索功能,如删除co_开头的文件(包括.php和.htm)可以搜索co_
,会自动列出所有包含范围内的以 co_
开头的文件,排查不能删除的文件(可能有其他文件恰好包含co_
)之后全部删除,即可快速删除所有需要删除的文件。但如果对dedecms文件系统不是很了解的还是需要严格按照下面的方式来删除,否则可能删除dedecms的必要文件导致无法正常运行==
可删除的文件(如使用小技巧删除,可以直接跳过这一步)
哪些功能需要删除需要根据自身实际情况确定,请保留好完整的安装包以便与还原
删除:根目录下m文件夹【适配移动端最好的方法是单独建移动端站点,或者采用自适应方式适配,大多数情况下不需要用到m文件夹里的功能】
删除:guestbook文件夹【留言板,后面我们安装更合适的留言本插件】
删除:task文件夹和task.php【计划任务控制文件】
删除:ad_js.php【广告】
删除:bookfeedback.php和bookfeedback_js.php【图书评论和评论调用文件,存在注入漏洞,不安全】
删除:bshare.php【分享到插件】
删除:car.php、posttocar.php和carbuyaction.php【购物车】
删除:comments_frame.php【调用评论,存在安全漏洞】
删除:digg_ajax.php和digg_frame.php【顶踩】
删除:download.php和disdls.php【下载和次数统计】
删除:erraddsave.php【纠错】
删除:feedback.php、feedback_ajax.php、feedback_js.php【评论】
删除:guestbook.php【留言】
删除:stow.php【内容收藏】
删除:vote.php【投票】
删除member目录【会员目录,一般企业站不需要】
删除:special【专题功能】
删除:company【企业模块】
安全上的设置dede目录下需要删除的文件及原因。
删除:以file_xx .php开头的系列文件及tpl.php【文件管理器,安全隐患很大】
删除:soft_add.php、soft_config.php、soft_edit.php【软件下载类,存在安全隐患】
删除:mail_file_manage.php、mail_getfile.php、mail_send.php、mail_title.php、mail_title_send.php、mail_type.php【邮 件发送】
删除:media_add.php、media_edit.php、media_main.php【视频控制文件】
删除:以story_xxx.php开头的系列文件【小说功能】
删除:ad_add.php、ad_edit.php、ad_main.php【广告添加部分】
删除:cards_make.php、cards_manage.php、cards_type.php【点卡管理功能文件】
删除:以co_xx .php开通的文件【采集控制文件】
删除:erraddsave.php【纠错管理】
删除:feedback_edit.php、feedback_main.php【评论管理】
删除:以group_xx .php开头的系列php文件【圈子功能】
删除:plus_bshare.php【分享到管理】
删除:以shops_xx .php开头的系列文件【商城系统】
删除:spec_add.php、spec_edit.php【专题管理】
删除:以templets_xx .php开头的系列文件【模板管理】
删除:vote_add.php、vote_edit.php、vote_getcode.php【投票模块】
主要影响安全的文件已经删除,请根据您的需要进行操作。如果想更一步精简,可以删除掉/dede/templets/下对应的文件模板。
==补充: dedecms-v5.7sp2更新了德得广告模块,如果需要删除该部分,可以使用小技巧里的方法搜索“mda
”删除==
以上文件删除后,在dedecms后台对应的功能链接将无法打开,所以对应有兴趣的朋友可以去下载对应的后台模板进行替换,也可以自己动手重写后台的htm模板,删除对应无效部分。还可以重新排版,把后台风格变成自己喜欢的样子
精简到这一步,我们已经完成了一大半了。如果追求极致,还可以对数据库动刀子,删除不需要的数据表,以提高数据库的查询效率,提高服务器响应
当然,这一步并不是必要的,大多数企业站和个人博客都不需要很高的数据库性能,尤其是不适用伪静态而是整站生成静态页面的情况下,数据库的影响微乎其微。而精简数据库最大的作用大概就是在数据库备份的时候会快一点吧。
手动滑稽...
数据库精简方法
如果还未安装dedecms,则需要在install文件夹下用sublime text3 或者notepad++之类的编辑器打开两个文件sql-dfdata.txt
和sql-dftables.txt
,这两个文件是MySQL数据库的导入文件,安装时将会将这两个文件导入数据库,生成数据表和数据表内的默认数据。精简的内容主要是上面我们删除部分包含的数据表和对应的默认数据。
如:这两部分一个是创建购物车数据表,另一个是创建软件数据表,删除时注意整段删除
DROP TABLE IF EXISTS `#@__addonshop`;
CREATE TABLE `#@__addonshop` (
`aid` mediumint(8) unsigned NOT NULL default '0',
`typeid` smallint(5) unsigned NOT NULL default '0',
`body` mediumtext,
`price` float NOT NULL default '0',
`trueprice` float NOT NULL default '0',
`brand` varchar(250) NOT NULL default '',
`units` varchar(250) NOT NULL default '',
`templet` varchar(30) NOT NULL,
`userip` char(15) NOT NULL,
`redirecturl` varchar(255) NOT NULL,
`vocation` char(20) NOT NULL default '0',
`infotype` char(20) NOT NULL default '0',
`uptime` int(11) NOT NULL default '0',
PRIMARY KEY (`aid`),
KEY `typeid` (`typeid`)
) TYPE=MyISAM;
DROP TABLE IF EXISTS `#@__addonsoft`;
CREATE TABLE `#@__addonsoft` (
`aid` mediumint(8) unsigned NOT NULL default '0',
`typeid` smallint(5) unsigned NOT NULL default '0',
`filetype` varchar(10) NOT NULL default '',
`language` varchar(10) NOT NULL default '',
`softtype` varchar(10) NOT NULL default '',
`accredit` varchar(10) NOT NULL default '',
`os` varchar(30) NOT NULL default '',
`softrank` mediumint(8) unsigned NOT NULL default '0',
`officialUrl` varchar(30) NOT NULL default '',
`officialDemo` varchar(50) NOT NULL default '',
`softsize` varchar(10) NOT NULL default '',
`softlinks` text,
`introduce` text,
`daccess` smallint(5) NOT NULL default '0',
`needmoney` smallint(5) NOT NULL default '0',
`templet` varchar(30) NOT NULL default '',
`userip` char(15) NOT NULL default '',
`redirecturl` varchar(255) NOT NULL default '',
PRIMARY KEY (`aid`),
KEY `softMain` (`typeid`)
) TYPE=MyISAM;
如果已经安装了dedecms,则只需要进入MySQL数据库,删除对应的数据表即可
==Tips:如果拿不准某个数据表可不可以删除,可以百度一下,确定该数据表的功能,如果我们需要精简的就删除。删除之前请做好备份==