DedeCMS二次开发之程序安装

 一、什么是DedeCMS   

织梦内容管理系统(DedeCMS),是一个集内容发布、编辑、管理检索等于一体的网站管理系统(Web CMS),他拥有国外CMS众多特点之外,还结合中国用户的需要,对内容管理系统概念进行明确分析和定位。   作为国内第一个开源的内容管理系统,DedeCMS在创建以来都在摸索中国互联网内容管理系统的道路,并且引领众多开源CMS前进的道路,程序由当年个人作品,现已组建团队,在提升用户服务、提高产品质量的同时,对中国网站内容管理系统进行研究,成为目前市场上最受欢迎的内容管理系统。 

织梦CMS官方网站:http://www.dedecms.com/

二、下载

官方网站下载 :http://www.dedecms.com/products/dedecms/downloads/

最新版本为DedeCMS V5.7 SP1 

下载后解压,包含docs和uploads文件夹,docs文件夹不需要管理,里面主要是版权申明和更新说明等。我们开发主要是了解uploads下内容,其内部结构如下:

DedeCMS二次开发之程序安装_第1张图片

三、程序安装

项目入口为index.php

下载dedecms后,当第一次执行程序中index.php文件(localhost/dedecms/),程序就会开始安装。程序安装首先从index.php文件说起,打开该文件我们可以看到,最前面几行代码如下:

GetOne("Select * From `#@__homepageset`");
    $row['templet'] = MfTemplet($row['templet']);
    $pv = new PartView();
    $pv->SetTemplet($cfg_basedir . $cfg_templets_dir . "/" . $row['templet']);
    $row['showmod'] = isset($row['showmod'])? $row['showmod'] : 0;
    if ($row['showmod'] == 1)
    {
        $pv->SaveToHtml(dirname(__FILE__).'/index.html');
        include(dirname(__FILE__).'/index.html');
        exit();
    } else { 
        $pv->Display();
        exit();
    }
}
else
{
    header('HTTP/1.1 301 Moved Permanently');
    header('Location:index.html');
}
?>

当common.inc.php文件不存在时候,就执行install/index.php文件,显然是执行安装文件。common.inc.php文件属于配置文件,在实际上线后,我个人觉得,这上面的几行php代码完全可以删除掉,且连同install目录一块删除掉。

四、安装入口

install/index.php文件前面的代码如下: 

/**
 * @version        $Id: index.php 1 13:41 2010年7月26日Z tianya $
 * @package        DedeCMS.Install
 * @copyright      Copyright (c) 2007 - 2010, DesDev, Inc.
 * @license        http://help.dedecms.com/usersguide/license.html
 * @link           http://www.dedecms.com
 */
@set_time_limit(0); //设置程序相应时间
//error_reporting(E_ALL);
error_reporting(E_ALL || ~E_NOTICE); //设置错误级别

$verMsg = ' V5.7 UTF8SP1';  //定义版本号
$s_lang = 'utf-8';   
$dfDbname = 'dedecmsv57utf8sp1';  //数据库名字
$errmsg = '';
$install_demo_name = 'dedev57demo.txt';
$insLockfile = dirname(__FILE__).'/install_lock.txt'; //锁文件
$moduleCacheFile = dirname(__FILE__).'/modules.tmp.inc';  //缓存文件

define('DEDEINC',dirname(__FILE__).'/../include');  //定义根目录下的include目标
define('DEDEDATA',dirname(__FILE__).'/../data');  //定义数据目录
define('DEDEROOT',preg_replace("#[\\\\\/]install#", '', dirname(__FILE__)));  //获取网站根目录
header("Content-Type: text/html; charset={$s_lang}");  //设备编码

require_once(DEDEROOT.'/install/install.inc.php'); //加载安装需要的函数文件
require_once(DEDEINC.'/zip.class.php');//加载压缩文件

foreach(Array('_GET','_POST','_COOKIE') as $_request) //对数据进行过滤,并将数组元素转为变量
{
    foreach($$_request as $_k => $_v) ${$_k} = RunMagicQuotes($_v);
}

require_once(DEDEINC.'/common.func.php'); //加载dedecms基本函数文件

if(file_exists($insLockfile)) //为了防止重复安装,添加锁文件
{
    exit(" 程序已运行安装,如果你确定要重新安装,请先从FTP中删除 install/install_lock.txt!");
}

第一步安装(使用协议书)

默认安装步骤是第一步,执行的文件install/templates/step-1.html文件,主要是版权信息。

if(empty($step)) //默认从第一步开始安装
{
    $step = 1;
}
if($step==1)
{
    include('./templates/step-1.html');
    exit();
}

DedeCMS二次开发之程序安装_第2张图片

第二步安装(环境测试)

可以从install/templates/step-1.html中代码看出,第二步还是执行index.php文件,只是传递一个step为2的变量。

$phpv = phpversion(); //获取php版本
    $sp_os = PHP_OS; //php运行的系统
    $sp_gd = gdversion(); //判断GD库版本
    $sp_server = $_SERVER['SERVER_SOFTWARE'];
    $sp_host = (empty($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_HOST'] : $_SERVER['REMOTE_ADDR']); //获取用户ip,如果ip不存在,就获取主机名
    $sp_name = $_SERVER['SERVER_NAME']; //获取服务器主机名称
    $sp_max_execution_time = ini_get('max_execution_time'); //判断是否设置了最大执行时间
    $sp_allow_reference = (ini_get('allow_call_time_pass_reference') ? '[√]On' : '[×]Off');
    $sp_allow_url_fopen = (ini_get('allow_url_fopen') ? '[√]On' : '[×]Off');
    $sp_safe_mode = (ini_get('safe_mode') ? '[×]On' : '[√]Off');
    $sp_gd = ($sp_gd>0 ? '[√]On' : '[×]Off');
    $sp_mysql = (function_exists('mysql_connect') ? '[√]On' : '[×]Off');

    if($sp_mysql=='[×]Off')
    $sp_mysql_err = TRUE;
    else
    $sp_mysql_err = FALSE;

    $sp_testdirs = array(
        '/',
        '/plus/*',
        '/dede/*',
        '/data/*',
        '/a/*',
        '/install',
        '/special',
        '/uploads/*'
    );
    include('./templates/step-2.html');
    exit();

DedeCMS二次开发之程序安装_第3张图片

第三步安装(设置参数)

在该步骤中,主要是初始化一些默认的设置,如数据库名称、数据表前缀、Cookie加密码等,然后以表单形式提交。

DedeCMS二次开发之程序安装_第4张图片


最后一步(初始化)

DedeCMS二次开发之程序安装_第5张图片前端界面(但是第三步选择不同的模块界面可能不一样)

DedeCMS二次开发之程序安装_第6张图片

后端界面

DedeCMS二次开发之程序安装_第7张图片

备注:

1.字符串中包含变量,使用{}包含变量,对变量做界定,如”hello{$name}goodmonery”,如果没有界定符就会出错。 
2.magic_quotes_gpc,脚本将自动过滤post、get、cookie中数据,如果没有,通过使用addslashes对post、get、cookie中的数据进行过滤。

注意:

dede织梦cms系统的程序存在漏洞,黑客攻击方法层出不穷,导致网站经常被黑,被百度安全中心等拦截,影响排名和流量,让站长非常头疼,下面总结一些防止dede织梦cms系统被攻击设置的方法,可有效的防止织梦系统被挂马,仅供各位站长参考。

1.安装时数据库的前缀不用dedecms默认的前缀dede_,可以改成其他的名称如diy_
2.装好dede织梦cms系统后删除装文件install
3.修改织梦后台文件目录:把默认的dede改成其他名字
4.织梦后台后台密码尽量复杂化:密码应该由大写字母、小写字母和数字组成
5.将系统的data目录迁移到根目录以外:data目录是系统缓存和配置文件的目录,一般都有可以读写的权限,只要是能够写入的目录都可能存在安全隐患,很多站长甚至给予这个目录可执行的权限,更是非常危险,所以我们建议将这个data目录搬移出Web可访问目录之外
6.不用会员系统,就把member整个文件夹全部


你可能感兴趣的:(DedeCMS二次开发之程序安装)