大家都知道,dedecms的data经常是黑客攻击的重点,那么会了安全,我们会将data目录迁移出web目录。dedecms织梦官方提供了一个教程,但是如果你是按照他们提供的教程做的话会出现很多问题。比如验证码问题,图片显示问题等等一大堆。织梦官方这种是很不负责任的,因为那个教程有很大缺陷。这里跟大家提供一个完整版本的如何将dede织梦data目录正确迁移,以及按照官方版本教程迁移出现问题的解决办法。这里先看看官方的吧,然后我再补充。
1、将data目录转移到非Web目录
我们这里举例“D:\dedecms\v57”为我们系统的根目录,我们需要将目录下的data文件夹(如图1)迁移要上一级目录(非Web目录),简单的办法直接剪切或者拷贝即可。
我们移动上一级目录中,注意观察文件路径。
2.修改DEDEDATA目录的配置常量
找到系统目录下/include/common.inc.php文件,修改DEDEDATA常量为你的系统目录。
3.配置tplcache缓存文件目录
进入系统后台,在配置中修改tplcache目录为你想对目录。
到了这里官方说教程已经完成,可是如果你信了那就麻烦了。你会碰到很多问题。这么草率的搬离问题很多的比如,我们常见的网站地图和生成的JS文件,全部会导致路径不正确。例如发现移动后有两点问题,第一、后台登陆不显示验证码了,第二、联动类别后台发布的时候不显示.移动后发布文章时候联动类别不显示和后台登陆不显示验证码。等等,即使你想要转移回去发现问题依然存在。其实真正正确的转移方法是:你需要把整个程序里所有关于调用到'/../data'
的部分全部换掉。而不仅仅是上面官方说的那几个。下面就挨个说下经常碰到的问题解决方法。
转移data目录后验证码不显示或者输入验证码一直提示错误
不显示验证码的同学请改一下/include/vdimgck.php这个文件 这个文件里也调用了DATA里的文件也可以改路径,把带有这个 /../data
改成你现在的路径。
$im = @imagecreatefromjpeg(dirname(__FILE__).'/data/vdcode.jpg');
首页index.php文件也需要修改
还需要把首页中index.php中的/data/改为/../data。也就是下面这句。
if(!file_exists(dirname(__FILE__).'/data/common.inc.php'))
{
header('Location:install/index.php');
exit();
}
DEDECMS默认生成的rss地图以及网站地图等都是生成在DATA的文件夹中,但是这个是一个非常重要的文件夹,一般我们在 Robots.txt
是禁止搜索引擎爬行这文件夹的,这就造成了,我们生成了地图,但是搜索根本就找不到的尴尬,下面就教大家如何更改自动生成的目录
下面是详细的步骤:
1,首先登录ftp,在根目录下建立rss文件夹
2,修改根目录下你的管理员文件夹(默认是dede)下的makehtml_map.php文件
将17行的$cfg_cmspath."/data/sitemap.html";改为
$cfg_cmspath."/sitemap.html";
将22行的$cfg_cmspath."/data/rssmap.html";改为
$cfg_cmspath."/rssmap.html";
17行是普通网站地图,22行是RSS的网站地图
3,修改根目录下include下面的arc.rssview.class.php
将71行的$murl =
$GLOBALS['cfg_cmspath']."/data/rss/".$this->TypeID.".xml";改为
$murl = $GLOBALS['cfg_cmspath']."/rss/".$this->TypeID.".xml";
4,修改根目录下include下的sitemap.class.php
将57行的$typelink = $GLOBALS['cfg_cmsurl']."/data/rss/".$row->id.".xml";
$typelink = $GLOBALS['cfg_cmsurl']."/rss/".$row->id.".xml";
将94行的$typelink = $GLOBALS['cfg_cmsurl']."/data/rss/".$row->id.".xml";
$typelink = $GLOBALS['cfg_cmsurl']."/rss/".$row->id.".xml";
5,修改/templets/default模板文件head.htm
在11行左右找到
网站地图
RSS订阅
改为
网站地图
RSS订阅
6,进入后台,更新网站地图,更新RSS文件,更新主页。