post in spanish
Yesterday I created my first non .NET application for Windows Azure, surprisingly it was pretty simple! :) I followed a lab in the Azure Training Kit – April
Personally, I think that the lab it´s too complicated, it´s focused con command line actions, usage of SDK tools… but why don’t just use Visual Studio 08? It’s much more simple, every developer should use it :D
( BTW there is a php tool for Visual Studio, did you know it? 😉 http://www.devsource.com/c/a/Add-Ons/VSPHP-Brings-PHP-Coding-Power-to-Visual-Studio/ )
Here you have the steps to build the app and how to solve the iisfcgi.dll error
1# Choose a FasCGI friendly platform, for instance PHP. Downloaded the last non-thread-safe version from php.net ( why? ) and copied it in c:\PHP
2# Configure IIS7 to manage .php applications Lots of info in the internet about how to achieve this, for instance http://learn.iis.net/page.aspx/246/using-fastcgi-to-host-php-applications-on-iis-70
3# Confirm that you can run php pages. You can try with the typical <?php phpinfo(); ?> If it doesn´t work locally… don´t think that the fabric will be able to do the magic 😀
4# Create and blank Cloud Service solution. Add a CGIWebRole project to the solution and reference this project from the solution’s Roles folder. Obiusly you will neeed the Azure tools for vs installad 😉
5# Add a php page to the CGIWebRole project. You can add a text file, rename to php and code there the php app. A phpinfo page is ok for the demo 😛
6# Edit configuration files. We have to point to the right interpreter used by the application.
Open Web.roleconfig file, and ensure that you have a reference to the interpreter
Open web.config. Here, we have to configure the php page as default one ( if not you´ll receive security errors, because you can not browse the folder )
Also we need to add a new handler for the .php files, we add it in the system.webserver / handlers section
Open serviceDefinition.csdef and set enablenativecontentexecution=”true”
7# Copy the interpreter into the CgiWebRole project As you can see in previous steps, we have a path to the interpreter at %RoleRoot%\php\php-cgi.exe We must create it 🙂 Open the project folder in windows explorer and copy there the previously created c:\php folder ( this is for a demo purpose, in a real application we should copy only the required files ), once copied, go back to Visual Vtudio and click Show All Files in the solution explorer
Right click on the php > Include In Project
and time to Compile!
Now is when you may find the error
CCT: Error: FastCGI module at C:\Windows\system32\inetsrv\iisfcgi.dll with version 7.0.6001.18000 is not up-to-date.
CCT: The system is missing a prerequisite to execute the service. Please see the release notes.
I tried with a couple of fixes but at the end, a colleague from Microsoft, pointed me to the right one. http://support.microsoft.com/kb/967131 After the fix, my iisfcgi.dll version is 7.0.6001.22365 ( I’m runninc wserver 08 x64 )
Last step 8# Deploy application in Windows Azure
in the project properties, add your azure Application ID as in any other Azure project
save, and right click in the Solution > Publish!
Azure portal will be automatically opened, we have to upload configuration and description packages. This will take a little more time than in other azure apps… take into account that this time it has to upload all the PHP folder content 😉
Once uploaded, remember to click Run!! I’ve forgotten to click run several times, and after 5 minutes waiting and having a coffee, realized that I missed the simplest step :_)
easy, isn´t it?