原文:使用SAE和Gitcafe开发网站应用

在PaaS领域目前看来新浪云走的比较早,也比较成熟。相比IaaS,PaaS更能为企业或个人带来成本上的节约。本文以php为例,记录了如何在新浪云上注册创建自己的web项目,如何在本地构建模拟环境,并使用Gitcafe的自动部署功能,使得只需要进行一次git push即可将代码发布到新浪云上。不了解的朋友可以参考。

创建应用

先是各种注册。新浪云需要使用新浪微博的帐号才能登录和使用。

由于新浪云属于PaaS(即提供软件运行环境,而不是虚拟主机或者空间),收费模式是根据访问量,按量收费的,所以我们无需关注服务器的任何指标,我们要做的只是创建一个应用。目前,新浪云需要进行实名认证才能创建2个以上的应用,所以推荐进行实名认证。

创建应用的界面如下:

可以看到,我们的应用将被host在sinaapp.com这个域名下,我们能够设置的子域名(App name)显然是全局唯一的,先到先得。除了应用的基本信息外,还需要选择应用使用的编程语言、框架、模板等。PHP语言的框架和模板十分丰富,而Python和Java则没有什么可用的框架或者模板。我们这里使用PHP空应用,创建的的应用名假设为testapp,下面会用到。

创建好应用之后,需要配置应用所使用的各种软件或平台服务,几个比较基本的配置如下:

  • 应用管理-代码管理中,创建一个版本,这个版本号建议填1
  • 服务管理-MySQL中,开启MySQL的功能。除非你的应用不需要数据库支持,一般MySQL是肯定要开的。管理MySQL使用的是phpmyadmin。

默认情况下,在代码管理中,可以将代码打包上传到应用,或者使用SVN提交,关于SVN参见代码管理中的说明。我们的重点是使用Git进行提交。

Gitcafe上创建代码仓库

注册

为了使用Git提交代码,我们注册使用Gitcafe。因为Gitcafe可以设置自动将代码推送到新浪云上。

GitCafe是一个跟Github十分相似的代码托管平台,本人体验下来感觉还可以,除了界面绿的我扎眼外...

注册好之后,为了方便进行git提交可以配置一下公钥。找到你个人电脑如下路径的文件:

cd ~/.ssh/id_rsa.pub

将其中的内容复制粘贴到Gitcafe网站的SSH公钥管理处,这样以后在提交代码的时候就不需要输入用户名和密码了。

创建仓库

我们需要创建一个仓库,这更github没有什么区别,唯一的重点在于设置自动部署到SAE

第一次使用这个功能可能需要你OAuth验证一下,这很简单。然后Gitcafe就可以fetch到你在新浪上的创建的应用和相应的版本了。选好保存即可。

目前Gitcafe对新浪的授权没有做自动刷新,这也许是新浪的Policy,这样会导致几天以后,这个授权会过期,届时可能需要重新绑定一下。希望Gitcafe能够改善一下。

创建好应用后,可以根据提示在本地初始化应用并提交初始化到Gitcafe。不过这里,为了给后面本地模拟SAE环境埋下伏笔,我对命令稍作改变:

首先在你本地合适的地方创建一个文件夹专门用来存放SAE的应用代码,比如sae

mkdir sae

然后使用如下命令:

cd sae
mkdir testapp
cd testapp
mkdir 1
cd 1
git init
touch README.md
git add README.md
git commit -m 'first commit'
git remote add origin ...
git push -u origin master

上面的命令在远程仓库地址的地方留了...,你需要自己填写,这取决于你的远程仓库地址。另外值得注意的是,需要创建一个以app名命名的文件夹,而且这个文件夹下需要有一个1的文件夹,这里的1代表app的版本号,代码部分是放在1这个文件夹下的。

如果上面的步骤没有问题的话,此时由于我们创建了README.md,所以这个文件会被自动同步到新浪云上。

配置本地环境

接下来我们需要配置一个本地执行环境,以模拟SAE的运行环境,从而调试代码。从这里下载最新的模拟环境,这里以PHP环境为例

下载解压后,可以发现,模拟环境自带apache、php、redis等软件,我们需要配置sae.conf文件,下面是这个文件重要配置项的说明:

  • DocumentRoot sae应用的根路径,相当于我们上面创建的sae文件夹,模拟环境每次都是从这个文件夹下的文件夹来判断有哪些应用
  • http_port 模拟环境启动后apache所使用的http端口
  • mysql_* 模拟环境并没有自带mysql,需要使用你本地或者远程的mysql,所以需要在这里配置这些参数

配置好这些后,用管理员身份启动init.cmd

如果需要修改php的配置的话,可能需要修改php.sae这个文件。这个文件实际上就是一个php的配置文件,模拟器每次启动的时候,都会把php.sae的内容复制到php.ini中。不过这里可能有一个bug,对于php.sae中的配置项disable_functions不能正确的复制到php.ini中,导致无法正常使用模拟环境,不知道目前修复了没有。我的解决办法是在php.sae中把disable_functions的值留空。

模拟环境启动后,可以在本地通过http://应用名.sinaapp.com:端口的形式来访问应用,比如:http://testapp.sinaapp.com:8081

模拟环境会在代码目录下创建config.yaml或者.appconfig,这两个文件是不能通过代码包的方式上传到SAE的,否则会出错。所以,我们需要在.gitignore中忽略这两个文件,让它们不被提交到Gitcafe,于是就不会被传到SAE。

如果将来有第二个应用的话,只需要在sae目录下创建相应的app名字命名的文件夹和版本文件夹即可,模拟器会自动识别它们。当然你也可以使用模拟器的相关命令完整对应用的管理操作。详情请参考相关工具 - SAE文档中心

使用mysql

为了在模拟环境中使用mysql,除了上面提到的基本配置外,还有两点需要注意:

  1. mysql数据库名需要是app_+应用名的形式,比如应用名为testapp,那么对应的mysql数据库名必须是app_testapp
  2. 在php中访问数据库需要使用SAE定义好的常量,在实际的环境中也是这样的。

下面是一个使用pdo连接数据库的代码:

php$dbh = 'mysql:host=' . SAE_MYSQL_HOST_M . ';port=' . SAE_MYSQL_PORT . ';dbname=' . SAE_MYSQL_DB;
$ops = array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8");
$ops = array();
return new PDO($dbh, SAE_MYSQL_USER, SAE_MYSQL_PASS, $ops);

使用SAE和Gitcafe开发网站应用相关推荐

  1. 开发者福音!面向Web场景的云开发服务正式开放!

    导 语 继支持小程序开发之后,云开发也支持Web使用啦!开发者们可以使用云开发提供的云端能力,直接开发网站应用,如PC端网页.公众号中的网页等.由此开发者可以在网站应用中借助云函数实现业务逻辑,通过与 ...

  2. HTML5前端开发学习路线建议,学习前端的必备知识点

    Web前端开发工程师是一个很新的职业,是从事Web前端开发工作的工程师.主要进行网站开发,优化,完善的工作.网页制作是Web 1.0时代的产物,那时网站的主要内容都是静态的,用户使用网站的行为也以浏览 ...

  3. web前端是什么?如何能成为一名合格的前端开发工程师?

    对于刚刚接触前端,并且以后想从事前端开发行业的小伙伴们,肯定都有过这样的疑问,如何才能成为一名合格的前端开发工程师呢? 相信这个问题是所有刚刚准备入行的小伙伴们都比较关心的. 如果大家在一些搜索引擎上 ...

  4. 如何能成为一名合格的前端开发工程师?

    对于刚刚接触前端,并且以后想从事前端开发行业的小伙伴们,肯定都有过这样的疑问,如何才能成为一名合格的前端开发工程师呢? 相信这个问题是所有刚刚准备入行的小伙伴们都比较关心的. 如果大家在一些搜索引擎上 ...

  5. 新浪sae部署微信订阅号

    利用新浪sae部署python开发微信订阅号登录新浪sae网站,用微博帐号登录或者注册帐号http://www.sinacloud.com/选择左上角控制台的云应用sae 选择创建新应用 按照要求创建 ...

  6. python开发微信订阅号如何申请_基于Python的微信公众平台二次开发(Python常用框架、订阅号开发、公众号开发)...

    1.1.课程的背景 微信公众平台的火热程度已经不用多言,无论是个人还是企业,政府还是商家,都已经开始搭建微信公众平台,微信的作用已经被各界人士认可.微信公众平台的技术需求市场缺口巨大.同时python ...

  7. 高德LBS开放平台携手SAE 抱团背后开发者受益

    北京时间1月9日消息,国内地图导航服务提供商高德旗下LBS开放平台日前正式宣布与新浪云计算SAE(Sina App Engine,简称SAE)达成战略合作. 合作达成之后,原SAE用户在开发中将能够更 ...

  8. GitHub 优秀的 Android 开源项目 淘宝技术牛p博客整理开发中最常用的GitHub上 优秀的 Android 开源项目整理(精品)...

    原文地址为http://www.trinea.cn/android/android-open-source-projects-view/,作者Trinea 主要介绍那些不错个性化的View,包括Lis ...

  9. 微信公众号开发---微信开发学习路线(及供参考)

    目录(?)[-] 1.       热门学习 1.        微信支付之H5页面WAP端接入 2.        微信支付开发系统开发流程及完整Demo展示 3.        微信公共服务平台开 ...

最新文章

  1. xib 拖关联控件的时候报Could not insert new outlet connection错误
  2. 2020年应届生找工作难?Python爬虫解析疫情之下用人市场中的机遇与挑战
  3. java knn kd树_KNN算法之KD树(K-dimension Tree)实现 K近邻查询
  4. mysql游标遍历数据库_MySQL数据库中,使用游标循环遍历_MySQL
  5. springboot多环境加载yml和logback配置
  6. 【吼吼睡cocos2d学习笔记】第四章 - 第一个游戏
  7. java中的@override
  8. linux日志删除1天前,Linux自动删除n天前日志
  9. 在集设网看世界顶级电影海报欣赏,太美了!
  10. 【并查集】Union Find
  11. AI学习笔记(二)图像与视频
  12. linux区别sata和sas,SAS与SATA之间的异同分析
  13. Best生物信息学家应该掌握的数学_之我的看法
  14. matlab 带通滤波函数,用matlab制作带通滤波器.doc
  15. 网络通讯协议——TCP/IP协议
  16. inception-v1 自复现 有问题尽管问
  17. 投资起步晚5年,赶上需要1.5倍的汗水+时间
  18. 笔记本计算机提升性能,笔记本电脑改装!轻松提升电脑性能!
  19. 制作官方 win10 U盘启动盘
  20. 数字中国建设意义和面临的挑战

热门文章

  1. Delphi、C#之父Anders Hejlsberg首次访华 推广TypeScript
  2. 安装Ubuntu时分区选择
  3. java jsch api_详解Java使用Jsch与sftp服务器实现
  4. CORS 请求未能成功_CORS 测试 提示错误 Reason: header authorization
  5. AWS — AWS 上的 DevOps
  6. Linux Kernel TCP/IP Stack — L3 Layer — netfilter 框架 — conntrack(CT,连接跟踪)
  7. 5G 标准 — R16
  8. 5G NGC — 会话管理模型 — 边缘业务本地分流
  9. Windows 8.1 PLSQL_32连接到RHEL6.1 Oracle10gr2_64
  10. Fusion360操作记录