Windows Azure中部署PHP应用程序

这篇文章介绍各种部署网站上Windows ">Azure 的方式,不过由于虚拟机服务(Windows Azure Virtual Machines)的部署方式是完全自己设定的,所以这里主要介绍的是网站服务(Windows Azure Websites)的各种部署方式以及如何用 Windows Azure SDK 的工具来进行部署应用程序至云端服务(Windows Azure Cloud Services)。

部署至网站服务 (Windows Azure Websites)

Windows Azure 网站服务提供了多种部署网站的方式(如:FTP/WebDeploy/TFS/Git/Mercurial/Dropbox 等),让您可以自由选择熟悉的部署方式。而将 PHP 网站应用程序部署至网站服务时,有两件事情必须先了解:

虽然 Windows Azure 网站服务无法修改 php.ini 档案对PHP执行环境做设定,但您依然可以在网站的根目录下使用 .user.ini 档案(别忘了最前面是 . 开头)来做设定,设定的方式与 php.ini 档案完全一样,这样便可以依据需求来自定义调整,而且不会影响到其它的 PHP 网站应用程序的设定。

有的函式库可能需要使用到网站的实体路径,网站的根目录实体路径为:「C:\DMASFiles\Sites\<网站名>\VirtualDirectory0\site\wwwroot\」。

接下来便能开始了解每一种部署网站的方式。

使用FTP上传网站

使用FTP上传是最简单的部署方式,只要使用任何熟悉的FTP工具,把网站应用程序的所有档案上传到Windows Azure网站服务的磁盘空间上即可。而FTP上传的联机主机名、账号密码可以在网站后台的仪表板中看到:

在网站服务的后台仪表板里可以看到 FTP 联机信息

以这张图为例,FTP主机的名称是 waws-prod-hk1-001.ftp.azurewebsites.windows.net,用户名称是 phponwindowsazure\ericsk,联机密码的部份则是可以在「快速概览」的部份选择「建立您的部署认证」或是「重设您的部署认证」来设定。

这里要特别注意的是,使用 FTP 或 FTPS 连接成功后,网站的根目录是放在 site\wwwroot 目录下,而不是 FTP 的根目录。一旦文件传输完毕,网站服务就立刻以新的档案来提供服务。

使用版本控制机制(Visual Studio Online, Git, Github, Mercurial, bitbuckets, 甚至是 Dropbox)

在现代开发流程中,版本控制(version control)是很常见的机制,而在Windows Azure的网站服务中也支持使用版本控制的机制来进行网站的部署,它主要的支持方式为:

在 Windows Azure 网站服务上建立一个存储库(repository),将档案 push 至该存储库就会换上新版本作为上线的部署。目前支持使用 git 做这样的部署机制。

绑定一个在线版本控制服务的存储库,当有新的部署时,便会同步部署至 Windows Azure 网站,可以与原本的开发流程结合。目前支持此机制的服务有:Visual Studio Online、GitHub、Bitbuckets、Codeplex 或是自行架设的git/mercurial 服务器,甚至可以使用 Dropbox 的文件夹做类似的部署。

使用版本控制部署的好处,就是在于可以根据不同的 check-in 来切换部署网站的版本。比方说在 Windows Azure 网站服务上建立了一个 git 存储库,在 push 了两次到此存储库之后,便产生了两个可以部署的版本,并且在后台可以随时切换。

使用 git 推送两次之后,网站上产生两个部署

而针对每一种版本控制的部署方式,可以参考 Windows Azure 产品网站上的这篇教学文件:「Publishing from Source Control to Windows Azure Web Sites」。

部署至云端服务(Windows Azure Cloud Services)

如前一篇文章所述,Windows Azure Cloud Services 是一个基于 Windows Server 以及 IIS 的 PaaS(Platform-as-a-Service)的服务平台,它提供两种应用程序的执行环境:Web Role 及 Worker Role,前者就是像 Web 应用程序这样,应用程序的执行是经由 web request 所驱动的;Worker Role 则是可以让应用程序独立执行。而在部署 PHP 网站或应用程序时,也必须一并部署 PHP 的执行环境(因为平台上只有很干净的 Windows Server + IIS)。

时间: 2024-09-14 21:23:21

Windows Azure中部署PHP应用程序的相关文章

Windows Azure中部署Laravel应用程序的几点注意事项

继做完了部署 Zend Framework 应用程序到 Windows http://www.aliyun.com/zixun/aggregation/13357.html">Azure 的实验之后,今天抽空测试了一下另一个 PHP Framework: Laravel 的应用程序是不是也同样容易,只要加一个 web.config 檔取代 .htaccess 的 rewrite rule 就可以. 部署 Laravel 应用程序几个要注意的地方: 1.一样要到设定的页面,将 / 路径改成对

怎样在Windows Azure中部署应用程序

这篇文章,我们主要围绕怎样在Windows Azure中部署应用程序这个来开展,想要在Azure中部署应用程序,说简单不简单,说难也不难,不过有两个文件是必需的:一个包文件,另一个则是配置文件.要创建包文件,可以在CloudService项目上"右击",然后点击"Publish".它会询问你是创建一个包文件还是把它发布到Azure中.如果选择第一个选项,它会创建包文件,并打开这个浏览器.而第二个配置文件则在CloudService1中,叫作ServiceConfig

预构建Linux映像在Windows Azure中部署多节点Hadoop群集

本文章由 http://www.aliyun.com/zixun/aggregation/13357.html">Azure CAT 团队的 Piyush Ranjan (MSFT) 撰写. 随着基础结构服务(虚拟机和虚拟网络)近期在 Windows Azure 上正式发布,越来越多的企业工作负荷正在向公共云迁移,以利用云经济效益.规模和速度.我最近参与了其中一种企业工作负荷 - 云中的大数据.在此,我将与您分享一些提示和最佳做法. 该项目要求使用预构建 Linux 映像在 Windows

如何把应用程序部署到Windows Azure中

在过去的文章中,我们已经讨论过了如何在Azure中创建一个"Hello World"应用程序.在本文中,我们主要讨论如何把应用程序部署到Windows Azure中.要在Azure中部署应用程序,有两个文件是必需的--一个包文件和一个配置文件.配置文件在CloudService1中,叫作ServiceConfiguration.cscfg.要创建包文件,可以在CloudService项目上"右击",然后点击"Publish". 然后,它会询问你是

在Windows Azure上部署WCF服务

本文将引导大家达成第一种功能:在Windows Azure上部署服务.后续文章将会介绍另两种功能.事实上,在Windows Azure入门教学系列 (一): 创建第一个WebRole程序里,大家已经尝试过部署一个最简单的服务:一个ASP.NET网站.是的,ASP.NET网站也可以称作一种服务.现在,你的ASP.NET程序不再是运行在你自己的服务器上,而是运行在云端了.但是,Windows Azure不仅仅支持常规网站,我们也完全可以把那些和用户界面无关的服务(headless services)

三步完成Windows Azure平台部署WCF服务

之前,我们在Windows Azure平台简介中介绍过Windows Azure的三大主要功能.那就是计算,存储,以及管理.至今为止,通过之前的教学文章,大家已经熟知了Windows Azure的存储功能.当然,存储只是最基本的一个功能.要充分发挥云计算的威力,我们不得不学习如何"计算". 同样在Windows Azure平台简介中,我们也介绍了Windows Azure的三种主要计算功能: 作为一个部署服务平台 作为一个软件分发平台 作为一个一般的分布式计算平台 本文将引导大家达成第

在Windows Azure中启用IIS8动态IP限制模块

我们最近对 Windows http://www.aliyun.com/zixun/aggregation/13357.html">Azure 网站进行了升级,并启用了IIS8的动态 IP 限制模块.现在,开发人员可以为其网站启用并配置动态 IP 限制功能(或简称 DIPR). 可以通过以下链接查看此 IIS8 功能的完整概述: http://www.iis.net/learn/get-started/whats-new-in-iis-8/iis-80-dynamic-ip-address

Windows Azure承载Node.js应用程序进行存储和服务

当我描述如何http://www.aliyun.com/zixun/aggregation/32995.html">在Windows Azure承载Node.js应用程序时,将可能引发一个有关如何使用 Windows Azure 服务,如存储. 服务总线. 访问控制等的问题......在Node.js中与windows azure 服务交互是通过 Windows Azure Node.js SDK,这是一个在NPM中可用的模块. 在这篇文章我想描述了如何使用 Windows Azure 存

Windows Azure中WCF服务的实现和调试

开启诊断 通过以上的程序应用,现在对于我们来讲,大多数和诊断有关的工作都已经完成了.但做好之后一定要记住,我们必须要把"sharedListener"添加到"AzureLocalStorage"中.完成这个任务其实十分简单,只需要在"WCF Web Role"的"Web.Config"文件中交换一下被注释掉的"system.diagnostics"节点就可以了. 另外,还必须把下面这行代码添加到"