最近因项目需要用到dedecms,于是决定好好研究一下DeDecms。并记录下来,必备后续。

下载

从官方网站下载
http://www.dedecms.com/products/dedecms/downloads/
当前最新版本是DedeCMS V5.7 SP1
下载后解压,包含docs和uploads文件夹,docs文件夹不需要管理,里面主要是版权申明和更新说明等。我们开发主要是了解uploads下内容,其内部结构如下:

程序安装

项目入口文件index.php

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

if(!file_exists(dirname(__FILE__).'/data/common.inc.php'))//判断数据库配置文件是否存在
{header('Location:install/index.php');exit();
}

当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!");
}

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

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

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

第二步安装(环境测试)

可以从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') ? '<font color=green>[√]On</font>' : '<font color=red>[×]Off</font>');$sp_allow_url_fopen = (ini_get('allow_url_fopen') ? '<font color=green>[√]On</font>' : '<font color=red>[×]Off</font>');$sp_safe_mode = (ini_get('safe_mode') ? '<font color=red>[×]On</font>' : '<font color=green>[√]Off</font>');$sp_gd = ($sp_gd>0 ? '<font color=green>[√]On</font>' : '<font color=red>[×]Off</font>');$sp_mysql = (function_exists('mysql_connect') ? '<font color=green>[√]On</font>' : '<font color=red>[×]Off</font>');if($sp_mysql=='<font color=red>[×]Off</font>')$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();

执行结果如下:

第三步安装(设置参数)

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

第四步安装(普通安装)

在该步骤中主要进行,连接数据库、创建数据库、设置编码、读取配置文件信息并用提交的数据进行相应的替换、修改数据目录权限、将数据库配置信息添加到data/common.inc.php中,其他配置信息添加到、创建数据表并导入数据、更新配置、增加管理员帐号、安装体验数据。

到这一步,安装已经算是完成了。

最后一步(初始化)


前端界面(但是第三步选择不同的模块界面可能不一样)

后端界面

备注

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

DeDeCMS二次开发教程之程序安装相关推荐

  1. 织梦二次开发写php,PHP教程—DedeCMS二次开发(二)

    织梦内容管理系统(DedeCMS),是一个集内容发布.编辑.管理检索等于一体的网站管理系统(Web CMS),他拥有国外CMS众多特点之外,还结合中国用户的需要,对内容管理系统概念进行明确分析和定位. ...

  2. dedecms二次开发:自定义模型使用教程

    dedecms二次开发:自定义模型使用教程 在织梦系统中有内容模型这个概念,不同内容模型可以用来构建不同内容形式的站点,在系统中自带了以下几种模型:普通文章.图集.软件.商品.分类信息.专题.通过系统 ...

  3. shopify二次开发教程_详细教程:如何将Shopify的Storefront API与React和Redux结合使用...

    shopify二次开发教程 by Chris Frewin 克里斯·弗里温(Chris Frewin) 详细教程:如何将Shopify的Storefront API与React和Redux结合使用 ( ...

  4. 最好最实用的二次开发教程 cms

    ◆二次开发 什么是二次开发? 二次开发,简单的说就是在现有的软件上进行定制修改,功能的扩展,然后达到自己想要的功能和效果,一 般来说都不会改变原有系统的内核. 为什么要二次开发? 随着信息化技术的不断 ...

  5. Xamarin Anroid开发教程之下载安装Xamarin

    Xamarin Anroid开发教程之下载安装Xamarin Xamarin在过去安装时都会检查系统中是否安装了前面所提供的内容.而后来,Xamarin安装时只提供安装步骤,其它内容都需要读者自己下载 ...

  6. 来自damon的zencart二次开发教程-3.2复制模板(仿站)操作教程

    用zencart来复制别人的网站成本低,效率高.前面我发了一篇有关开发自己的zencat模板的文章(<来自damon的zencart二次开发教程-3.1开发自己的zencart模板>),里 ...

  7. UG二次开发教程(基于NX12.0/VS2015版本)

    ** UG二次开发教程(基于NX12.0/VS2015版本) 安装教程 ** UG NX12.0安装 NX12.0 安装包下载地址: 链接:https://pan.baidu.com/s/1I0CCF ...

  8. pythoncad二次开发视频_revit二次开发|bim软件二次开发|revit二次开发教程|Revit二次开发技术文档...

    二次开发 revit二次开发|bim软件二次开发|revit二次开发教程|Revit二次开发技术文档2019-07-08赞( 0 ) 记录一下CAD二次开发的一些简单实例. 1.helloworld ...

  9. php织梦二次开发的功能例子,织梦dedecms二次开发php使用json讲解

    织梦dedecms二次开发php使用json讲解 简 单地说,JSON 可以将 JavaScript 对象中表示的一组数据转换为字符串,然后就可以在函数之间轻松地传递这个字符串,或者在异步应用程序中将 ...

  10. 来自damon的zencart二次开发教程-3.1开发自己的zencart模板

    转载自:http://www.yunxiu.org/blog/ 今天在网上FQ看到一篇老外写的,关于制作zencart模板的文章.<Creating a new Zen Cart Templat ...

最新文章

  1. Python 爬取可用代理 IP
  2. java 大特性_java三大特性
  3. c++基础学习(04)--(函数、数字、数组、字符串)
  4. Elasticsearch7.15.2 修改IK分词器源码实现基于MySql8的词库热更新
  5. ftl 展示图片_视频号变迁的内容展示逻辑
  6. 用javascript实现以下功能!_JavaScript实现汉字转拼音功能
  7. Python3.2官方文档翻译--迭代器
  8. CentOS6.5菜鸟之旅:中文编辑器忍痛放弃Sublime
  9. [C++/CLI编程宝典][7]基本概念
  10. MMIO与PIO区别
  11. 图书管理系统(C语言实现)
  12. verilog实现三人表决器
  13. 项目进度管理方法——里程碑式管理
  14. mysql免费常用编译器_20款最好的免费的IDES和编辑器
  15. 将PDF文件转换为Word文档和其他格式
  16. gensim 主题模型 seed
  17. cocos2dx 3.17.2 升级最新的Spine
  18. 基于Ubuntu 16.04的HUSTOJ在线判题系统的搭建
  19. 智慧外链微信小程序源码1.8版本
  20. C语言答案写成科学记数法,c语言科学记数法_C语言中、科学计数法123456e+002具体代表什么意思、或者说怎么理解这个数_淘题吧...

热门文章

  1. 计算机桌面背景在哪里调整,电脑中怎么设置桌面背景
  2. 最全英语日期相关表达
  3. 【游记】CSP2021-试手记
  4. 国内顶尖网页游戏制作人和主策划名单
  5. JavaSE实战项目:飞翔的小鸟(完整版)
  6. 信息学奥赛一本通 1947:【09NOIP普及组】细胞分裂 | 洛谷 P1069 [NOIP2009 普及组] 细胞分裂
  7. 利率掉期(利率互换)的解释
  8. 2019前端书籍推荐,前端PDF书籍,前端书籍下载
  9. Python pandas.DataFrame.add_suffix函数方法的使用
  10. Sbo之于中国的使用现状分析