One Site, two version of PHP and WincacheRSS

5 replies

Last post Aug 27, 2014 12:26 PM by DropPhone

  • One Site, two version of PHP and Wincache

    Apr 01, 2014 05:46 AM|Esteph|LINK

    Hello,

    Using IIS (v7), i have on site ( \DEV ), in this site two filder (Application)

    PHP53  (register with php 5.3)
    PHP54  (register with php 5.4)

    And for each Folder a link to source code of the same application (with a Mklink)

    I vould test my application with n versions of PHP, all is OK

    Now i try to set wincache, i use WebPlatform installer to install wincache for PHP53 and wincache for PHP54. I activate the extension in each PHP.ini, and now more Http 500

    Is it possible to set 2 wincache version on the same site, but for 2 application ?

    Thank's

  • Re: One Site, two version of PHP and Wincache

    Apr 01, 2014 06:50 AM|montevagino|LINK

    Hello,

    One way coul be to set different file endings to the php files and define different handlers to each file ending.

    E.g.:
    - All files ended with *.php have the FastCgiModule "C:\Program Files (x86)\PHP\v5.3\php-cgi.exe".
    In the v5.3 you have the first version of wincache.

    - Alle files ended with *.php4 have the FastCgiModule "C:\Program Files (x86)\PHP\v5.4\php-cgi.exe".
    In the v5.4 you have the second version of wincache.

    The negative aspect is to rename some of you project fileendings that have to be php4. 

    Greets,
    Rene

    Stay tuned; Stay real;
  • Re: One Site, two version of PHP and Wincache

    Apr 18, 2014 04:58 AM|putri02|LINK

    I don't know if someone can use two PHP version on one site.

    nuninuna - my grosir aksesoris online shop
  • DropPhone DropPhone

    360 Posts

    Microsoft

    Moderator

    Re: One Site, two version of PHP and Wincache

    Apr 18, 2014 11:43 AM|DropPhone|LINK

    The key thing is you can only have one version of PHP handling the .php extension per worker process. 

    So, if you can set up two different sites, with two different application pools, you could change the handler mapping per site, such that site1 -> PHP 5.3, and site2 -> PHP 5.4.

    The previous suggestion of having a different file handler mapping would technically work, but Wincache would blow up heavily, since the opcode cache and cross-process shared memory structures are really specific to the version of PHP.  If you had two different Wincache versions under the same worker process, things would get ugly (and hard to diagnose) in a hurry...So, if you *do* try the duplicate mapping thing, please disable Wincache.

    Thx!

        --E.

    Hope this helps!

        --E.

  • Re: One Site, two version of PHP and Wincache

    Aug 27, 2014 07:33 AM|grammeth|LINK

    Indeed, using two PHP version for one site is not a good idea at all. You should separate the use of PHP for two different versions of the site.

    Visit our site if you need any help from PHP developers
  • DropPhone DropPhone

    360 Posts

    Microsoft

    Moderator

    Re: One Site, two version of PHP and Wincache

    Aug 27, 2014 12:26 PM|DropPhone|LINK

    One addendum to this discussion:

    Since I first posted my response, I've learned there *are* tricks to getting two versions of PHP to work within the same worker process.

    It turns out you can have different handler mappings per web.config file.  And you can put a web.config file in any directory in your web site.  So, you could have two sub-directories in your site, with a different handler mapping for "*.php".  To do this, however, you have to change the overrideModeDefault for the "handlers" section to "Allow", and there is some danger in doing so, esp. if you're a hoster.  However, it *is* possible.

    Here's the trick to getting two different Wincache versions to safely ignore each other: You *must* set the Wincache.namesalt setting in the php.ini file, and the value of the namesalt *must* be unique for each version of PHP + Wincache you have installed on the box.  So, let's say you had two installed versions of PHP 5.4.* installed on the server; for example, different dot releases.  Even if they're using the same Wincache version, you'd still want to set the Wincache.namesalt in each of the php.ini files to a different value. 

    Thx!

        --E.

    See: http://php.net/manual/en/wincache.configuration.php#ini.wincache.namesalt