分类目录归档:未分类

使用BAE快速搭建微信服务

最近BAE基础版已经支持微擎这个微信开源框架了,怀着尝鲜的心态去试用了一下,整体过程非常简单非常顺利,10分钟就完成了所有配置。下面来讲解一下主要的操作过程。 首先登陆到BAE基础版的控制面板,BAE将部署微信公众号作为一个单独场景提供给用户。 点击“部署微信公众号”的按钮,进入创建页面。 在创建页面,可以看到所有支持的微信建站模板,目前支持wemall和微擎两个开源的微信模板。 选择微擎作为建站模板。 接下来就是部署信息和执行单元套餐的配置项 在这些配置项里,有一个特别的地方需要注意,就是代码版本工具使用了打包上传的方式代替了svn/git的方式,根据bae官方的介绍,现在bae提供的所有模板,仅提供打包上传的代码管理方式,究其原因就是因为这些模板都会在运行过程中(初始化安装,升级,插件按照)在本地生产很多的代码和数据文件,如果用svn/git的方式,这些运行时文件是没办法自动提交到svn/git里面的,最直接的影响就是应用failover后,代码和数据都没了,应用一夜回到解放前。打包上传就是为了解决这个问题而产生的,bae会自动备份并打包用户的所有代码和数据,failover的时候会从备份包来恢复,这样就不会对应用产生任何的影响了。 现在看来,有了这个功能,用户再也不用担心数据丢失的问题了,免除了用户自行实现持久化的负担,关于这一点,我要给个大大的赞。 言归正传,选好配置支付订单,一个包含微擎模板的服务器就算搭建好了。 接下来就是去安装了。 访问刚才创建好的服务:http://weiqingtest.duapp.com,进入如下的安装页面 勾选页面下方的复选框,点击“继续”按钮,进入”环境监测”页面,看起来一切正常 继续到下一步配置数据库和管理选项,数据库的话,bae是免费提供mysql数据的,自己去创建一个就好了。 这里有一个坑要说一下,就是在数据库主机里面需要把端口号加上,bae提供的数据库的端口号是4050,不是默认的3306。 配置完成后点击“继续”,就看到下边的安装成功页面了 点击“访问网站首页”按钮,正式进入自己的微擎后端(此处省去了登陆页面,自行补脑吧), 根据微擎的建议,安装成功后先去注册站点,然后需要更新代码。 点击页面右上方的系统,进去之后可以看到“一键更新”和“注册站点”这个功能选项 注册站点 一键更新 更新完成之后会收入如下的弹框提示 这些事都做完,接下来该去配置微信了。 在微擎的公众号列表页,点击“添加公众号”的按钮 主要就是配置上面页面中的信息,配置完成后,微擎会自动帮你生成一个在微信端进行配置的引导页,类似如下的截图 按照上面的描述,在微信端完成配置,然后检测是否接入成功。 成功之后在公众号列表页就可以看到自己的微信号了,如下 到了这一步,所有基本的配置都完成了。微擎提供的应用市场上有各种各样的插件供选择,比如微商城,微小区等,接下来就是根据你的需要选择就是了,完全不需要个人进行代码开发。下边是微擎的应用商城的截屏,可以看到应用还是很丰富的。 总结一下,整体的使用体验非常好,按照页面上的描述操作就行了,没有任何的技术门槛。 所有的操作加起来,10分钟就完成了一个公众号后端的搭建,而且没有任何的编码工作,这一点是非常赞的。

发表在 未分类 | 留下评论

【BAE专业版】如何让你的PHP服务支持分布式session

简介 PHP session支持在服务端缓存用户信息以便随后使用。当在BAE部署环境的实例数大于1时,我们无法通过内存实现分布式session,这是因为环境的多个实例并不共享内存。本文主要基于PHP讨论在BAE专业版上实现分布式session的一种方案。 创建简单缓存服务 百度开放云提供简单缓存服务SCS,支持memcache和redis,因此我们可以利用SCS实现分布式session。BAE专业版的环境实例可以通过内网访问SCS。这里我们以memcache为例,当然也可以使用redis。 注意,需要SCS和BAE部署在百度开放云的同一个区域。我们在“华北-北京“区域创建一个memcache。创建成功后,可以在创建的scs集群详情页获取访问地址和端口号,如下图所示。 通过简单缓存服务实现分布式session 创建一个PHP5.4的应用,并部署一个环境,在”环境详情->设置->关联SCS”中,将该环境和创建的memcache建立关联,BAE会在后台将该环境下所有实例的ip加到该memcache的白名单中。关联的具体操作方法可以参考BAE官方文档环境管理中关联RDS或SCS一节。 我们可以通过修改php.ini配置memcache保存session。php.ini的修改方法请参考BAE官方文档php高级配置中的自定义php.ini。在应用根目录下增加一个php.ini文件,将mamcache的配置写入到该文件。 session.save_handler = memcache session.save_path = “tcp://memcache.utmppnqy.scs.bj.baidubce.com:11211″ 验证配置结果 我们通过修改index.php文件测试,验证分布式session是否生效,代码示例如下: <?php session_start(); // 缓存session开始的时间 if (!isset($_SESSION['test'])) { $_SESSION['test'] = time(); } print session_id(); print “<br><br>”; print $_SESSION['test']; print “<br><br>”; print time(); ?> 部署代码成功后,通过浏览器刷新访问页面,我们发现打印的session开始时间在同一个session … 继续阅读

发表在 未分类 | 留下评论

【BAE基础版】玩转WordPress模板

伴随着“应用模板”功能的推出,BAE基础版实现了一次华丽的转身。 我们先看一下模板应用和普通应用(空应用)的区别: (● 支持 – 不支持 ○ 即将支持) 分类 功能 空应用 模板应用 代码管理 打包上传 – ● svn ● – git ● – 扩展性 执行单元个数 1-100可调 1固定 内存 64MB-2GB可调 64MB-2GB可调 带宽 5Mb/s可扩展 5Mb/s固定 语言环境 php 5.4 ● 由模板决定 php 5.5(含Zend Guard Loader) ● … 继续阅读

发表在 未分类 | 留下评论

【BAE基础版】在Python Web中增加定时任务运行Python脚本

简介 在BAE Python Web部署中,通过crond定时执行Python脚本时,可能触发定时任务异常。本文主要介绍异常产生原因及解决方案。关于crond使用方法,请参考以下链接: https://bce.baidu.com/doc/BAE/GUIGettingStarted.html#.E9.85.8D.E7.BD.AEapp.conf 异常现象 以Python Web中的mongo操作为例,配置app.conf,定时执行mongo db操作脚本。(脚本来源:Pyhon连接MongoDB) #-*- coding:utf-8 -*- import pymongo from pymongo import MongoClient def test_mongo(): ### 连接MongoDB服务 ### 从管理控制台获取host, port, db_name, api_key, secret_key con = MongoClient(“mongo.duapp.com”, 8908) db_name = “CAoKTghXtKNEGBaLAYRj” # 数据库名称 db = con[db_name] … 继续阅读

发表在 未分类 | 留下评论

实力科普,让网站和App搬家不再痛苦(BAE篇)

给网站、App搬家是个细致的体力活,容易遇到各种意外,轻则停服、影响收入,重则数据丢失,造成不可挽回的损失。因此需要制定一个周密细致的计划,所谓谋定而后动,三思而后行。  首先要选择一个靠谱的平台。目前提供网站、app托管服务的平台很多,有免费的也有收费的,有境内的也有境外的,有大平台也有小平台。建议站长、开发者朋友从以下几个方面来选择: 稳定性:建议选择比较大的、比较重视这块业务的平台,服务相对有保障,避免停服带来的尴尬。境外的平台虽然不用备案,但是访问速度肯定没法和国内平台比。另外说墙就墙了,因此除非不得已,还是建议选择国内的平台。 性价比:价格是一个关键因素,但也不是越便宜越好。免费的服务不推荐,说停就停了,没有保障,而且往往会在数据迁移方面设置各种障碍。另外还要考虑收费是否灵活,如果不灵活就失去云服务的优势了。 可扩展性:CPU、内存、容量和带宽都要能够很方便的扩展。毕竟等网站、App的流量、数据量上来后,谁都不想再搬家,这个站长、开发者朋友都懂的。 安全性:平台要能够提供最起码的入侵和攻击防护,这一点大平台肯定比小平台更有优势。在互联网上裸奔是个近乎自杀的行为,分分钟让你中招。 接下来以百度开放云应用引擎BAE为例,介绍如何进行网站、App的迁移。 百度应用引擎(Baidu App Engine,简称BAE)是国内商业运营时间最久、用户群体最为庞大的PaaS平台之一,提供弹性、一站式的应用部署服务,支持php/java/node.js/python等各种语言。用户只需上传代码,BAE自动完成运行环境配置、应用部署、均衡负载、资源监控、日志收集等各项任务,大大简化运维部署工作。 同时基于百度开放云海量的资源,基于docker技术和分布式架构,BAE提供灵活、弹性、分钟级的资源扩展能力,升级扩容无需重新部署代码,轻松应对各种高并发访问场景(如“双十一”、“秒杀”、“春运订票”等)。 一般的站长和开发者朋友对BAE应该并不陌生,这里就不详细展开了,不清楚的朋友可以访问其官网、在线帮助、论坛脑补一下: https://bce.baidu.com/product/bae.html https://bce.baidu.com/doc/BAE/QuickGuide.html https://bce.baidu.com/doc/BAE-Pro/QuickGuide.html http://developer.baidu.com/forum/topic/list?boardId=66 (值得一提的是BAE刚刚支持了自定义docker镜像,这对于当下如火如荼的docker开发者而言是一个福音。) 第一步:评估可行性 迁移网站之前,首先要评估您的网站、App能否在BAE上正常运行。主要从两个方面来判断: 一是运行环境是否满足要求,BAE提供了支持以下语言的运行化境: 语言环境 BAE基础版 BAE专业版 php 5.4 √ √ php 5.5(含Zend Guard Loader) √ √ php 5.6(含Zend Guard Loader) – √ java … 继续阅读

发表在 未分类 | 留下评论

如何让你的应用更加安全保密 – 在BAE上使用Zend Guard Loader

Zend Guard是一个PHP 源码加密产品解决方案,能有效地防止程序未经许可的使用和逆向工程。Zend Guard Loader 则是支持 Zend Guard 加密后的 PHP 代码的运行环境。 目前BAE专业版的php5.5环境已默认支持了Zend Guard Loader用户可以直接使用。 但是由于BAE的php5.4环境(包括专业版和基础版)默认启用了缓存加速扩展OPcache,而php5.4中OPcache和Zend Guard Loader有兼容性问题,所以目前BAE的php5.4环境没有默认支持Zend Guard Loader。本文则介绍了如何在BAE的php5.4环境中使用Zend Guard Loader。 BAE提供了添加php自定义扩展功能(http://godbae.duapp.com/?p=302),利用这个功能,需要Zend Guard Loader的php5.4用户可以通过自定义的方式安装启用Zend Guard Loader。具体步骤如下:   1. 下载ZendGuardLoader.so 去zend官网(http://www.zend.com/en/products/loader/downloads#Linux)下载linux版Zend Guard Loader for PHP 5.4 – 64 bit,需要注册账号登陆后方能下载,下载后得到ZendGuardLoader-70429-PHP-5.4-linux-glibc23-x86_64.tar.gz,解压后可获得ZendGuardLoader.so文件   2. … 继续阅读

发表在 未分类 | 留下评论

【BAE专业版】玩转WordPress系列之快速搭建

准备工作 要搭建WordPress@Cloud,我们只需要如下三个云产品: BAE专业版应用(WordPress网站代码托管和部署服务) RDS实例(WordPress的MySQL数据存储) BOS Bucket(WordPress的多媒体文件存储) 创建 “BAE专业版应用” 首先,上BAE专业版的控制台创建一个应用,初始配置:(选Web、php5.4、打包上传) 创建“RDS实例” 然后,上RDS控制台创建一个实例,初始配置: 同时在RDS控制台的“账号管理”页面创建一个访问账号,在“数据库管理【BAE专业版】玩转WordPress系列 – 修正”页面创建一个数据库并授权账号(允许读写操作): 创建“BOS Bucket” 再然后,上BOS控制台创建一个Bucket,初始配置:(选北京、公共读) 上面选择的初始配置都是最低配置的套餐,后续可根据网站的使用情况调整套餐的配置,比如可以查看RDS的监控,如果磁盘使用率过高,就可以调高RDS的容量。由于Bucket的读写权限是公共读,所以请不要在这个Bucket放置敏感信息。 关联“BAE专业版应用”和“RDS实例” 最后一步,为了能让部署在BAE专业版上的WordPress能够访问RDS实例,需要上BAE专业版的控制台,进入之前创建的应用的设置页面,创建RDS关联。 部署WordPress 接下来我们就可以开始愉快的部署WordPress了。 下载WordPress 首先,我们可以去WordPress官网瞧瞧,下载最新版WordPress 4.4.1(修复了一个XSS漏洞),或者上官网指定的中文网站下载中文版WordPress4.4.1。下载后解压到WordPress本地目录: 然后,下载一个BAE的插件(WordPress个人云存储插件,个人贡献),该插件用于将多媒体文件持久化到BOS。关于WordPress在线生成内容的持久化问题,我们后续再讨论。下载解压后,将该插件复制到WordPress本地目录的wp-content/plugins中: 打包上传WordPress 首先,上BAE专业版的控制台,进入应用的代码管理页面,下载初始代码。 将app.conf和bae_app_conf.lua复制到WordPress本地目录: 然后,把WordPress本地目录打包,建议命名以版本号结尾,比如my-wordpress-1.0.0。 再然后,上BAE专业版的控制台,点击应用的部署操作: 等待几秒后,可以点击应用的二级域名,打开应用的主页,查看部署是否成功。如果出现如下页面,则部署成功;否者算失败,这时可以查看应用日志(builder.stderr.log)寻找原因。 在线配置WordPress 点击应用的二级域名,打开应用主页,WordPress会自动引导配置。第一页的配置是数据库配置,数据库名、用户名、密码和主机需要到RDS的控制台寻找,在创建“RDS实例”时都已经准备好。 接下来一路按照WordPress的提示进行配置,迫不及待的进入WordPress的管理页面,开始领略WordPress的风采。 持久化WordPress在线内容 为什么要把这一步设置拎出来单独作为一节?那是因为这一步非常非常重要。曾经有朋友在BAE基础版上部署了WordPress,一开始玩的很嗨,结果某一天突然发现WordPress变成未配置状态了,部分在线生成的内容在重新配置数据库后也无法恢复了,那叫一个郁闷啊。问题就在于BAE应用目前还不支持永久存储(卷,文件系统),应用一旦重新部署(可能failover了)就会导致在线生成的内容(MySQL的除外)丢失,因此支持持久化在线内容这一功能绝对是WordPress的强需求,期待BAE后续推出。 当然我们也不要气馁,不凡试试曲线救国。WordPress在线生成的内容,可以分为三大类: 进入MySQL的数据,比如文本内容、配置数据等。本身已经持久化,不再展开。 配置代码(wp-config.php)、插件、主题等。数据存放在应用部署的磁盘上。我们可以借助BAE的代码托管进行持久化。 … 继续阅读

发表在 未分类 | 留下评论

扩展日志服务的新功能介绍

2015年6月16日,BAE对扩展日志服务进行了升级,新版本的扩展日志服务为用户提供了更多的日志容量选择,更多可定制化的功能,本文将一一介绍此次升级给用户带来的新功能 1. 更多的日志容量选择 升级前,BAE仅支持1GB容量的日志套餐,而且是免费的。对于部分日志量不大的用户,这种方式是非常友好的,不花钱还很好用的东西,大家都喜欢。但是,对于日志量很大的大户来说,这种方式的弊端也很明显,1GB很快就会用完,用完了还想用,怎么办?不好意思,没办法,您经常性的手工清理一下日志吧。不知道别人怎么想,至少我表示很崩溃,有限的生命浪费在了无限的重复劳动里。 如果你属于后一种用户,那么恭喜你,这次升级绝对满足你的需求,1GB不够用?那10GB怎么样?还不够?那可以选择20、50、100GB,相信这4种新套餐容量应该可以满足99%的用户的需求了。当然,如果100GB还不够的话,直接找BAE的技术支持吧,他们肯定想办法满足你的需求。

发表在 未分类 | 标签为 | 留下评论

利用扩展服务实现基于websocket的聊天室

简介 BAE提供了丰富的扩展服务,利用这些扩展服务,可以开发出各种各样的应用。今天我们来介绍一下,如何利用扩展服务开发一个聊天室。 该聊天室是一个HTML5的网页,效果图如下图所示。用户打开聊天室的页面后,可以输入姓名和消息,点击发送之后,消息就会通过服务器,转发到所有已经连接到服务器的浏览器,这样消息就能在整个“聊天室”中显示出来。同样的,别的用户发送的消息,当前用户也能即时的显示出来。

发表在 未分类 | 留下评论

BAE迁移到百度开放云BCE后AK/SK使用上的变化

先说说BAE在developer.baidu.com时developer应用、developer服务、BAE以及BAE扩展服务和AK/SK之间的关系   developer.baidu.com这个平台在后面的描述中简称为developer 先看图1:   从图1可以看出在developer上一个开发账号可以拥有多个developer的工程,developer工程下面包含了BAE等各个服务,而每个工程都有自己的一对AK/SK。 这时在“工程1”下面使用BAE以及其他服务时,需要用到AK/SK地方都是需要使用“工程1”下面的AK/SK。所以对于BAE开发者来说,对于处于“工程1”下面的BAE应用无论在代码中使用的了BAE的扩展服务如公有的Mysql、Mongo 以及日志服务等, 还是使用了developer的其他服务如云存储、 云推送等时,都是统一使用“工程1”下的AK/SK进行认证。所以在开发过程中只要保证BAE应用的代码中的AK/SK同BAE所在的工程下面的AK/SK一致就能正确地使用各项服务。 同时,对“工程1”进行SK重置时,对于“工程1”下的所有BAE应用使用的AK/SK中的SK都要修改为重置后的新SK。  

发表在 未分类 | 留下评论