Många har precis som jag har läst de utmärkta bloggposterna kring att köra PHP på Azure. Men dessa poster har nu några månader på nacken och är därför inte helt up-to-date i dag. Följer du beskrivningen på bloggen så fungerar det antagligen inte alls. Framför inte om du använder version 1.3 av Windows Azure Tools for Visual Studio 2010.
– Du får antagligen felet “<handler> scriptProcessor could not be found in <fastCGI> application configuration” när du testar att köra projektet lokalt, och det fungerar inte heller när du faktiskt kör det till Azure.
Det du skall göra är:
För att endast kunna testköra PHP applikationer lokalt:
1. Installera CGI stödet på den lokala webbservern:
2. Installera PHP lokalt. Detta gör enklast med Microsoft Web Platform installer 3.0
Detta är allt du behöver göra. Nu kan du testköra din FastCGi PHP projekt direkt utan att göra några som helst förändringar i några andra filer!
För att kunna köra PHP applikationen på riktigt i Azure:
Version 1.3 av SDK konfigurerar en Full IIS Web roll men detta fungerar inte i Azure tillsammans med FastCGI och PHP.
1. Du måste gå in i ServiceDefinition.csdef filen och markera bort hela <Sites></Sites> elementet. Detta gör att du kommer att köra en Core Web roll i stället. Det finns redan en beskrivning av detta problem här. Så:
- Nu måste du också göra som det står i steg-för-steg bloggposten, alltså:
2. Kopiera in php-cgi stödet till projektet. Kopiera den från http://windows.php.net/download/ och välj “VC9 x86 Non Thread Safe” och döp den till php.
3. Ändra i Web.roleconfig till:
4. Ändra i Web.config till:
Nu fungerar det att både köra lokalt och att köra projektet på Azure!
För de som kör i Eclipse med Windows Azure tools for Eclipse kan helt bortse från denna bloggpost. Det fungerar utmärkt direkt!