PHP ISAPI module to be retired

Categories:

After having served PHP users in the IIS community since May 22 2000 with the first release of PHP 4, it looks as if the popular PHP ISAPI module is to be retired starting with the release of PHP 5.3 which is currently in release candidate stage. This is huge news as most IIS users will still be using php5isapi.dll as their IIS application mapping for PHP, and most PHP installation guides for IIS on the Internet still instruct users to use php5isapi.dll.

So what does this mean for PHP on IIS? Well, as of PHP 5.3 (which isn't too far away) the only viable way of serving PHP content on IIS will be to use Microsoft's FastCGI module with regular CGI being the only other option (but it is desperately slow and is potentially less secure). The source for PHP ISAPI will still be available, but you'll need to compile it yourself.

This means that the future of using PHP on IIS basically hinges on Microsoft's continued dedication to supporting and developing their FastCGI module. While that may seem a bit of a risk for PHP to put all it's eggs in the Microsoft basket, it should be in pretty safe hands. Microsoft recognise that PHP is one of the most popular web development platforms, and to put this amount of effort into supporting PHP on IIS only to pull the reins in a few years down the line would be shooting themselves in the foot (especially if they wish to erode into that massive Apache market share at all).

Average rating
(6 votes)

Comments

Anonymous's picture

I wish they'd wait until the

I wish they'd wait until the opcode caches would function properly with the MS Fastcgi. the Fastcgi is quick, but nowhere near as quick as isapi w/ opcode cache.

Brashquido's picture

Likewise

I do too actually, and I queried Pierre Joye about this (Core PHP Developer & MS Employee) who said that work is being done on APC to get it working properly with MS FastCGI. No timeline was given though, so it looks as if you'll be stuck with 5.2 for the time being if you wish to maintain the ISAPI/Opcode cache performance combo.

----------------
Dominic Ryan
4 x Microsoft IIS MVP, MCSE, MCSA
IIS Aid owner/webmaster

Anonymous's picture

Unfortunately Microsoft has

Unfortunately Microsoft has been known to shoot itself in the foot several times over the last 10-15 years, simply look at the history of the Visual Studio family of products going back to its DOS roots: PDK dumped, VB DOS dumped, VB3 dumped, VB6 dumped, RDO dumped, DAO dumped, ODBC dumped (but possibly to be re-incarnated), and carry that philosophy into their database technologies too, the latest being LINQ for SQL ("dumped" here means the replacement was NOT backwards compatible). If Microsoft has no loyalty to their own product bases why should they care about non-Microsoft technologies?

Anonymous's picture

Hi, APC compatibility with

Hi,

APC compatibility with FastCGI seems to be planned for the 5.3 RC2 release:
http://wiki.php.net/todo/php53

I hope...

Brashquido's picture

APC with PHP 5.3/MS FastCGI

You, me and a lot of others I'm sure. Pierre is in there trying to kick goals for us IIS/PHP users, however he has his work cut out for him. Not trying to put a downer on it, but I'll believe it when I see it. After Thomas Deml stated that they (IIS team) were working with APC owners to fix the APC/IIS/FastCGI issues in December 2007, I decided to log a bug report to try and give the issue some visibility. Rasmus replied to my bug report saying that it wasn't going to happen as nobody on the APC dev team used Windows (let alone IIS), and nobody from the IIS team had been in touch regarding developing a fix.

The issue of the APC cache not being shared between PHP processes is not limited to IIS/FastCGI though as *inux/Apache systems also have the same issue. Just there is a work around of sorts for *nix/Apache where you can start one PHP process with each additional PHP process being started as a child process which forces a shared memory. Once a fix for *nix/Apache is applied, this should hopefully flow onto IIS/FastCGI users without anything special needed to be done.

----------------
Dominic Ryan
4 x Microsoft IIS MVP, MCSE, MCSA
IIS Aid owner/webmaster

Anonymous's picture

Yes Dominic, I have followed

Yes Dominic, I have followed you discussion with ThomasD and Rasmus. Not very gratifying. I have also discussed by email with Pierre Joye and he has confirme me working on that.

What do you think about creating on iis-aid.com a petition for having the APC / FastCGI compatibility ? We have to show to Rasmus that PHP users under Windows exists!!

Did you test the new opcode cache solution from Zend: Optimiser+ (V4.x) which is currently beta? Better than the inexistent V3.x...?

Julien

Brashquido's picture

Need to keep it in perspective

Not very gratifying, but about what I was expecting. I don't blame Rasmus for not showing an interest in MS FastCGI and APC, and I'm sure Thomas has many other things on his plate. I'm glad that Pierre is working on it, just hope he is able to make some head way.

I can certainly create a poll, even if it is just to get an idea of what PHP interface is being used.

I haven't used Zend Optimiser in quite a while actually. It may have changed, but last time I looked it was a bit different to the other PHP accelerators as it didn't do any code caching like APC, xCache or the like. It simply made the attempt to optimise the PHP code at runtime, which as you might expect only yields results in certain situations. I've even read some accounts claiming that it decreased performance due to the added overhead of running the optimiser.

----------------
Dominic Ryan
4 x Microsoft IIS MVP, MCSE, MCSA
IIS Aid owner/webmaster

Anonymous's picture

Re, Good news, APC

Re,

Good news, APC compatibility with Windows FastCGI seems to be impletended in the PHP 5.3 RC4 release. I would like to test it but :

1) APC DLLs are no more avaible because the PECL website is closed for the moment.

2) I do not know if the APC version 3.1.2 beta avaible since 12/12/2008 is ready for FastCGI or if it must also be updated.

I think PECL website will be reopened when PHP 5.3 stable will be published. No ?

Other good news, the PHP 5.3 final release will be out on the 25 June !

Julien

Brashquido's picture

Hopefully it works

The APC pecl is still downloadable via the php.net site as part of the pecl package, however as you say 3.1.2 won't have any MS FastCGI specific fixes in it. You'd have to assume that the fixes are being made from the PHP side, though I really don't know. Best way is to dive in and test it.

----------------
Dominic Ryan
5 x Microsoft IIS MVP, MCSE, MCSA
IIS Aid owner/webmaster

Anonymous's picture

A faster (and portable) alternative

Microsoft dominates the Web server market (on Windows) because it jumped into the Windows kernel (while others have to cope with the Windows user-mode bloat), see:

http://trustleap.ch/

Now, for the first time, a user-mode Web not only server beats IIS in the kernel but also beats ASP.Net by offereing portable ANSI C scripts that are 5x faster than C#!

G-WAN ANSI C scripts are (on average) 120x faster than Apache/PHP (with Zend optimizer):

http://trustleap.ch/en_scalability.html

Bonus 1: TrustLeap has been under constant attacks since it was shipped 4 months ago -and no vulnerability was found.

Bonus 2: TrustLeap will ship Linux and Solaris versions by the end of year 2009.