Hello!

I use IIS 5.1 on Windows XP. I use PHP 5.3.1.
What PHP interpreter should I use, considering the choice of web-server and php version?
Should i use "php-cgi.exe"
or should I use "php5isapi.dll"?

Another question: In one tutorial, I'm told that I should add "php5isapi.dll" to the "ISAPI-filter" settings in IIS. I don't understand what ISAPI-filter is and why this dll should be listed there.

Any help appreciated.
Thanks a lot

    Is there a reason you're needing to use IIS?

    Honestly, Apache is much more feature-rich and more universally used (read: you're not locked into the Mirco$oft way).

      My reason for using IIS is that I have it for free on my local machine, and that I've used it before and know it (Or, I thought I did until I ran into this problem anyway). It's for a developing/test environment only, and I'd prefer not to have to learn Apache, unless it's really nessecary.

      I understand it that there has been a switch from "php5isapi.dll" to "php-cgi.exe" in php/iis-land, but I need to know for sure if it is so (and what that really means, my technical understanding of this is minimal - I'm just a programmer), and how to adjust the settings right in IIS.

      But everybody just tells me to use Apache... 😕

      I will try to find information in the directions in which NogDog pointed.

      Thanks for trying to help!

      🙂

        I tried to post a reply, but a message said that it had to be OK-d by a moderator first! Why? I'm a logged in member, and this is a thread I started!?!? 😕

        Let's see if this comes through...

          OK, it did. (strange, though...)

          So heres my continuation:

          The reason I'm using IIS is that it comes free with my local machine, and that I've used it before and have a relatively good understanding of how it works (for a web-developer that is...). It's for a testing/developing setup only. I don't want to learn Apache if it's not absolutely nessecary.

          There seems to have been a switch from "php5isapi.dll" to "php-cgi.exe" in the world of php/iis but I'm not 100% sure, and I would like to understand more what all this means, I have only a vague understanding of these technicalities - I'm a simple code-writer...

          And, as I said, there's one setting in IIS to determine what interpreter to use and another for "ASAPI filter", which I don't know the meaning of.

          Is this the wrong forum for an IIS-user alltogether? Are all phpbuilder-folks into Apache only?

          (Anyway, I will check the stuff "NogDog" pointed to.)

          Thanks a lot.
          Any further help appreciated

            Apache is much more popular in general in the PHP world, I believe, as it goes hand-in-hand with the LAMP approach of an all open-source web platform.

            Anyway, my understanding is that the PHP ISAPI module is an Apache module, thus you will need to use the CGI PHP executable, instead with IIS, and thus the recommendation on the above-linked PHP manual pages to also download and install the MS FastCGI extension for IIS, presumably to provide performance gains over "normal" CGI usage that the Apache ISAPI module provides inherently.

              Contrary to NogDog's understanding (no offense to you, Nog :o), I've always used the ISAPI approach with IIS for the same reasons I would rather use the ISAPI module in Apache rather than the CGI binary.

              Although I haven't reviewed/revised it in some time, I believe my FAQ on Installing and Integrating PHP with IIS6 is still applicable (and should be very similar to your verison of IIS).

              Again, however, I still would recommend considering the Apache approach. If it's just for development/testing, you could always use one of the WAMP packages that installs Apache, MySQL, etc. all-in-one if you're really afraid of learning the pieces individually. Honestly, though, the amount of "learning" you'll need to do to get Apache up and running is probably going to take less than one hour.

              Plus, with Apache, you get the added benefit of doing easy URL rewriting and such using .htaccess files (a common topic if you browse/search these boards for "url rewriting", "mod_rewrite", or "htaccess").

                bradgrafelman;10937110 wrote:

                Contrary to NogDog's understanding (no offense to you, Nog :o), I've always used the ISAPI approach with IIS for the same reasons I would rather use the ISAPI module in Apache rather than the CGI binary.
                ...

                I can certainly see why anyone (including me) would be confused, as ISAPI is not even mentioned on the Microsoft IIS 5.1 and IIS 6.0 or Microsoft IIS 7.0 and later manual pages, though it is mentioned in some users' notes on some of the other pages in that section. :rolleyes:

                  OK, thanks a lot, both of you for taking your precious time.

                  In this page, they only talk about "php-cgi.exe", "php5isapi.dll" is not even mentioned: http://www.php.net/manual/en/install.windows.iis6.php

                  But I understand it that you, bradgrafelman, recommend "php5isapi.dll".

                  The problem for me is that I don't really know what one of them does that the other one doesn't. Is there an easy way to explain the difference?

                  And, if the official php-site says "go for cgi" why should I not?

                  Thanks again!

                    Essentially, running PHP as an ISAPI process should provide better performance.

                    In contrast to CGI applications, an ISAPI application is loaded into the same process space as the IIS web server. This removes the need for inter-process calls and the overhead of loading and starting a separate executable, allowing improved performance of ISAPI applications over CGI applications.

                    (From http://en.wikipedia.org/wiki/Internet_Server_Application_Programming_Interface.)

                      Goddag, mina Herrar!

                      After some research, I've found that isapi is no longer supported in 5.3.1!

                      Look here:
                      http://news.php.net/php.windows/29594

                      So, seems that cgi is the way to go, like it or not. If I stay on IIS, that is. Thank you for your time, folks!

                      :-)

                        ISAPI works best in < 5.3.0

                        CGI is your "only" choice > 5.3.0

                        I have not messed with FASTCGI and use the standard CGI executable

                        that all being said, do yourself a HUGE favor and at least try using Apache... If nothing else you can find a 3rd party GUI that will let you configure the httpd.conf in a manner that may be more friendly and suitable to you... Once you get the hang of Apache you'll wonder why you ever bothered with IIS in the first place =)

                        The things I love the best about Apache are:

                        1) file and folder level control in regards to access and processing

                        2) easy as heck rewrite control

                        3) much much much simpler authentication

                        Best of luck!

                          Thanks, "scrupul0us"!
                          I'll consider Apache!

                          Merry Christmas

                          Mr Perkele

                            Write a Reply...