您现在的位置是:首页 > cms教程 > Discuz教程Discuz教程
Discuz!NT网站安装自动化论坛程序安装及初始化过程
书雪2025-07-08Discuz教程已有人查阅
导读网站安装自动化--论坛程序安装及初始化过程论坛的安装文件位于Discuz.Web中的Instal文件夹中。该文件夹中的文件index.aspx为安装的起始页。
网站安装自动化--论坛程序安装及初始化过程论坛的安装文件位于Discuz.Web中的Instal文件夹中。该文件夹中的文件index.aspx为安装的起始页。
论坛程序的安装过程同样也要经过ReUrl_BeginRequest的处理。只是,ReUrl_BeginRequest没有对对页面/install/index.aspx的请求进行任何操作,因此我们在浏览器中看到的地址是:http://localhost:1543/install/index.aspx这种样式的。
安装起始页中没有进行什么操作可以简单地当作一个Html页面来看待。选中界面中的“ 接受”点击下一步,进入下一页:在代码中可以看到下一步按钮的信息如下:
系统按照下边的过程完成安装
(1)环境检测
第二页的顶部有一行代码如下:
用我的大白话说:这个页面中的函数都来自于step3.aspx.cs中的类install。
页面显示前,程序通过step3.aspx.cs文件中的install类的Page_Load函数加载了程序的一些配置信息,如连接字符串等。这些暂时都不需要的!
程序在step2.aspx页面中完成对安装环境的检测。step2.aspx中有一段代码是这样的:
函数InitialSystemValidCheck完成对安装环境的检测。具体检测过程如下:
1、首先检测Bin目录下的DLL是由齐全:
通过函数IISSystemBINCheck(ref error)实现。
2、检测DNT.Config文件的有效性:
通过函数GetRootDntconfigPath()实现
3、检测程序文件目录(admin,aspx,avatars,cache,config,editor,images,templates,upload)的读写权限
通过循环调用函数SystemFolderCheck()来检测
4、检查对文件(admin\\xml\\navmenu.config,javascript\\common.js,install\\systemfile.aspx,upgrade\\systemfile.aspx)的读写权限
通过函数SystemFileCheck(file)来实现
5、检测对系统临时目录的读写权限
通过函数TempTest()实现
6、config文件反序列化检测
通过函数SerialiazeTest()实现
检查结果和样式信息保存在一个StringBuilder中永远用于输出。
如果这些检查都通过了,就可以进入下一步进入step3.aspx开始安装。
(2)配置数据库信息
step3.aspx页面头部也包含了:
填写好这些信息之后,点击下一步 这里有个二次提交我不怎么理解。
根据跟踪结果,二次提交之后,首先将刚才的连接字符串填充到页面。之后通过FillDatabaseInfo()来检查刚才输入数据库信息是否正确:即是否能练到相应的数据库。如果数据库连接成功则通过下面的代码保存刚才的配置后,跳转到下一页:
页面step4.aspx继承自Discuz.Install.InstallStep4.这个页面完成数据库的初始化(建表和存储过程,表中输入管理员信息等)。Discuz.Install.InstallStep4同样是继承自SetupPage。页面重写了SetupPage中的Setup函数。在重写的函数从调用CreateTableAndSP() 和InitDB()函数完成数据库的初始化。
这两个函数是通过加载安装目录中表和存储过程的创建脚本来创建表的。加载完脚本,是由DbHelper.ExecuteCommandWithSplitter函数来执行脚本即完成了数据库的初始化工作。
初始化完成了,通过Server.Transfer("succeed.aspx", true);跳转到安装成功页面。
(4)到这里安装过程全部结束
Technorati 标签: DNT
论坛程序的安装过程同样也要经过ReUrl_BeginRequest的处理。只是,ReUrl_BeginRequest没有对对页面/install/index.aspx的请求进行任何操作,因此我们在浏览器中看到的地址是:http://localhost:1543/install/index.aspx这种样式的。
安装起始页中没有进行什么操作可以简单地当作一个Html页面来看待。选中界面中的“ 接受”点击下一步,进入下一页:在代码中可以看到下一步按钮的信息如下:
<button type="button" name="next" id="next" disabled="disabled" onclick="location.href='step2.aspx'">下一步</button>
通过onclick将页面跳转到step2.aspx。废话不多说,开始安装系统按照下边的过程完成安装
(1)环境检测
第二页的顶部有一行代码如下:
<%@ Page Language="c#" AutoEventWireup="false" Inherits="Discuz.Install.install" %>
这里定义了 ASP.NET 页分析器和编译器使用的页特定(.aspx 文件)属性。其中Inherits属性定义供页继承的代码隐藏类,这个类可以是从Page派生的任何类。Inherits="Discuz.Install.install"说明该页面继承自类Discuz.Install.install。这个类位于项目Discuz.Install中的step3.aspx.cs文件中。(不知道DNT为什么。明明是安装的第二页,非要放到step3.aspx.cs中)用我的大白话说:这个页面中的函数都来自于step3.aspx.cs中的类install。
页面显示前,程序通过step3.aspx.cs文件中的install类的Page_Load函数加载了程序的一些配置信息,如连接字符串等。这些暂时都不需要的!
程序在step2.aspx页面中完成对安装环境的检测。step2.aspx中有一段代码是这样的:
<ul class="list">
<%
bool err = false;
Response.Write(SetupPage.InitialSystemValidCheck(ref err));
%>
</ul>
环境检测功能使用了Discuz.Install程序集中的SetupPage类中的函数。由于install类继承自SetupPage,所以这里可以直接使用SetupPage中的Public函数。函数InitialSystemValidCheck完成对安装环境的检测。具体检测过程如下:
1、首先检测Bin目录下的DLL是由齐全:
通过函数IISSystemBINCheck(ref error)实现。
2、检测DNT.Config文件的有效性:
通过函数GetRootDntconfigPath()实现
3、检测程序文件目录(admin,aspx,avatars,cache,config,editor,images,templates,upload)的读写权限
通过循环调用函数SystemFolderCheck()来检测
4、检查对文件(admin\\xml\\navmenu.config,javascript\\common.js,install\\systemfile.aspx,upgrade\\systemfile.aspx)的读写权限
通过函数SystemFileCheck(file)来实现
5、检测对系统临时目录的读写权限
通过函数TempTest()实现
6、config文件反序列化检测
通过函数SerialiazeTest()实现
检查结果和样式信息保存在一个StringBuilder中永远用于输出。
如果这些检查都通过了,就可以进入下一步进入step3.aspx开始安装。
(2)配置数据库信息
step3.aspx页面头部也包含了:
<%@ Page Language="c#" Inherits="Discuz.Install.install" %>
该页面同样是继承自继承自类Discuz.Install.install。在这个页面加载前,程序首先读取默认的DNT.config文件中读取配置信息,提取连接字符串填充页面上的信息。实现如下:
//读取默认dnt.config文件内容
BaseConfigInfo dntConfigInfo = BaseConfigProvider.GetRealBaseConfig(); //读取DNT.config文件
if (dntConfigInfo != null)
{
FillDatabaseInfo(dntConfigInfo.Dbconnectstring);提取连接字符串
tablePrefix = dntConfigInfo.Tableprefix;
}
待用户填写自己的数据库配置信息后,通过函数EditDntConfig将配置信息保存到DNT.config文件中。填写好这些信息之后,点击下一步 这里有个二次提交我不怎么理解。
根据跟踪结果,二次提交之后,首先将刚才的连接字符串填充到页面。之后通过FillDatabaseInfo()来检查刚才输入数据库信息是否正确:即是否能练到相应的数据库。如果数据库连接成功则通过下面的代码保存刚才的配置后,跳转到下一页:
EditDntConfig(Request["sql_ip"], Request["sql_username"], Request["sql_password"], Request["sql_name"], Request["table_prefix"]);
ClientScript.RegisterStartupScript(typeof(Page), "error", "location.href='step4.aspx'", true);
(3)配置论坛路径和管理员信息并执行脚本初始化数据库页面step4.aspx继承自Discuz.Install.InstallStep4.这个页面完成数据库的初始化(建表和存储过程,表中输入管理员信息等)。Discuz.Install.InstallStep4同样是继承自SetupPage。页面重写了SetupPage中的Setup函数。在重写的函数从调用CreateTableAndSP() 和InitDB()函数完成数据库的初始化。
这两个函数是通过加载安装目录中表和存储过程的创建脚本来创建表的。加载完脚本,是由DbHelper.ExecuteCommandWithSplitter函数来执行脚本即完成了数据库的初始化工作。
初始化完成了,通过Server.Transfer("succeed.aspx", true);跳转到安装成功页面。
(4)到这里安装过程全部结束
Technorati 标签: DNT
本文标签:
很赞哦! ()
图文教程
discuz安装显示php版本低怎么办
discuz安装显示php版本低解决方法1、首先打开phpsutdy进入管理面板;2、点击侧栏【网站】进入到网站管理页面;
discuz的uc密码忘记了怎么修改
朋友一个网站的密码忘记了,叫我帮他修改,用的是discuz x2.5也是较新的论坛系统,这个我以前很少用,也没怎么接触,第一当然我就是首先去修改mysql数据库
discuz后台开发常用函数介绍
$setname - 指定输出标题,如:setting_basic_bbname, 自动匹配描述文字为:setting_basic_bbname_comment,comment形式文字可以在
Discuz二次开发文件目录结构说明
一) Discuz!的文件系统目录注:想搞DZ开发,就得弄懂DZ中每个文件的功能。a) Admin:后台管理功能模块b) Api:DZ系统与其它系统之间接口程序
相关源码
-
自适应黑色简繁双语轴承齿轮机械设备制造网站模板该模板为轴承齿轮机械制造企业提供一体化网站建设方案,着重解决行业特有的多语言展示、移动端适配和高效率内容管理需求,帮助企业精准展示产品特性与工艺流程查看源码 -
响应式HTML5家居建材办公家具桌椅pbootcms模板为家居建材、办公家具企业打造的响应式网站模板,同时支持多行业快速适配通过替换文字图片即可转型为其他行业官网,大幅降低开发成本。查看源码 -
(PC+WAP)绣花刺绣传统手工工艺pbootcms网站源码下载这款基于PbootCMS的网站模板为刺绣和传统手工艺行业设计,采用优雅的布局和精致的细节处理,能够呈现手工艺品的独特韵味和文化内涵。模板结构合理,功能完善,是手工艺从业者展示作品的理想选择。查看源码 -
(自适应)橙色家政服务清洁保洁服务pbootcms网站模板源码下载模板核心价值:基于PbootCMS内核开发的家政服务类网站模板,通过模块化设计展现服务项目、团队风采、服务案例等核心板块,突出时效预约、服务标准化展示等家政行业特性。查看源码 -
(自适应)英文电子芯片电子元件网站pbootcms模板下载基于PbootCMS内核开发的电子元件类企业专用模板,采用响应式设计技术,适配电子元器件、集成电路、半导体等行业的品牌展示与技术文档发布需求。前端布局针对芯片参数表格与产品规格书展示进行深度优化。查看源码 -
pbootcms网站模板响应式全屏旅游景区网站源码本模板为风景民宿、旅游景区等企业设计,基于PbootCMS内核开发,具备响应式布局与专业SEO优化功能,助力企业低成本高效获客。以下是核心特点:查看源码
| 分享笔记 (共有 篇笔记) |
