我正在调查在Azure上托管CMS(用php编写的wordpress)的可能性。我已经在运行一个公开WCF服务的ASP.NET Web角色。 WordPress需要PHP。我的所有研究都表明我应该创建一个新的CGI Web角色来处理PHP功能。是否可以在单个Azure实例下运行CGI Web角色和ASP.NET Web角色?或者我需要两个实例(一个用于asp.net;另一个用于cgi)?
答案 0 :(得分:1)
实际上,“CGI Web角色”只是一个已经填充了一些FastCGI设置的Web角色。您仍然可以将ASP.NET(或WCF服务)放在PHP旁边。有关示例,请参阅http://blog.smarx.com/posts/php-asp-net-in-windows-azure(但演示应用程序不再启动)。
答案 1 :(得分:0)
Worker角色的灵活性使您可以运行几乎任何东西,包括IIS本身:)您可以使用角色来托管您自己的IIS Hostable Web Core实例,它可以利用IIS的一些更多功能(如多个应用程序)并且可能使您能够使用单个实例执行您想要的操作。我自己没有这方面的经验,只知道它的可能性。
我见过的最好的例子是Steve Marx的博客 http://blog.smarx.com/posts/build-your-own-web-role-running-hosted-web-core-in-windows-azure
除此之外,搜索“Azure上可托管的Web核心”,你会发现一些很好的资源。
答案 2 :(得分:0)
您应该查看可以执行此操作的最新Windows Azure Companion。这将以一个辅助角色安装一个管理网站,然后让你通过菜单安装基于PHP的工具,如WordPress,以及PHP itelf。
如果查看Azure Companion的源代码,您将看到托管Web内核是如何启动的。如果您需要自定义超出随播广告所允许的内容,您可以获得所需的所有代码。
在辅助角色中,您可以托管多个TCP端口,因此让后台工作程序在与WordPress站点相同的角色实例中运行是非常合理的。
略有不相关:在Web角色中,您仍然可以拥有后台进程,但是您将无法打开任意端口。比方说,你可以创建队列监听器。只需在Run()方法中启动代码(您需要添加此代码,因为默认情况下不会添加Web角色,只能在Worker Role模板中添加。)