RE: Running multiple versions of php on IIS

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> -----Original Message-----
> We have a new piece of software to roll out in the next week. 
>  The software is built on PHP 4.3.4, but the webservers that 
> we intend to use are also running other websites which are 
> only tested on PHP 4.0.4 or 4.1.2 or something.  Obviously 
> ideally, we would like to upgrade the webservers to 4.3.4 but 
> we can't afford to risk breaking the other sites.  I figured 
> we would be able to install a second copy of PHP and use that 
> for the latest site.  However, I want it using its own 
> php.ini and IIS doesn't seem to like me passing in the path 
> to the php.ini using the -c option.  Has anyone managed to 
> solve this problem, or do I have to share a common php.ini 
> between the different versions of php?


Below is the text I wrote in a previous email that might help:

First and foremost, the installation instructions are the way they are
because of simplicity sake, there are really 2 ways to setup PHP that differ
considerably.  It has been a while since I tried PHP on windows in ISAPI
mode, so what I telling you will *not* work if you want to run the ISAPI
PHP.
 
First off, ditch all the comments about where to put php.ini and all the
dll's -- they are only when trying to get PHP to work as ISAPI module.
 
After a fresh uncompression of a php distro (I usually pick a drive, like f:
or g:), and move the new directory to the drive I chose.  Then I rename the
dir so that the php directory is something like f:\php432 or g:\php434.  If
this is a fresh install, I also create a dir like f:\php or g:\php -- this
will hold all version neutral php files, like
sessiondata/uploadtemp/includes--in fact, create those subdirectories now
and make note of the path (ie, f:\php\sessiondata or g:\php\uploadtemp).
 
Now, inside your f:\php434 dir, copy all files in f:\php434\dlls\ to
f:\php434\.  Now copy the php.ini-recommended to php.ini.  Next we edit the
php.ini.  When you edit the php.ini, try to distinguish between version
specific and version neutral settings--ie, when you set the upload temp
directory, use f:/php/uploadtemp instead of f:/php434/uploadtemp etc...
likewise for the session directory.  the extension directory will need to
change from ./ to f:/php434/extensions (it was setup from the zip
archive--you downloaded the zip archive, right?).
 
If you are using MSSQL, then you also need to set the text size from the
default of 4096 to the max value allowed -- this prevents unexpected
truncation of data when fetching data from mssql.
 
Don't forget to set the include_path to f:/php/includes as well as your SMTP
server and email address.
 
Next, I decide which extensions to enable--usually
openssl/pdf/mhash/domxml/xslt/mssql/curl/gd2 are a must.  Save the file.
Now it is time to setup IIS.

You will need to right-click the server name in internet services manager
and select properties, then edit the WWW Service master properties; go to
the Home Directory tab, click configuration, then add an entry that points
the .php extension to f:\php434\php.exe.

When you point IIS to php.exe, your are using PHP as a CGI.  When you point
IIS to php4isapi.dll, you are using PHP as an ISAPI module.  That's all
there is to it really.  When running PHP as an ISAPI module, the code
actually becomes part of the IIS process and therefore needs to know where
to find the other PHP files, thus the c:\windows\php.ini location and "copy
the extension dll's to c:\windows\system32" instructions which are bunk --
just add the PHP dirs to your environment path (f:\php434\dlls and
f:\php434\extensions) if you want to run PHP as an ISAPI module.

That about does it--shoot me an email if you have any questions or need
clarification (this email was a bit hasty).

-- 
PHP Windows Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [PHP Users]     [PHP Database Programming]     [PHP Install]     [Kernel Newbies]     [Yosemite Forum]     [PHP Books]

  Powered by Linux