Tuesday, October 31, 2006

Making PHP on Windows work!

Today we announced a partnership with Microsoft. The goal of this technical collaboration is to make PHP on Windows a first class citizen. It has always been our goal to make PHP run well on any platform, and this initiative reinforces that. Both companies have also observed huge interest both from the community and our respective customers bases in good PHP support on Windows, and therefore, collaborating on making this happen is a no-brainer for both.

This is actually not the first time where PHP and Windows have crossed paths. Five years ago, Microsoft invited the PHP development team to come to Redmond and spend a week in their labs to optimize PHP on Windows. Zeev, Shane Caraveo and myself represented the PHP team. We actually made quite a few significant improvements but since that time, there hasn't been much focus on making PHP run well on Windows. Also, five years ago the team that invited us Redmond didn't have very much of a corporate mandate so that effort was never really followed through.

Fortunately, things have changed. There are now people at Redmond who understand that supporting interoperability between open-source software and the Windows platform will have benefits to their customer base. 4.5M PHP developers are hard to ignore, especially when so many PHP developers actually do their development on Windows.

For Zend it has always been important to make PHP as widely applicable as possible. Just this year we announced support for the System I platform (AS/400). With the wide reach of Windows and having significant customer demand for Windows support, it makes a lot of sense to work with Microsoft on getting better integration between the two solutions.

One of the things I'm really excited about is that Microsoft was really willing to change their internal plans in order to better support PHP. Although they've had FastCGI requests from their user-base implementing it never actually happened. It also wasn't on the plans for IIS 7. However, recognizing that good PHP support really required a first-class FastCGI implementation, they managed to be exceptionally agile for a large company and change IIS 7 plans to include FastCGI support. Today they are releasing a preview release of this FastCGI implementation which in our labs tests performs very well and they continue to improve it. This preview release will support both IIS 7 (Windows Vista and Windows Server "Longhorn") and will also support Windows Server 2003 and Windows XP. Not only is this good news for many dynamic languages out there that support FastCGI but it's also a good sign that they have embraced an open de-facto standard as opposed to creating their own "FastCGI" standard.

The second piece in making PHP work well on Windows is PHP itself. After spending a lot of time on benchmarks it was clear that PHP performance on Windows was way behind other platforms. The trivial improvement would of course be a thread-safe build (gives about a 40% performance boost). But there were several other issues which have significantly impaired PHP performance on Windows. Up-to-date we already have over a dozen of improvements that we've made which make PHP run much faster on Windows, whether using better APIs, better algorithms or better utilize the available tools. We have released a technology preview version of Zend Core which include these improvements and people are welcome to play around with it. In the coming weeks we will share these patches with the PHP community and work towards including such improvements into PHP. For more information on the IIS FastCGI component visit the IIS Web site.

In addition, we will do continuous engineering to make sure that PHP continues to work well on Windows, application compatibility issues are met, and make sure that we continue to serve the community and business who are interested in good Windows support. Getting PHP to perform well and be stable on the Windows platform was the highest priority for this collaboration. It's the basis which any further collaboration would build on. Over the coming months we will continue to investigate other ways to strengthen PHP's interoperability with the Windows platform and try and resolve other issues which might arise. We've already received various requests for better Active Directory integration, SQL support, URL rewriting solution, and more. Besides the obvious need for making PHP work on Windows, there are many other improvements which PHP developers could take advantage of.

I very much welcome the Microsoft initiative to invest in getting PHP to run well on their platform. For Zend, working with Microsoft is in line with our collaborative strategy to further PHP usage and allow it to play well in heterogeneous environments. Whether it's Linux, AIX, Windows, i5/OS; DB2, MySQL, or Oracle; Apache, IIS, or lighttpd; we are commited to helping put PHP everywhere and anywhere.

Any questions, comments, feedback - feel free to drop me an email at andi at zend dot you know what.

22 comments:

  1. ugh i left windows behind for the mac life i still love to see things like this taking place.

    It is nice to see Microsoft actually get involved with PHP. It will help both Microsoft and the PHP community. As you said there are many people who use windows as the development platform, i would be interested to see how this increases the use of windows machines as servers and not just development.

    ReplyDelete
  2. Thanks to Edin and Wez, developing PHP itself on windows is also a pleasure. There is still some area where debugging could be simplified but it is arleady a very good thing.

    Full Windows support is part of the requirements for all my extensions, they will not be marked as stable if they fail on windows.

    By the way, if they give away some vc.net licenses, let me know, it would be nice to test with the latest versions of their tools :D

    ReplyDelete
  3. great post Andi, and thnx for filling me in on this yesterday too.

    In the interview you did with me though, you mentioned a few other items that I found terribly important.

    You're not selling out your open source values do to this, you're still supporting Apache on Windows and PHP for .NET is outside of the scope of the engagement.

    ReplyDelete
  4. thanks for the partnership, Andi! I'm looking forward to continue making PHP rock on Windows!

    ReplyDelete
  5. This is an excellent move, for both the PHP community and Windows customers. Thank you Andi for being so much open minded and business professional. Christian

    ReplyDelete
  6. So, from now on, to who should we assign windows-only php bugs?

    ReplyDelete
  7. Andi,

    Thanks for the great post and blog! I think this will be great for those of us that are running PHP on the windows platform.

    ReplyDelete
  8. Open-source applications [from the Linux side] on Windows are one of the keys to getting the average Windows end-user to understand that there is another choice... And sometimes, that free choice is better than the proprietary one.

    DeveloperSide.NET
    Open-source, non-proprietary solutions for Windows.

    ReplyDelete
  9. Brew low cost beer. The amount of time you spend on brewing beer makes the small difference in cost between "just OK"

    ingredients and top quality ingredients a minor point. Either way, the cost of brewing a 5 gallon batch is much cheaper

    than buying a couple of cases of beer in the store.

    Beer is made of cheap ingredients, so it doesn't hurt to buy the best. Surprisingly, the cheapest way to brew beer gives

    you the best results: all grain brewing is the cheapest way to brew when grain is bought in bulk.

    You do need a grain mill and a mash tun, so there is a small investment in equipment needed. But you should be able to brew

    excellent quality beer for less than $2 per gallon, and you could brew a mild ale for as little as $1 per gallon, or less

    than 10 cents per bottle (one gallon is about 10-1/2 12oz bottles). Most of my pilsners are about $1.50 a gallon brews.

    Other ways to reduce the cost of your beer are by growing your own hops and reusing yeast from the fermenter. Easy to do,

    and it means that I don't have to buy yeast more than once every half year or so. The hops should last e through most of

    the winter brews. So all you need is grain, which is about $0.70 per pound in a bulk purchase (much of the cost is in

    shipping).

    Beer Brewing Equipment Basic, simple, cheap equipment that gets the job done. Sometimes it adds to the challenge. But

    through the mystique of brewing and remember that illiterate alewives brewed for centuries using tried and true recipes and

    procedures before the dawn of kegerators, ph meters or hydrometers.

    Beer Keg Brewing. After using bottles for years, you can jump to the corny keg (Cornelius keg). This is an important step

    because it makes brewing so much easier. You can still bottle, but just a few bottles per batch, and use a corny keg to

    fill the bottles. You can use corny kegs as secondary fermenting vessels. You can try out method where you leave the beer

    in the primary for about two weeks until it clears nicely, and then upi carefully siphon it over to a corny, avoiding

    transferring any trub.

    ReplyDelete
  10. If you are interested in wine making then you need to do a little homework before you get started. Wine making is not something that you can just plunge into and learn along the way, you need to do some research so that you know that you are not missing any vital wine making steps or processes. If you do miss these wine making your wine could very well turn out tasting like anything but wine.

    Wine making is a something fun that you can do in your spare time and at the end you will have a glorious result. Wine making is something that people tend to get hooked on because the very first batch is not usually perfect, it may taste delicious but it will not be perfect. As you learn about wine making and as you get the wine making experience behind you your wine will get better and better. You will undoubtedly pick up tips and tricks to help you improve your wine making capabilities.

    ReplyDelete
  11. What makes an ingredient natural? More and more leading make-up companies are responding to the demands of today's educated market and offering their customers make-up containing natural and organic ingredients. Women - and more and more men - are realizing the benefits of leaving behind the man-made ingredients used in cheaper cosmetics and looking for the quality and results that come from natural make up. Cosmetics that have been made using quality ingredients - natural products close to the original state, and, whenever possible, organic certified.

    ReplyDelete
  12. evden eve nakliyat4/07/2007 02:54:00 AM

    thanks for your informations.very good informations..i will read all the time this blog.again thanks...

    ReplyDelete
  13. These comments have been invaluable to me as is this whole site. I thank you for your comment.

    ReplyDelete
  14. How PHP can win the war against .NET
    and JSP while most of PHP features will have to update to compete with
    JSP and C#

    ReplyDelete
  15. I’m trying to find out about Unified Communication for a project but there doesn’t seem to be much information available. Is it the same as VoIP, and if not how is it different?

    ReplyDelete
  16. Hey Andi,

    Any developments on using php to develop desktop apps on windows.

    ReplyDelete
  17. welcome to the wow power leveling, cheap service site,WoW Gold buy cheap wow gold,wow gold,world of warcraft buy wow power leveling

    ReplyDelete
  18. правила хостинг http://hosting.miheeff.ru хостинг правила хостинга

    ReplyDelete
  19. I think it's a perfect collaboration, specially because Microsoft is offering excellent alternatives to get the most innovative technology.

    ReplyDelete
  20. Very informative and trustworthy blog. Please keep updating with great posts like this one.

    sohbet net - cinsel sohbet - çet sohbet - sohbetci - adana sohbet - kerizim - sohbet odalari - chat odalari - cinsellik sohbet

    ReplyDelete