无限星辰工作室-客户无限互联网动力之源

标题: BAE3.0安装Discuz 3.2官方版攻略:支持云存储、解决svn发布覆盖 [打印本页]

作者: crx349    时间: 2014-6-16 09:49
标题: BAE3.0安装Discuz 3.2官方版攻略:支持云存储、解决svn发布覆盖
概要:

1. 本攻略在BAE3.0测试通过,并且实现Discuz远程附件云存储。部分BAE版本Discuz多为对BCS进行支持,此处使用其他插件支持了云存储。
2. 发布覆盖问题:BAE3.0不能操作发布后的目录,存在svn提交再发布系统还原的问题,本攻略解决了此问题。(本地安装解决此问题)
3. 本攻略使用官方discuz方式实现。

操作步骤:

1. 下载官方Dz源码:http://download.comsenz.com/DiscuzX/3.1/Discuz_X3.1_SC_UTF8.zip
2. 在本地安装php环境,用于本地安装dz。
3. 通过dz官方手册,在本地install dz,得到安装后的dz目录和mysql数据库数据。
4. 在BAE3.0创建应用引擎 -> 执行单元/扩展服务-mysql,获得svn目录及mysql配置信息。
5. 本地dz目录的config文件夹下文件mysql数据库配置更改为bae的配置(2个文件),其他目录还有一个关于uc的配置要改。
6. 将本地目录安装后得到的目录通过svn上传至bea根目录。
7. 将本地的数据库脚本导入到bea mysql中,数据库名使用bea中的名称。
8. 通过访问测试。如果是真的要运营网站,推荐实现下面第9条。
9. 强烈推荐使用云存储实现远程附件。因为如果不用远程附件附件在bae目录下,创建者不能取出,如果重新发布程序或迁移系统会造成附件数据丢失。10.discuz远程附件使用云存储:

官方更新如下:

8.22
更新七牛云,20MB以内小附件测试通过
8.7
更新阿里云OSS,20MB以内小附件测试通过
云存储接口测试结果:
服务         图片        附件        批量上传         删除操作         大附件
又拍云         图片大于2M时间歇性失败         同左        同左         正常         未测
阿里云         对于10M左右大图上传正常         目前测试20M左右小附件,正常         正常         正常         未测
七牛云         对于10M左右大图上传正常         目前测试20M左右小附件,正常         正常         正常         未测


DiscuzX使用云存储原理:
我们通过改造ftp类,当附件上传到本地时再通过ftp类将附件上传到云存储上。

安装步骤:
1,安装最新框架下载并安装:
(, 下载次数: 0) (, 下载次数: 0) (, 下载次数: 0)
2,下载本附件,并上传到服务器。
3,到config_global.php添加配置信息:
$_config['extend']['storage']['curstorage'] = 'aliyun';
$_config['extend']['storage']['upyun']['bucket'] = 'dztest';
$_config['extend']['storage']['upyun']['username'] = 'dzuser';
$_config['extend']['storage']['upyun']['password'] = 'discuz';
$_config['extend']['storage']['upyun']['attachurl'] = 'http://dztest.b0.upaiyun.com';

$_config['extend']['storage']['aliyun']['access_id'] = '';
$_config['extend']['storage']['aliyun']['access_key'] = '';
$_config['extend']['storage']['aliyun']['access_host'] = NULL;
$_config['extend']['storage']['aliyun']['bucket'] = 'discuzbucket';
$_config['extend']['storage']['aliyun']['attachurl'] = 'http://discuzbucket.oss.aliyuncs.com';

$_config['extend']['storage']['qiniu']['accesskey'] = '';
$_config['extend']['storage']['qiniu']['secretkey'] = '';
$_config['extend']['storage']['qiniu']['attachurl'] = 'http://discuztest.qiniudn.com';
$_config['extend']['storage']['qiniu']['bucket'] = 'discuztest';
复制代码
目前支持这四个云接口,第一行表示目前使用的云接口,一旦确认,不可再改。然后选择补充完对应的配置信息。
4,到后台的全局——上传设置——远程附件,选择打开,下面的信息可以随便填,或者按照一个正确的FTP服务器来填写,当没执行步骤3时,整个过程将按照一个正常FTP设置来运行。
5,上传附件并测试。


附件:   (, 下载次数: 0)

使用注意事项:1,本项测试目前只针对20MB以内小附件,对于大附件请等待以后版本新增的大附件异步上传支持脚本。
2,本服务我们只测试了常规情景下的上传动作,对于其他很多部分暂未测试,欢迎大家试用,并把问题及时反馈给我们以便我们及时修正。
3,本版本暂不支持多组服务器多个云存储同时共存,在使用前确认后不可再改,以后的版本可能会新增多个云存储多个bucket共存并向下兼容。

疑问解答:为什么不改造class_upload类而改造class_ftp类?
这个问题在发布至今一直有人问起,现统一作答。
由于discuz是一个复杂的程序,很多信息还依赖本地支持。比如上传后需要获取附件类型大小,图片附件需要获取尺寸信息,exif,是否为动画等信息并存入数据库。同时上传后的缩略图预览,缩略图生成,数据调用,feed生成等还都依赖本地,这也就决定了目前直接改造upload类会涉及到太大的工作量,直接上传到云存储并不是最好的方法。当然各位如果有兴趣可以自行研究下。

本云存储插件的完成和测试要感谢@myp4p的支持,还有七牛、阿里云官方团队的支持。






欢迎光临 无限星辰工作室-客户无限互联网动力之源 (https://xmspace.net/) Powered by Discuz! X3.4