I am looking into the potential of hosting a Content management systems (wordpress designed in php) on Azure. I am already running an ASP.Internet Web Role which exposes WCF services. WordPress requires PHP. My research indicates which i should produce a new CGI Web Role to handle PHP functionality. Can you really run the CGI Web Role and also the ASP.Internet Web Role within single Azure instance? Or should i have two instances (one for asp.internet other for cgi)?

The versatility from the Worker role allows you to definitely run just about anything, including IIS itself :) Use a role to host your personal demonstration of IIS Hostable Web Core, which could leverage a couple of a lot of options that come with IIS (like multiple programs) and likely allow you to do what you're wanting having a single instance. I do not have a lot of experience carrying this out myself, just know its likely.

The very best example I have seen reaches Steve Marx's blog http://blog.smarx.com/posts/build-your-own-web-role-running-hosted-web-core-in-windows-azure

Beyond that, look at different companies for "hostable web core on Azure" and you will find good quality assets.

You should think about the most recent Windows Azure Companion that enables you to do that. This can install an administrative website inside a worker role and allow you to then install PHP-based tools for example WordPress, together with PHP itelf, via menu.

Should you consider the source code from the Azure Companion, you will see the way the located web core has been released. If you want to personalize things beyond exactly what the companion allows you need to do, you've all of the code you'll need immediately.

Inside a worker role, you are able to host multiple TCP ports, therefore it is very affordable to possess background employees running within the same role instance as the WordPress site.

Slightly unrelated: Inside a Web Role, you are able to have background processes, but you'll you need to be not able to spread out arbitrary ports. You will be fine creating, say, queue audience. Just turn on your code within the Run() method (you will need to add this, because it does not get added automatically having a Web Role, only within the Worker Role template).

Really, the "CGI Web Role" is simply a web role with a few FastCGI configurations already populated. You are able to still put ASP.Internet (or WCF services) there alongside the PHP. See http://blog.smarx.com/posts/php-asp-net-in-windows-azure to have an example (however the demo application is no more up).