Edit report at http://bugs.php.net/bug.php?id=51536&edit=1

 ID:               51536
 Updated by:       ksin...@php.net
 Reported by:      ksin...@php.net
 Summary:          Add sapi binary location to php ini search path
 Status:           Assigned
 Type:             Feature/Change Request
 Package:          *Configuration Issues
 Operating System: Windows
 PHP Version:      5.2.13
 Assigned To:      pajoye

 New Comment:

Yes, the fix is not needed for FastCGI but it is required for SAPIs
which compile as dlls. Installer currently sets PHPRC environment
variable at system level. To make different versions of PHP pick
different php.ini in a SxS environment, it should stop creating PHPRC
environment variable. Without PHPRC, SAPIs which are dlls won't be able
to reach correct php.ini without this bug fix. This fix will be required
in both PHP 5.2 and PHP 5.3 so that both versions don't have dependency
on PHPRC. If one version requires PHPRC and installer sets it for that
version, other version is going to pick php.ini from location specified
by PHPRC unless we make PHP look for php.ini in SAPI binary location
first. I understand that we want to keep locations specified by PHPRC
and IniFilePath higher priority than SAPI binary folder. Given this, can
this be fixed for both PHP 5.2 and PHP 5.3?


Previous Comments:
------------------------------------------------------------------------
[2010-04-12 10:54:53] paj...@php.net

hi,



Yes, ini location detection is not so good right now and needs to be
improved.



However it has nothing to do with SxS per se. It is not need for FastCGI
as one can use php-cgi.exe -c c:\phpxxx\php.ini. The installer could do
that automatically, to support multiple install of the same versions
(per site configuaration) or multiple install of various versions.



I don't think we will and can make change this behavior in 5.2. Please
note that SxS support won't be done for 5.2, trunk will have it,
whatever will be this version.

------------------------------------------------------------------------
[2010-04-12 00:06:17] ksin...@php.net

Description:
------------
PHP searches php.ini in the binary location which is retrieved using
GetModuleFileName (first parameter to GetModuleFileName is NULL). This
will return path to current *executable* which won't be path to php sapi
binary in case of dlls. For IIS, location of w3wp.exe which is
%windir%\system32\inetsrv\ will be added to php ini search path. Is this
intentional? Can we change this code to make it look for php.ini in the
folder where php sapi binary is present? Without this fix, users running
non-cgi SAPIs are required to set PHPRC environment variable or
IniFilePath registry key to make PHP pick php.ini in the php install
folder.



If this bug is fixed, windows installer can stop setting PHPRC path to
[installdir] and will be able to support side-by-side (SxS) install of
PHP 5.2 and PHP 5.3. For installer to support SxS install, this change
is required in PHP 5.2 and PHP 5.3. 



If we are worried about this being breaking change, we can just *add*
php sapi binary location to php ini search path.



------------------------------------------------------------------------



-- 
Edit this bug report at http://bugs.php.net/bug.php?id=51536&edit=1

Reply via email to