[PHP-BUG] Req #51536 [NEW]: Add sapi binary location to php ini search path

2010-04-11 Thread ksin...@php.net
From: ksingla
Operating system: Windows
PHP version:  5.2.13
Package:  *Configuration Issues
Bug Type: Feature/Change Request
Bug description:Add sapi binary location to php ini search path

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 bug report at http://bugs.php.net/bug.php?id=51536&edit=1
-- 
Try a snapshot (PHP 5.2):
http://bugs.php.net/fix.php?id=51536&r=trysnapshot52
Try a snapshot (PHP 5.3):
http://bugs.php.net/fix.php?id=51536&r=trysnapshot53
Try a snapshot (PHP 6.0):
http://bugs.php.net/fix.php?id=51536&r=trysnapshot60
Fixed in SVN:
http://bugs.php.net/fix.php?id=51536&r=fixed
Fixed in SVN and need be documented: 
http://bugs.php.net/fix.php?id=51536&r=needdocs
Fixed in release:
http://bugs.php.net/fix.php?id=51536&r=alreadyfixed
Need backtrace:  
http://bugs.php.net/fix.php?id=51536&r=needtrace
Need Reproduce Script:   
http://bugs.php.net/fix.php?id=51536&r=needscript
Try newer version:   
http://bugs.php.net/fix.php?id=51536&r=oldversion
Not developer issue: 
http://bugs.php.net/fix.php?id=51536&r=support
Expected behavior:   
http://bugs.php.net/fix.php?id=51536&r=notwrong
Not enough info: 
http://bugs.php.net/fix.php?id=51536&r=notenoughinfo
Submitted twice: 
http://bugs.php.net/fix.php?id=51536&r=submittedtwice
register_globals:
http://bugs.php.net/fix.php?id=51536&r=globals
PHP 4 support discontinued:  http://bugs.php.net/fix.php?id=51536&r=php4
Daylight Savings:http://bugs.php.net/fix.php?id=51536&r=dst
IIS Stability:   
http://bugs.php.net/fix.php?id=51536&r=isapi
Install GNU Sed: 
http://bugs.php.net/fix.php?id=51536&r=gnused
Floating point limitations:  
http://bugs.php.net/fix.php?id=51536&r=float
No Zend Extensions:  
http://bugs.php.net/fix.php?id=51536&r=nozend
MySQL Configuration Error:   
http://bugs.php.net/fix.php?id=51536&r=mysqlcfg



Req #51536 [PATCH]: Add sapi binary location to php ini search path

2010-05-01 Thread ksin...@php.net
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: define_phpdll_patch_53
Revision:   1272738705
URL:   
http://bugs.php.net/patch-display.php?bug=51536&patch=define_phpdll_patch_53&revision=1272738705


Previous Comments:

[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


Req #51536 [PATCH]: Add sapi binary location to php ini search path

2010-05-01 Thread ksin...@php.net
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