幻蓝博客 – 孤月蓝风

追寻互联网科技、Unity开发、AR/VR开发、游戏开发、Web前后端开发等技术。

Emlog 5.2.0 For BAE 发布,支持BCS云存储附件上传(2013.12.03更新)


BAE 3.0 即将收费,本博客将迁移至我购买的国外主机,暂不继续更新。

下次更新时间:PCS API开放申请时,会更新一次。


本文为Emlog For BAE的专项更新文,新版本发布会更新本文。


转载请注明出处

作者:trlanfeng孤月蓝风

最新版本:5.2.0

本文链接:http://fengyu.name/?cat=coding&id=274


希望大家给点支持,点页面右上角的“”或“”啦~~~虽然不知道有什么用,不过希望大家都帮帮忙~~~


安装方法:下载代码包后,解压,修改config.php文件,填入需要的内容,重新打包为zip,通过BAE上传代码包,输入 域名+install.php安装即可。


★ 2013.12.03:

Emlog 5.2.0 For BAE 发布,支持附件上传,附件上传方式为:BCS云存储。

下载地址:百度网盘

版本说明:

+ 只需修改配置,无需修改代码,上传即可安装使用

+ 基于官方5.2修改,未添加任何恶意代码,功能完整

+ 支持附件上传并点击添加进文章(BCS方式)

预览地址:http://1.tremlog.duapp.com/

由于百度PCS暂停API申请,所以先做出了BCS版本,让有需要的童鞋可以先下载。

——————————————————————————

★ 2013.12.03:

PCS API安全升级中,暂停开启权限,预计12月初重新开放

现在考虑继续使用BCS,还是等待PCS,然后测试。

——————————————————————————

★ 2013.12.02:

+ 安装程序完成

+ 缓存修改完成

——————————————————————————

★ 2013.12.01:

待解决问题:

1.安装程序

2.后台缓存

3.模板缓存

4.PCS附件

——————————————————————————

旧版教程请参看:Emlog for BAE修改教程,支持附件上传(云存储)等


Emlog for BAE修改教程,支持附件上传(云存储)等


Ps.2013.12.03  Emlog 5.2 For BAE 已经发布

请猛戳 -> Emlog For BAE 发布专文

本文不再更新,所有更新均发布在上面的地址中

——————————————-

Ps.2013.12.02  Emlog 5.2 BAE正在移植

Ps.2013.12.02  官方5.2已发布,BAE版正在开发中。本版将修改原来的BCS存储为PCS存储,能够更方便的管理上传的文件,敬请期待!

Ps:官方的Emlog 5.2即将发布,发布之后我会出一个完整的BAE版本,不再需要这么麻烦的修改代码。只修改几个配置就搞定,然后打包上传就可以了。敬请期待!

这个是我亲测的5.1.2完全正常,不知道为什么有很多朋友的都不行,由于5.2即将发布,所以暂不做更新,待5.2发布后再更新新版本。

本修改基于EMLOG 5.0.1版本,其他版本未测试。一般来说是不会出问题,除非EMLOG大版本升级。

PS:2013.07.24   教程更新,亲测5.1.2可用。

PS:2013.07.12   修改第二部分附件上传第41、42行的代码,之前不知道什么问题,也是个人疏忽,导致代码中多了两个单引号,造成无法上传,现已修正。感谢  VIP下页、下一 的反馈。

之前写过一篇文章,《BAE版的EMLOG已完工!》,后来EMLOG又升级了几次,外加微博通的同步一直搞不定,所以就暂时搁浅了。

现在我的博客(已经不能单纯的算博客了,算个网站),是我自己基于taoCMS二次开发的,对BAE的支持更好,也搞定了很多BAE上存在的问题。所以,EMLOG也就没继续用。现在这个博客稳定了,又有闲暇时间,所以跟大家分享一下,EMLOG for BAE的修改方法。

BAE上的EMLOG,最好是本地已经配置好的,然后将本地配置完成的打包上传即可。数据库也在本地备份,然后通过BAE的PMA导入。

先下载BCS(百度云存储,用于存储附件)的SDK放在admin目录中。

下载地址:http://bcs.duapp.com/bcs-api/bcs-sdk-php_1.2.tar.gz

一、本地安装EMLOG,并将一切设置OK,如原有博客,请将数据恢复到本地。

二、按照下面的提示修改文件(因版本升级,所以可能导致我写的行号不对,大家可以查找一下被替换的代码,来确定行号)

1.配置文件

在上传到BAE之前,需要先修改配置文件,因为BAE是不支持I/O读写的,所以需要在配置文件中手动加上BAE数据库信息的获取方式。

$dbname = '';        //填入自己的数据库名称
$host = getenv('HTTP_BAE_ENV_ADDR_SQL_IP');
$port = getenv('HTTP_BAE_ENV_ADDR_SQL_PORT');
$user = getenv('HTTP_BAE_ENV_AK');
$pwd = getenv('HTTP_BAE_ENV_SK');

之后,将下面的数据库信息其中四条修改为:

define('DB_HOST',$host.':'.$port);
define('DB_USER',$user);
define('DB_PASSWD',$pwd);
define('DB_NAME',$dbname);

这样,完成了最新本的数据库配置。

2.附件上传

打开admin目录下的attachment.php文件,第41行(5.1.2中为第43行)左右的代码:

//写入附件信息
$query="INSERT INTO ".DB_PREFIX."attachment (blogid,filename,filesize,filepath,addtime) values ($logid,'".$attach['name'][$i]."','".$attach['size'][$i]."','".$upfname."','".time()."')";

修改为:

$bcs_upfname = str_replace('..', '', $upfname);
//将文件上传至BAE云存储
require_once './bcs.class.php';
$host = 'bcs.duapp.com';
//bucket的ak
$ak = '';
//bucket的sk
$sk = '';
//bucket名称
$bucket = '';
$object = $bcs_upfname;    //这个是上传后文件的名字
$fileUpload = $upfname;    //这个是需上传的文件的名字
$baiduBCS = new BaiduBCS ( $ak, $sk, $host );
$response = $baiduBCS->create_object ( $bucket, $object, $fileUpload );
if (! $response->isOK ()) {
    die ( "文件上传失败!" );
}
$bcs_url = $baiduBCS->generate_get_object_url($bucket, $object, $opt = array());
//百度云附件信息写入数据库
$query="INSERT INTO ".DB_PREFIX."attachment (blogid,filename,filesize,filepath,addtime) values ($logid,'".$attach['name'][$i]."','".$attach['size'][$i]."','".$bcs_url."','".time()."')";

打开admin/views目录下的attlib.php文件,第32行代码:

$atturl = BLOG_URL.substr(str_replace('thum-','',$value['filepath']),3);

修改为

if (strpos($value['filepath'],'bcs.duapp.com') != false) { 
    $atturl = $value['filepath']; 
} else { 
    $atturl = BLOG_URL.substr(str_replace('thum-','',$value['filepath']),3);        
}

第41、42行(5.1.2中为45,46行)

$imgpath = "./views/images/fnone.gif";
$embedlink = "插入 ";

修改为:

if (strpos($value[‘filepath’],’duapp’) != false) {
$imgpath = $value[‘filepath’];
$ed_imgpath = urlencode($imgpath);
$embedlink = "插入 ";
} else {
$imgpath = "./views/images/fnone.gif";
$embedlink = "插入 ";
}


这一块儿网页输出显示的不正确,一直解决不了,只好放一张截图了。

3.修改博客地址,在EMLOG后台->设置->博客地址,然后打开根目录下的 init.php 文件,修改 define(‘BLOG_URL’, Option::get(‘blogurl’)); 这一行中后面的 Option::get(‘blogurl’) 为 ‘你的地址’ (地址两边加单引号,例如:http://tremlog.duapp.com/)


4.删除 content/cache 目录下,所有文件


三、所有修改完毕后,用本地的 Phpmyadmin 导出数据库(因为之前数据库已修改为BAE方式,所以不能通过后台导出),之后在BAE的 phpmyadmin 上导入。


四、BAE版EMLOG的伪静态设置

BAE上的伪静态设置,请参考:《BAE版EMLOG的伪静态设置

EMLOG在BAE上的修改基本就是这些了,如果发现有什么问题,也可以留言询问。


Emlog中Xdawn 1.2主题背景不显示问题的解决办法


Emlog中Xdawn 1.2主题背景不显示问题的解决办法

这个问题是模板的问题,少进行了一个判断,导致多出一个 标签

解决办法:

找到主题目录下的:

/content/templates/xdawn/module.php

文件,查找354行,为:

修改为:

<?php if($commentStacks): ?>

<?php endif; ?>

修改完后替换原文件即可。


BAE版的EMLOG已完工!


经历了XX个日日夜夜,BAE版的EMLOG终于完工!基本所有功能正常使用,暂时没有发现其他问题。

点击查看Emlog最新版本 -> 

Emlog For BAE 持续更新链接(点我。点我)

成功解决问题:

1.上传图片功能(使用百度BCS云存储服务)

2.伪静态功能(使用百度云环境自带功能)

仍存在的问题:

1.现在似乎所有文件都能上传,但是对非图片附件,没有进行URL处理,导致链接不正确

2.上传图片,暂时只能一张一张上传,批量上传功能我还没用到,所以不知道有没有问题

其他问题:

暂时没有发现其他问题

 

暂时仅供自己测试,随后看情况是否放包。

很多免费空间或者云空间被滥用,导致各种被封,所以在慎重考虑是否将此包外放。随后会提供教程版~~~

已提供安装版本:

Emlog For BAE 发布,查看文章顶部链接

 

此博客搭建没多长时间,也不知道写出这个文章后人气会不会增加~~~期待,哈哈

 

跟进:

13.05.13   发现微博通无法同步,不知道是不是BAE的原因,等有时间了解决

13.05.13   记得网上见人说BAE会和Appfog一样,不定期清理非代码包文件(具体叫什么,我也不知道……就是通过php文件上传到云环境而非云存储的文件),所以更换主题后,过段时间可能就消失了。


BAE版EMLOG的伪静态设置


BAE上设置伪静态很简单

导航栏“管理中心” -> 左侧“应用管理” -> 左侧“全部” -> 右侧点击自己的应用

左侧“云环境” -> 右侧版本列表最右端“高级” -> 鼠标移上去 -> 配置

右侧添加

1.规则类型:URL

2.规则:/blog/post-.*.html

3.执行:/blog/index.php

Ps:因为我的博客放在blog目录下,所以加 blog/ 如果在根目录则不用加,为:/post-.*.html 第三条同理

依次添加所有规则即可,只更换第二条“规则”,例如 /blog/sort/等,第三条不变

添加完成后,请点击保存