欢迎各位兄弟 发布技术文章
这里的技术是共享的
data目录是系统缓存和配置文件的目录,一般都有可以读写的权限,只要是能够写入的目录都可能存在安全隐患,很多站长甚至给予这个目录可执行的权限,更 是非常危险,所以我们建议将这个data目录搬移出Web可访问目录之外。本篇将介绍如何将data目录搬移出Web访问目录。
我们这里举例“D:\dedecms\v57”为我们系统的根目录,我们需要将目录下的data文件夹(如图1)迁移要上一级目录(非Web目录),简单的办法直接剪切或者拷贝即可。
我们移动上一级目录中,注意观察文件路径。
找到系统目录下/include/common.inc.php文件,修改DEDEDATA常量为你的系统目录。
进入系统后台,在配置中修改tplcache目录为你想对目录。
好了,这样我们就将data目录顺利迁移出去了。
(有可能linux 禁止访问 网站目录外的目录 ,此时要注意让它不禁止)(如何不禁止,忘记了 好像wdcp 或者什么景安的控制面板的后台有这个功能 如果有必要 可以借鉴这个(apache配置:禁止访问网站根目录外的文件)看看)
这里还得修改data路径,立刻修改,刷新,首页不再跳转。
好了,这样我们就将data目录顺利迁移出去了。
可是我们又发现另外一个问题,登录管理后台时验证码不显示了。
解决方法:
开include下的vdimgck.php, 找到如下代码:
复制代码代码如下:
require_once (dirname(__FILE__).'/../data/safe/inc_safe_config.php');
require_once (dirname(__FILE__).'/../data/config.cache.inc.php');
$config = array(
'font_size' => 14,
'img_height' => $safe_wheight,
'word_type' => (int)$safe_codetype, // 1:数字 2:英文 3:单词
'img_width' => $safe_wwidth,
'use_boder' => TRUE,
'font_file' => dirname(__FILE__).'/data/fonts/ggbi.ttf',
'wordlist_file' => dirname(__FILE__).'/data/words/words.txt',
'filter_type' => 5);
$sessSavePath = dirname(__FILE__)."/../data/sessions/";
将上面代码中的data路径做相应的调整,比如上面3步操作是将data移到根目录的上一级目录,我们这里对data的路径加一个“/..”,改后如下:
复制代码代码如下:
require_once (dirname(__FILE__).'/../../data/safe/inc_safe_config.php');
require_once (dirname(__FILE__).'/../../data/config.cache.inc.php');
$config = array(
'font_size' => 14,
'img_height' => $safe_wheight,
'word_type' => (int)$safe_codetype, // 1:数字 2:英文 3:单词
'img_width' => $safe_wwidth,
'use_boder' => TRUE,
'font_file' => dirname(__FILE__).'/data/fonts/ggbi.ttf',
'wordlist_file' => dirname(__FILE__).'/data/words/words.txt',
'filter_type' => 5);
$sessSavePath = dirname(__FILE__)."/../../data/sessions/";
好了,这样就可以了。
登录后台却还是提示data和uploads有执行权限,那么就在根目录下建立一个data空目录,并在httpd.conf中把这个空目录data设置为禁止执行php权限即可
还有个问题 /织梦后台路径/index_testenv.php
中大约 142 行 左右 要改一下 data的路径
(if(TestExecuteable(DEDEROOT.'/../data',$cfg_basehost) || TestExecuteable(DEDEROOT.'/uploads',$cfg_basehost)))
否则循环 检测路径 执行 它里面的 TestWriteable 这个方法 会耗很长时间