用过Windows Azure海外版的用户都会发现Azure网站服务有一项很强大的功能,就是直接从网站服务的应用模板库里部署应用,这些应用基于.NET, PHP, Nodejs框架,使用SQL或者MySQL数据库,它们都是开源免费的,部署时无需任何费用。这些应用包括各种常见的博客、维基、电子商务、内容管理、 门户等,如Wordpress,PHPBB,MediaWiki等等,目前总共有70多个应用,全部列表在这里

http://www.microsoft.com/web/gallery/categories.aspx

在国际版的Azure管理门户里,所有这些模板库都已经集成到了网站服务的部署列表里面,用户只需要选择想要使用的应用,就可以在几分钟内完成网站 的搭建。Windows Azure会自动将代码拷贝到虚拟空间中,并配置所需的SQL、MySQL数据库。用户无需修改一行代码,就像使用手机应用商店一样简单

目前Windows Azure已经落地国内,不过,由于种种原因,网站应用商店并没有出现在国内版上,国内版的网站服务,只是提供虚拟空间和SQL数据库。用户只能自己准备代码,手动发布到Azure网站上。如果使用到MySQL数据库,也需要自己部署配置

今天,我介绍一种方法,同样可以实现上述应用的一键式发布,解决目前没有应用商店的问题。目前这个方法只能在Windows上运行,需要Win7以上版本

首先,我们要了解一个工具,叫WebMatrix。这是微软发布的一个免费工具,是一个面向Web开发的IDE,支持.NET, Javascript, Nodejs, CSS, PHP等主流Web开发语言。它可以做代码编辑(支持语法高亮,代码提示),可以做代码管理(与TFS和Github集成),可以做代码调试(集成 PHP、IIS、Node本地运行环境),还可以做代码发布(通过FTP发布至虚拟主机,通过Web Deploy发布至Windows Azure网站服务)。所以,这个工具就相当于一个轻量级的Visual studio

具体的配置过程分为以下几步:

  1. 安装Webmatrix,从应用模板库生成一个项目
  2. 创建一个Windows Azure网站
  3. 创建一个Windows Azure虚拟机,部署MySQL,创建数据库
  4. 从WebMatrix发布应用至Windows Azure

由于国内版没提供MySQL服务,所以第三步我们需要自己创建MySQL虚拟机

下面看下具体的步骤

安装这个工具非常简单,进入其页面点击下载安装即可,http://www.microsoft.com/web/webmatrix/

这个安装过程中,各种所需的插件会被安装,包括Web platform intaller,IIS express, Powershell等等.

安装之后,启动WebMatrix,选择新建->应用程序库

在库中选择感兴趣的应用

在下一步中,Webmatrix提示Azure网站信息,由于缺省连接国际站点,因此这里我们跳过

这一步中,Webmatrix会下载应用代码包。点击接受

接下来系统就开始下载、配置。神奇的事情发生了,等配置结束后,系统自动弹出浏览器访问应用。

这里我们选择的是wordpress,我们知道这个应用是PHP开发的,需要PHP运行环境、MySQL来支持。Webmatrix如何能够把它运行起来呢?

其实Webmatrix在后台做了一些事,首先它安装了IIS Express服务器作为Web服务器,然后它下载了PHP,并把它和IIS配置在一起,最后它下载了MySQL,并在后台启动

于是,我们在1分钟之内,就拥有了一个可调试的Wordpress环境。回到Webmatrix,可以浏览应用所有的代码,进行代码的编辑。工作左 上角可以进行本地运行环境的控制,比如重启。还可以在“运行”工具按钮中,选择使用不同浏览器来打开目标网站,如IE、Firefox、Chrome

点击左下角的“数据库”按钮,可以查看当前使用的数据库,还可以进行库和表的管理操作

下面,就可以准备Windows Azure之上的运行环境了。首先,我们需要创建一个网站。点击Azure管理页面左下角的“新建”->计算->网站->自定义创建。 为网站起个名字。如果目标应用用到了SQL数据库,则我们可以选择创建一个,如果用到MySQL,则不选数据库。

创建完成后,点击网站进入其管理页,点击右侧“下载发布配置文件”,并保存。这个文件提供了该网站的发布地址,在后续Webmatrix发布时使用

如果应用需要MySQL,则我们需要创建一个虚拟机,然后配置MySQL,创建相应的数据库、用户,并为用户授权,允许远程访问该库。最后,我们需要开放3306端口给应用。需要注意的是,公用端口必须是3306,否则Webmatrix无法连接

接下来,就可以正式发布了。点击Webmatrix中的发布按钮,选择“导入发布配置文件”

选择刚才下载的文件

导入后,Webmatrix会显示发布的连接信息。但数据库部分需要自己输入。如果是SQL,可以在刚才创建的Windows Azure SQL数据库管理页面里找到连接字符串。如果是MySQL,需逐项输入服务器、数据库、用户等信息

输入完成后,点击验证连接,看看是否能连上,如果连不上,说明数据库配置有问题,要么是端口没开,要么是权限不对。可以通过其他MySQL客户端连接下试试

继续下一步,Webmatrix会进行进一步检查

检查成功后,就可以发布了。在下一步会看到发布预览,看哪些文件会更新,哪些会新增。选中数据库,这样会同时发布数据库,否则数据库还要配置

开始发布后,我们可以看到底部滚动的发布日志,完成后,点击链接,就可以打开部署在Azure上的网站。

回顾整个发布过程,我们是通过Webmatrix作为一个工具进行代码下载和上传。Webmatrix在发布的过程中做了一个小操作,保证了数据库配置的正确性。打开本地的wp-config.php文件,我们可以看到数据库的连接指向本地数据库。

打开远程同一个文件,可以看到连接指向远程库。也就是说,在发布过程中,Webmatrix自动改变了数据库的连接信息

Webmatrix还有其他一些强大的功能,大家可以自己研究下。而Webmatrix里面连接的这个应用模板库,是一个开源免费的仓库,每个开发 者都可以上传自己的开源项目,让其他用户下载。关于如何发布应用到模板库中,可以参考http://www.microsoft.com/web /gallery/developer.aspx