PHP Classes

PHP on Windows Azure

Recommend this page to a friend!
  Blog PHP Classes blog   RSS 1.0 feed RSS 2.0 feed   Blog PHP on Windows Azure   Post a comment Post a comment   See comments See comments (5)   Trackbacks (1)  


Viewers: 8

Last month viewers: 3

Categories: Interviews

PHP is now officially supported as a language for developing applications that can run on Windows Azure, Microsoft's cloud operating system.

This article is an interview with Teoni Valois, an independent PHP and .NET expert that answered some questions to give an overview of the PHP support on Windows Azure.

He also talks about the advantages and disadvantages of running PHP applications on this environment when compared to regular Windows or Linux based hosting or other cloud computing environments.

Loaded Article
PC = PHPClasses (Manuel Lemos)
TV = Teoni Valois

PC: Teoni, can you please tell us a bit about yourself, where you live, where do you work, and what do you do?

TV: My name is Teoni Valois, from João Pessoa, in the Paraíba state in Brazil. Currently, I work as IT analyst in Dataprev, specifically in the software development unit.

Dataprev is a public IT company that provides services for the ministry of social security of the Brazilian government. They also work in the development of applications for the ministry of labor and employment.

Other than that, I also work as an independent consultant in the development of custom software solutions, teach in courses and give talks. ...

PC: What is your level of expertise regarding PHP and Microsoft technologies, such as Windows, .NET and Windows Azure?

TV: Well, I am both Linux and Windows user. I work with PHP since 5 years ago and .NET for 3 years. Recently I became an MCP (Microsoft Certified Professional).

A few months ago I discovered Windows Azure, Microsoft's cloud computing environment, which seemed very interesting and promising.

PC: Microsoft has been getting closer to several Open Source projects, like PHP, Linux and others. What do you think about that? Do you think it is beneficial to the PHP professionals? If you think so, how?

TV: Microsoft's initiative of getting closer to Open Source projects is very interesting because, besides trying to end the existing rivalry between Microsoft and Open Source communities, it creates a series of opportunities and ideas of interest for the communities.

That also reflects on the interest of Microsoft to support PHP, rather than only supporting competing technologies of their own.

The number of PHP developers that use Windows on either the development and production environments is significant. Nothing more appropriate from Microsoft than trying to embrace the PHP community and offer specific support for those that have chosen to use their platform.

PC: What do you think of the past and present support in PHP of features specific of Windows and other Microsoft technologies? Do you still see things that can be improved, eventually with the cooperation of Microsoft?

TV: Until some time ago, configuring PHP to work with Microsoft IIS was an hard task. Several hours would have to be wasted to install PHP so it would work properly with IIS, while with Apache you could have the same PHP version working perfectly within a few minutes.

Things became much easier with the support of Microsoft and some dedicated PHP developers. Today, what used to take hours, only takes a few minutes.

I believe one of the greatest improvements was on terms of performance, which I think it can still be improved further.

PC: You had the chance to contribute to the Phalanger project. Can you tell us a bit about that project?

TV: The Phalanger project is something very interesting that I always mention in the talks I give about .NET . I always try to show the power of the integration of .NET with other technologies, like PHP for instance.

Phalanger is a PHP compiler for .NET that makes possible creating .NET assemblies from PHP code, so it can be used with other applications, besides making possible running PHP Web applications directly with an IIS server.

My participation in that project was brief. I contacted the project creators, which now work for Microsoft in the .NET core. Then we were still stabilizing the project version 1.0. Currently it is up in the 2.0 version.

My contribution was more in testing, identifying incompatibility points with PHP by evaluating the portability of some important applications of that time, such as phpMyAdmin, PHPBB, XOOPS, etc.. Nowadays, these applications run with 100% compatibility without requiring to change any PHP code.

For those with interest in the project, there is an upcoming integration of Phalanger and Visual Studio that makes possible to quickly create in PHP Windows Forms applications, Web applications, command line tools and class libraries.

For more information check the project page:

PC: Microsoft recently announced native PHP support in their cloud operating system Windows Azure. Can you tell us a bit about that environment, as well what is the interest it may have for PHP professionals?

TV: The main purpose of Windows Azure is to provide an infrastructure that is robust, reliable, highly scalable with essential services for hosting Web applications.

Microsoft added PHP support to their services in the cloud in a way that is now possible to run our PHP applications in Azure servers, as well use their cloud computing storage services: Table and Blob Storage.

Microsoft PHP SDK, PHPAzure, provides a set of PHP classes that make it easy to use those services for storing data and files up to 50GB of size.

The most interesting aspect is that Azure layer, which PHP applications can already access, may be shared with other available services and applications built in other languages supported by .NET framework, thus making your application more scalable.

PC: Can you give us an overview of the advantages and disadvantages of running PHP applications on the Windows Azure environment, when compared with a regular PHP installation on Windows or Linux with a common relational database?

TV: The main difference is the hosting environment where your application will be running. Windows Azure is ready to handle a large number of requests, providing greater security and availability. This is already a big deal when you think of building mission critical applications.

Other than that, since it is a cloud environment, PHP applications may easily share the stored information other .NET applications and vice-versa, thus making the whole solution very scalable.

PC: PHP is not yet supported natively by Google App Engine, Google's cloud operating system. However, it is possible to use PHP to Java compilers to run PHP applications in Google App Engine.

Can you please compare both environments to give an idea of the advantages and disadvantages of each approach?

TV: The greatest advantage is that PHP runs on Azure using FastCGI. You only need to create a standard project structure, which requires the PHP FastCGI binaries, and later submit it to the Azure servers for deployment.

As it was suggested by your question, Google App Engine requires some hacks, like compiling PHP into Java, so you can run PHP applications on App Engine.

Although it is technically possible, PHP applications are not compiled into .NET assemblies to run them on Windows Azure. PHP runs natively using FastCGI in a similar way that you run PHP with IIS on a regular Windows installation.

It seems that Google is not very interested in providing native PHP support, while Microsoft aims to aggregate value and support one of the most popular Web programming languages, which is PHP.

PC: What are the restrictions of running PHP on the Windows Azure environment? Are that things that are not available but could be used in a dedicated Windows or Linux server?

TV: One of the most important restrictions is that file manipulation has to be done using AzureBlobs. This means you cannot use write to regular PHP files.

PC: Is there a stream wrapper in the PHP Azure SDK that makes it possible to access AzureBlobs files with regular PHP file functions like fopen('azure://path/to/blob/file', ...) to eventually make it easy to migrate existing PHP applications to the Windows Azure environment?

TV: Not yet, as far as I know. For now, regular file access functions must be replaced by calls to PHP Azure SDK classes to access AzureBlobs.

PC: Is it possible to execute regular SQL queries to access data in Azure Tables?

TV: No, you need to use the PHP Azure SDK classes to compose and execute queries using code like this:

$query->where("condition here")->orderBy("field name");

PC: Can we use PHP on Windows Azure for free or are there any associated costs that were officially announced? Where can anybody interested learn more about prices?

TV: Using PHP on Windows Azure does not affect the cost, which is zero for now in the Community Technology Preview edition.

The prices to be charged will be based on the number of time of processor usage and used storage space. You may find more information here:

PC: Teoni, thank you for the interview. What other interested developers can do to contact you, clear doubts and obtain help regarding PHP on Windows Azure?

TV: Just go to my site and hit a tab named "Contato". There you find my contact e-mail address:

You need to be a registered user or login to post a comment

Login Immediately with your account on:



3. What is the Windows Azure Platform - readystatprint (2009-08-21 06:11)
What is the Windows Azure Platform?... - 0 replies
Read the whole comment and replies

2. PHP parser: Cloud server or native server - Andrei Orghici (2009-08-07 18:29)
Sounds like Microsoft has/wants it all...... - 2 replies
Read the whole comment and replies

1. PHP on windows Azure - Raja (2009-08-06 09:26)
PHP on windows Azure... - 0 replies
Read the whole comment and replies


1. (2009-08-06 10:00)
On the PHPClasses blog today there’s a nw interview posted where Manuel Lemos talks with Teoni Valois, an experiences Windows user, about the latest advancements in running PHP on Azure...

  Blog PHP Classes blog   RSS 1.0 feed RSS 2.0 feed   Blog PHP on Windows Azure   Post a comment Post a comment   See comments See comments (5)   Trackbacks (1)