Edit report at http://bugs.php.net/bug.php?id=51536&edit=1
ID: 51536 Patch added 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: The following patch has been added/updated: Patch Name: inipath_patch53 Revision: 1272738781 URL: http://bugs.php.net/patch-display.php?bug=51536&patch=inipath_patch53&revision=1272738781 Previous Comments: ------------------------------------------------------------------------ [2010-05-01 20:31:46] ksin...@php.net The following patch has been added/updated: Patch Name: define_phpdll_patch_53 Revision: 1272738705 URL: http://bugs.php.net/patch-display.php?bug=51536&patch=define_phpdll_patch_53&revision=1272738705 ------------------------------------------------------------------------ [2010-04-13 01:06:09] paj...@php.net As I said in my first comment I don't think we can make this change in 5.2 or 5.3. However we could have alternative solutions. I will take a 2nd look at this problem (there is another report about the ini path priorities). But again, what's the deal with SxS and 5.2/5.3? We can't do that either. ------------------------------------------------------------------------ [2010-04-12 23:44:45] ksin...@php.net 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? ------------------------------------------------------------------------ [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