互联网技术 · 2024年2月27日 0

在新浪SAE应用平台上创建Discuz!论坛的指南

一、 sae与Discuz!的简单介绍 sae是不支持IO操作的,代码目录不能写入。这意味着普通程序的上传图片、生成缓存等操作都不能在SAE上正常运行,这时候你需要对这些代码进行修改后才能让你的程序运行在SAE上。

sae为啥禁止IO写操作

SAE采用分布式架构设计, 应用代码将部署在多台前端服务器上, 每次访问请求可能到达不同服务器。(如下图):

在新浪SAE应用平台上创建Discuz!论坛的指南

假设现在有A、B、C、D四台服务器。用户上传一张图片到A服务器,第二次访问请求可能到达B服务器,此时将无法获取保存在A服务器上的图片。

SAE使用MemcacheX、Storage等存储型服务代替传统IO操作,效率比传统IO读写操作高,有效解决因IO瓶颈导致程序性能低下的问题。

Discuz!方面,discuz的流程控制大概是这样的:

后台流程控:DZ后台所有的功能,均需要注册到admincp.php文件,每个功能都至少有一个或一个以上的Action(动作),在 admincp.php中,可以定义Action的执行权限,分别为:“admin==1”管理员,或“admin==2 || admin==3”超级版主和版主,每个Action对应一个脚本文件,脚本文件的命名为action.inc.php(*.inc.php),并存放在 admin目录下,如执行:admincp.php?action=dodo,相当于执行admin目录下的dodo.inc.php文件

前台流程控制:前台的流程控制比较简单:流程是自由的,首页index.php、会员注册register.php、会员登录logging.php、发贴程序post.php、会员信息:member.php等,此处不一一列出。

Discuz!的显示层就是大家通常所看到的网站风格了。DZ中每套风络分别在templates及images下对应一个风格文件的存放目录。网站风格的制作,请参阅详细的DZ风格制作文档

DZ网站风格文件处理的原理其实很简单,DZ使用template.func.php中的parse_template()以PHP正则运算把htm模文件中的模板标签,转换成了PHP代码,并根据styleid保存在forumdata/templates下,这个有点像Smarty中的技术。

二、discuz安装详解 下面为大家介绍在sae上安装discuz。

1 SAE环境配置 1.1创建应用 当然在上传前你需要在新浪SAE下新建一个应用。

在新浪SAE应用平台上创建Discuz!论坛的指南

由于你创建的网站是在新浪SAE下面的,所以使用的是sinaapp.com的二级域名。你主要在SAE后台写一下二级域名的名字和应用名字就行了。

1.2初始化数据库 登陆你的SAE应用管理后台,点击mysql,初始化数据库。

在新浪SAE应用平台上创建Discuz!论坛的指南

1.3开启Memcache 开启memcache,10M就可以了。

在新浪SAE应用平台上创建Discuz!论坛的指南

1.4创建Storage 创建名为discuzx的storage(公有,别建私有的域)。

在新浪SAE应用平台上创建Discuz!论坛的指南

2 上传代码 登陆你的SAE应用管理后台,点击“代码管理”,创建一个新版本。

在新浪SAE应用平台上创建Discuz!论坛的指南

出现上传代码框,直接选择代码包上传就行,要等待一会。

3 Discuz!X安装 3.1安装 访问安装链接http://appname.sinaapp.com/install/ ,把appname改成你应用二级域名的前缀。我刚才建的是luntan123,所以接着输入

http://luntan123.sinaapp.com/install/进行安装就行了。

安装过程中,忽略环境不支持的提示,直接进入下一步。填写您的用户名密码即可,无需修改数据库信息的配置(建议不要修改表前缀,因为后续有很多操作需要默认前缀)。

在新浪SAE应用平台上创建Discuz!论坛的指南

点击我同意,在点击下一步,选择默认“全新安装Discuz! X (含 UCenter Server)”继续点击下一步,

就是安装数据库,都与都是默认的,你主要填写系统信息email,管理员email,切忌这两项一定要写,不然无法安装,管理员账号就直接用默认的admin就行了,设置和确认一下你的密码,在点击下一步

在新浪SAE应用平台上创建Discuz!论坛的指南

然后你的Discuz! X2论坛就安装成功啦。这个是做的地址http://luntan123.sinaapp.com/。当然在安装好之后一定要通过SDK把install目录文件下的index.php文件给删除了。

3.2更新缓存 操作流程:工具-》更新缓存-》确定。

3.3执行uploadimg.php将discuzx的图片上传到storage 访问根目录的uploadimg.php即可上传图片到storage。原因是由于discuzx使用的css缓存文件存储在storage上,而css中的图片使用了相对路径,故图片需要上传到storage上。uploadimg.php文件执行一次之后可删除。

这步不操作的话,前台页面访问会有样式缺图片。完成后就能美观的显示啦。

OK就介绍到这里~~