写教程,改变世界


0 推荐

作者:桃花仙
2017-03-26 06:07:06
标签:koding,paas
有效阅读:197
点击量:5674

免责声明:本站(guideep)之内的所有教程概由作者自由创作并承担全部责任。教程的内容和观点未经 guideep 审核。读者在阅读过程中应自行鉴别其是否真确、有效或安全。
特别地,如果教程内容涉及化学、生物、高压电气、放射性、医疗、气功、宗教、运动等可能造成严重后果的领域,请读者慎重鉴别,切勿盲目学习。
本站不对学习造成的后果承担任何责任。

Koding 教程
[toggle=off] [title]为什么用 Koding?[/title] [content]Koding 可以免费使用,为免费用户提供了 3GB 的存储空间和 1GB 的内存,与 [toggle=off][title]Openshift[/title] [content]参看:《[guide=6313740437815296]Openshift 中文教程[/guide]》[/content][/toggle] 相当[toggle=off] [title][sup][注][/sup][/title] [content]Openshift  的每个免费账户可以有三个 gear(齿轮,Openshift  的资源配置单位),每个 gear 是 1GB 空间和 512M 内存。[/content][/toggle],远高于 [url=http://appengine.google.com/]GAE[/url] 的免费配置[toggle=off] [title][sup][注][/sup][/title] [content]GAE 每个应用的免费配额是1G数据空间,128M内存(每天28小时),如果你选择更高内存,服务时间就会减少。例如选择256M,每天就只能用14小时了。GAE 虽然每个应用的配置较低,但每个账户可以开 25 个免费应用。[/content][/toggle]。 Koding 可以完全在浏览器中操作,可在线编辑代码,立即调试。而其它大多数 PaaS 只能先在本地写好代码再上传调试。相比之下,Koding 要便捷得多。 Koding 无须在本地部署开发环境,远端的部署方式与在 Linux 上基本一致,学习成本较低。Koding 可以使用任何端口,不限于 80。因而也支持 HTTP 以外的协议,并可同时运行多个服务器。 Koding 在中国大陆(暂时)没有被墙,而且支持 [goto=ssh]SSH 连接[/goto]。所以,你懂的。[hr] [a=limit]Koding 的局限是,免费账户的虚拟机并不会一直开启,在开启一小时之后会自动关闭。关闭之后需要通过 web 登录到 Koding 才能再次开启。因此,Koding 适用于学习研究,不适用于实际运营。 [/content][/toggle] [toggle=on] [title]Koding 使用指南[/title] [content] [toggle=off] [title]官方教程[/title] [content]Koding 的网站布局比较怪[toggle=off] [title][sup][及][/sup][/title] [content]2014 年上半年更怪,看上去像 twitter 一样。[/content][/toggle],容易让人迷路。官方的使用教程(英文)在[url=http://learn.koding.com/guides/]这个地方[/url]。值得注意的是,这些教程似乎并不是 Koding 的员工撰写的,而是热心用户的作品。因此,这些教程可能并不完备,仍在不断的完善之中。[/content][/toggle] [toggle=off] [title]最简单的使用[/title] [content]1、注册并登录。你会获得一个免费的虚拟机(vm)。 [bird=wkspace]workspace 页布局 [draw=373456734][/bird] 2、登录后会跳转到这样一个页:https://koding.com/IDE/[color=green][a=kvm]koding-vm-0[/color]/[color=blue]my-workspace[a=wspace][/color]。 从墙内打开这个页会比较慢,而且提示 couldn't connect to backend,不要管它,等几分钟就能打开了。 [call=wkspace]如图[/call],页面明显地分为左、中、右三栏。右栏又分为上下两部分,上面是编辑文件的窗口,下面是[b][a=terminal]命令行终端(Terminal)[/b]。 中栏是文件目录。在中栏双击文件,文件会在右栏的编辑文件窗口中打开。 右栏上半部分作编辑文件窗口、下半部分作命令行终端,不是固定的。下部也可以作编辑文件窗口,上部也可以作命令行终端。例如,如果输入焦点在右栏下部,双击中栏中的文件时,会在下部开启一个编辑窗口。 右下角,图中标 X 的位置,有两个按钮,[size=1][a=accsetting]键盘形的是 account settings[/size],问号形的是帮助。 从左栏可以看到,你已经有了一个名为  [goto=kvm]koding-vm-0[/goto] 的虚拟机,和虚拟机上一个名为  [goto=wspace]my-workspace[/goto] 的工作空间(workspace)。免费用户只能有一个虚拟机和一个工作空间。 [toggle=off] [title]虚拟机设置[/title] [content]在虚拟机这一行:[img=http://learn.koding.com/guides/understanding-vm-panel/uvms2.png],点行尾(右侧)的模糊的小圆圈,弹出虚拟机设置页: [img=http://learn.koding.com/guides/understanding-vm-panel/uvms1.png] 其中: [a=assignedurl]Assigned URL 是虚拟机的长期有效网址。只要虚拟机[goto=openvm]开启[/goto]着,总能通过这个地址访问。 Nickname,你可以在这里改虚拟机的名。注意改过之后[goto=kvm]访问本页的链接[/goto]也要作相应改变。 [a=openvm]On/Off 是虚拟机开关。上图状态是开启。开启之后你才可以通过 [goto=assignedurl]Assigned URL[/goto] 来访问你的虚拟机。 Public IP 是虚拟机的公网 IP,[goto=openvm]开启[/goto]之后你也可以通过这个 IP 访问。对于免费用户,每次开启之后的 IP 会变。 [c]倒数第三行,在图中显示为 jakemurray.koding.io(jakemurray 是用户名),把这个开关打开(图中状态为开),你就可以通过 http://username.koding.io 访问你的虚拟机了。也就是省略了 [goto=assignedurl]Assigned URL[/goto] 最前面的一段。其中 username 是你注册的用户名。[/c] [/content][/toggle] 3、[goto=openvm]开启[/goto]虚拟机之后,用浏览器访问你的 [goto=assignedurl]Assigned URL[/goto],会看到一个默认的网页,这是 Koding 通过 [wiki=zh]apache[/wiki] 预设的,它占用了虚拟机的 80 端口。如果你想在 80 端口部署自己的网站[toggle=off] [title][sup][及][/sup][/title] [content]也可以使用其它端口。[/content][/toggle],先要停掉它,在[goto=terminal]终端[/goto]输入: [div][color=#0e0]sudo service apache2 stop[/color][/div] 4、[toggle=off] [title]现在开始搭建自己的网站(或者叫应用)[/title] [content]以 Python 为例,就像在本地 Linux 环境一样,Python 已经安装了,只要装上 pip,再用 pip 安装 Flask——在[goto=terminal]终端[/goto]输入: [div][color=#0e0]sudo apt-get install python-pip[/color][/div]和[div][color=#0e0]sudo pip install Flask[/color][/div] 装好之后,创建一个名为 test.py 的文件,内容为: [div]from flask import Flask app = Flask(__name__)   @app.route("/") def hello():     return "Hello World!"[a=helloworld]   if __name__ == "__main__":     app.run(host='0.0.0.0', port=80)[/div] 保存之后,在[goto=terminal]终端[/goto]输入: [div][color=#0e0]sudo python test.py[/color][/div] 注意要用 sudo,你的网站就跑起来了。现在用浏览器访问你的 [goto=assignedurl]Assigned URL[/goto],就会看到输出的 [goto=helloworld]"Hello World!"[/goto][/content][/toggle] 5、更多 Koding 对开发技术的支持相当广泛。从[url=http://learn.koding.com/guides/]官方教程[/url]可以看出,编程语言除了 Python,还支持 C/C++、Java、PHP、Node.js、Ruby……数据库支持 PostgreSQL、MySQL、MongoDB……其它工具支持 Git、Docker……似乎能在单机上运行的东东都支持。 而官方教程中没有的单机工具,也同样可以使用。只不过由于官方教程是用户生成的,暂时没有人写。 官方教程比较简明,容易看懂。在此不赘述了。 [/content][/toggle] [toggle=off] [title]使用 ssh 连接到 Koding[/title] [content][a=ssh]除了从[goto=terminal]网页上的终端[/goto]操作虚拟机,用户还可以通过 [wiki=zh]ssh[/wiki] 远程登录到虚拟机上去执行同样的操作。步骤如下: [toggle=off] [title]1、如果还没有密钥,生成一对密钥[/title] [content]在本地 Linux 下使用这样的命令: [div]ssh-keygen ~/.ssh/k1[/div] 就在你的 ~/.ssh/ 目录下生成了一对名为 k1 的密钥。其中,k1 是私钥,k1.pub 是[b][a=pubkey]公钥[/b]。 [/content][/toggle] [toggle=off] [title]2、将公钥上传到 Koding[/title] [content][goto=openvm]启动[/goto]虚拟机,点右下角的 [goto=accsetting]account settings 按钮[/goto],弹出设置页。 在设置页左侧点 SSH keys,ADD NEW KEY,将[goto=pubkey]上一步的[b]公钥[/b][/goto]的内容[toggle=off] [title][sup][形如][/sup][/title] [content]ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDIsD+QQP1EpUvOf1SO ABatfliPrt1+ZbdTqy/Y+IEUWUpcNyy/b+9zyAzOTb5tZDw6rcWwNlkMcTHYoupTQMv/iw/G TaItTBUVhhjXUJPswOSIkqZIaFuFdGumM0X9cfx3u3pyTD1eCXiA+W8aOHXrqwVOc611 Oara6YJgdn7Ssxw9zzA6saAMnRwP18oTMw5sjZ3YYpZFlNbC/a8Gue+OL5z29cijQHvcW LdmGJVqboDgEfsaetL1ONbn+t0aMIMBXDUjKirVm96+MUQuaU5XdiLN0qyV4tgPE6be+ OAXSYQs7X2b0oXRKwBqDnWnJ/+VQ4ouAEgYN88NUwpCJu69  zzz@desktop[/content][/toggle]拷进去,保存。 [/content][/toggle] [toggle=off] [title]3、通过 ssh 登录到 Koding[/title] [content]在本地 Linux 下使用这样的命令即可连接到 Koding: [div]ssh username@vmaddress[/div] 其中,username 是你在 Koding 注册的用户名,vmaddress 是 [goto=assignedurl]Assigned URL[/goto]。 如果本地系统是 Windows,[a=winsshtool]需要使用 [wiki=zh]putty[/wiki] 或 [wiki=zh]bvsshclient[/wiki] 一类的工具,详细用法请自行 google。 [/content][/toggle] [toggle=off] [title]4、通过 ssh 隧道穿墙[/title] [content]只要把上一步的命令改一下: [div]ssh  -qTfnN -D 7777 username@vmaddress[/div] 再将浏览器的 socket5 代理设置为 127.0.0.1:7777,即可无障碍地访问人间各处的网站。 其中,username 是你在 Koding 注册的用户名,vmaddress 是 [goto=assignedurl]Assigned URL[/goto]。 Windows 用户需要在 [goto=winsshtool]ssh 工具[/goto]中选中一个大概名为[b]动态端口转发[/b]的开关。 当然,由于 Koding 的免费虚拟机[goto=limit]需要每小时重启[/goto],使用起来稍微有点麻烦。 [/content][/toggle] [/content][/toggle] [/content][/toggle] [drawdata]{"120811424":"{\"shapes\":[[\"Change\",{\"strokeWidth\":1,\"color\":\"hsl(0, 0%, 90%)\",\"fillColor\":\"hsl(0, 0%, 0%)\"}],[\"R\",4,8,392,288],[\"Change\",{\"strokeWidth\":2,\"endCapShapesStr\":[null,null]}],[\"L\",97,11,96,296],[\"L\",178,10,178,294],[\"L\",179,152,397,152],[\"Change\",{\"text\":\"左栏\",\"font\":\"18px \\\"Helvetica Neue\\\",Helvetica,Arial,sans-serif\"}],[\"T\",30,144],[\"Change\",{\"text\":\"中栏\"}],[\"T\",118,143],[\"Change\",{\"text\":\"命令行终端\"}],[\"T\",241,229],[\"Change\",{\"text\":\"编辑器\"}],[\"T\",248,80],[\"Change\",{\"strokeWidth\":1}],[\"R\",325,268,0,0],[\"R\",336,276,58,20],[\"T\",362,285],[\"Change\",{\"text\":\"X\"}],[\"T\",360,292]],\"colors\":[\"hsl(0, 0%, 90%)\",\"hsl(0, 0%, 0%)\",\"hsl(0, 0%, 100%)\"]}","373456734":"{\"shapes\":[[\"Change\",{\"strokeWidth\":1,\"color\":\"hsl(0, 0%, 90%)\",\"fillColor\":\"hsl(0, 0%, 0%)\"}],[\"R\",4,8,392,288],[\"Change\",{\"strokeWidth\":2,\"endCapShapesStr\":[null,null]}],[\"L\",97,11,96,296],[\"L\",178,10,178,294],[\"L\",179,152,397,152],[\"Change\",{\"text\":\"左栏\",\"font\":\"18px \\\"Helvetica Neue\\\",Helvetica,Arial,sans-serif\"}],[\"T\",30,144],[\"Change\",{\"text\":\"中栏\"}],[\"T\",118,143],[\"Change\",{\"text\":\"命令行终端\"}],[\"T\",241,229],[\"Change\",{\"text\":\"编辑器\"}],[\"T\",248,80],[\"Change\",{\"strokeWidth\":1}],[\"R\",325,268,0,0],[\"R\",336,276,58,20],[\"Change\",{\"text\":\"X\"}],[\"T\",360,292]],\"colors\":[\"hsl(0, 0%, 90%)\",\"hsl(0, 0%, 0%)\",\"hsl(0, 0%, 100%)\"]}","1413414124":"{\"shapes\":[[\"Change\",{\"strokeWidth\":1,\"color\":\"hsl(0, 0%, 90%)\",\"fillColor\":\"hsl(0, 0%, 0%)\"}],[\"R\",4,8,392,288],[\"Change\",{\"strokeWidth\":2,\"endCapShapesStr\":[null,null]}],[\"L\",97,11,96,296],[\"L\",178,10,178,294],[\"L\",179,152,397,152],[\"Change\",{\"text\":\"左栏\",\"font\":\"18px \\\"Helvetica Neue\\\",Helvetica,Arial,sans-serif\"}],[\"T\",30,144],[\"Change\",{\"text\":\"中栏\"}],[\"T\",118,143],[\"Change\",{\"text\":\"命令行终端\"}],[\"T\",241,229],[\"Change\",{\"text\":\"编辑器\"}],[\"T\",248,80]],\"colors\":[\"hsl(0, 0%, 90%)\",\"hsl(0, 0%, 0%)\",\"hsl(0, 0%, 100%)\"]}"}[/drawdata]
uu

对本段内容的讨论

点击书签可编辑,清空即删除。