在新浪SAE上部署应用实战心得

      最近几日学习了一下Bottle,这是一种用Python编写的轻量级的Web框架。类似的框架还有Flask,Tornado,Django,尽管后两者相对比较重量级。Bottle的文档简单清晰(http://bottlepy.org/docs/0.12/index.html),其中的“Todo-List Application”是一个很好的例子,在本机实现这个示例程序之后,我计划将其部署到真实的网站上,顺便也学习一下部署的过程(最后的成果见:http://simpletodo.applinzi.com/,很简陋,但主要是做为练手项目已经足够,Web框架的几个关键概念都练了一下)。


      选择新浪云应用SAE(
http://sae.sina.com.cn/)之后,发现实际的部署过程又是一个需要不断学习、思考、尝试、总结的艰辛过程。新浪的文档有些散乱,SAE本身也有不少坑,在此整理一下部署步骤和绕坑方法,供大家参考:


应注意避开的坑:
1、新浪SAE支持的Python版本是2.7,所以请提前调整好本地环境
2、数据库方面,SAE不支持python自带的sqlite3。可以考虑采用MySQL,并使用新浪SAE的数据库服务,详见
https://www.sinacloud.com/doc/sae/php/mysql.html
3、SAE中的Bottle采用的是0.9或更早版本,不支持route中的过滤器功能。所以对于正则表达式等请考虑使用老版本。(也有文档指出,可以升级SAE的依赖库的,PosPro没有做测试,列出来供参考:
http://simple-is-better.com/news/834
4、新浪SAE的本地开发环境sae-python-dev似乎在virtualenv下无法使用,可以考虑直接全局安装(此点不确定,也可能是我的配置存在问题)


调试和部署步骤
S1、在本地写好程序并调试通过

S2、参照SAE的要求(http://www.sinacloud.com/doc/sae/python/tutorial.html#hello-world),建立config.yaml文件,其实就两句:

name:应用名(应该与将来在SAE上建立应用的名称相同)
version: 1

S3、建立index.wsgi文件,针对不同的WEB框架(Bottle?Web.py? Flask ?),文档(http://www.sinacloud.com/doc/sae/python/tutorial.html#hello-world)中有不同要求。对于Bottle来说,核心也就两句话:

import sae
...
...
application = sae.create_wsgi_app(app)

S4、完成以上几步之后,你的程序就基本可以上线了,可以选择直接上传至SAE(具体方法见S6),实际测试功能。

(S5、建立本地测试环境进行测试,本步骤为可选步骤。)

(S5.1)、通过pip install sae-python-dev安装本地测试环境,建议全局安装而不是在virtualenv下安装。按照完成后,就可以通dev_server.py来对程序进行本地测试。(详见:http://www.sinacloud.com/doc/sae/python/tools.html#ben-di-kai-fa-huan-jing
(S5.2)如果使用MySQL,还需要安装MySQLdb(以便import MySQLdb)。在Windows环境下,可以下载MySQL-python(
https://pypi.python.org/pypi/MySQL-python/1.2.5
(S5.3)如果想在本地真正完成包括数据库读写方面的测试,还得安装MySQL主程序。在这里要注意由于MySQLdb兼容性的问题,MySQL只能选择MySQL-3.23~5.5(地址:
http://dev.mysql.com/downloads/mysql/5.5.html#downloads
(注:如果按照S5.3步骤在本地按照MySQL数据库,其数据库命名恐怕也要按照SAE的规定,本人未做此步,写出来仅供参考。其实,如果不觉得反复上传是一种麻烦的话,S5步骤都可以省略。直接上传SAE之后,也是可以测试和分析的。最后需要说明的是SAE自己也在文档中指出,本地开发环境的功能并不完善。)


S6 向SAE上传程序,具体步骤可参考(http://www.sinacloud.com/doc/sae/python/tutorial.html#hello-world),也可按照我下面梳理的步骤来:

S6.1 如果你的机器上没有安装过git程序的话,先安装一个(PosPro用的是Git-2.7.0-32-bit)

S6.2 学习git的基本使用,一个比较详细的教程(http://blog.jobbole.com/78960/),比较关键的几个命令列举如下:

git init —— 把当前目录设置成git管理的仓库
git add XXX(文件名)——把文件添加到暂存区里面去 
git add . ——把当前目录的所有文件都添加进去
git remote add sae https://git.sinacloud.com/应用地址——连接SAE上的具体应用
git commit——把文件提交到仓库
git push master:数字(版本号)——上传某一版本的数据
git pull sae :Version —— 下载数据
避免每次push都输入密码的繁琐,可以在执行push之后加一句:
git config --global credential.helper wincred
详细参见
https://help.github.com/articles/caching-your-github-password-in-git/

S6.3 利用Git向SAE上传数据, 详细参见http://www.sinacloud.com/doc/sae/tutorial/code-deploy.html#git

S7 在SAE上建立配套数据库

S7.1 针对具体应用,进入“管理应用”页面,在页面左侧的导航栏中,找到“数据库服务——共享型MySQL”,在这里就可以管理和创建自己的MySQL数据库表了

S7.2 SAE提供的这个管理界面虽然简陋,但还是比较方便的,可以选择自己建表,也可以导入数据,详见文档(http://www.sinacloud.com/doc/sae/services/mysql.html

S7.3 如果您和我一样计划用MySQLdb来做连接的话,下面的例子可供参考:

##下面是SAE对数据库变量的定义
	#sae.const.MYSQL_DB      # 数据库名
	#sae.const.MYSQL_USER    # 用户名
	#sae.const.MYSQL_PASS    # 密码
	#sae.const.MYSQL_HOST    # 主库域名(可读写)
	#sae.const.MYSQL_PORT    # 端口,类型为<type 'str'>,请根据框架要求自行转换为int
	#sae.const.MYSQL_HOST_S  # 从库域名(只读)

##利用MySQLdb连接的实例
	import MySQLdb
	db = MySQLdb.connect(port=int(sae.const.MYSQL_PORT), host=sae.const.MYSQL_HOST, db=sae.const.MYSQL_DB, user=sae.const.MYSQL_USER, passwd=sae.const.MYSQL_PASS)

S8 反复测试吧


      PosPro最后的成果见:http://simpletodo.applinzi.com/,很简陋,但主要是做为练手项目已经足够,Web框架的几个关键概念都练了一下。

(不好意思,近日才发现,原来即使是保持应用运行,也是需要消耗新浪云豆的,目前云豆耗尽,以上网站以不可用。见谅。不过,部署方法不会失效,^_^,大家仍可参考!)




  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
阿里Serverless 应用引擎(Serverless Application Engine,简称SAE)提供了便捷的方式来部署 Laravel 8 应用。 首先,您需要在阿里控制台上创建一个 SAE 应用。选择准备部署 Laravel 8 的应用模板,并设置相关的配置信息,如名称、地域等。 然后,您需要在本地开发环境中确保已安装 Composer 工具,并使用 Composer 创建一个 Laravel 8 应用。您可以在本地编码、调试和测试应用,确保它能够正常运行。 接下来,使用 Composer 将 Laravel 8 项目打包,并将其上传到阿里 SAE 控制台。您可以选择通过 Git、Web 界面或 SAE SDK 将项目上传到 SAE。 一旦项目上传成功,SAE 将自动构建和部署 Laravel 8。您可以在 SAE 控制台的构建日志中查看项目构建的进展和状态。 在部署完成后,SAE 会为您分配一个唯一的访问地址,您可以使用该地址来访问您的 Laravel 8 应用。同时,SAE 也会为您提供一个域名,您可以将自己的自定义域名绑定到该地址上。 您还可以根据项目的具体需要,在 SAE 控制台中进行更多的配置和管理。例如,您可以设置环境变量、调整应用实例数量、配置自动伸缩策略等。 总结起来,使用阿里 SAE 部署 Laravel 8 应用需要在本地环境中创建和调试应用,然后将其上传到 SAE 控制台进行构建和部署SAE 提供了便捷的管理界面和丰富的功能,帮助您快速、灵活地部署和管理 Laravel 8 应用

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值