#42980 [Opn]: Extension DLL's calling improper path to helper DLL

2007-11-06 Thread p_hilyard at yahoo dot com
 ID:   42980
 User updated by:  p_hilyard at yahoo dot com
 Reported By:  p_hilyard at yahoo dot com
 Status:   Open
 Bug Type: Dynamic loading
 Operating System: Windows XP Pro
 PHP Version:  5.2.4
 New Comment:

Ok, just a clarification as why i'm unable to change the PATH.  Most of
my devel work takes place on my mobile HDD (like i said) which gets
hooked to computers with DeepFreeze on them.  Upon updating the PATH, i
need to restart windows to get it to accept the change.  DeepFreeze
resets all files and settings to a previous state, which doesn't have
the proper PATH.  I can not disable DF due to the computers being owned
by the state.  If there is any way to create a variable or something in
php.ini to force use of a defined path within the ini, it would be
lovely.  Otherwise, it would be nice to set php to refer to the proper
directory for module extensions (../).

Thank you!
Paden


Previous Comments:


[2007-10-15 18:16:53] p_hilyard at yahoo dot com

Description:

The extensions for PHP are calling improper locations for their helper
DLL's.  I have my server set up on my portable HDD and have configured
Apache and PHP properly to reference to the drive.  All paths in the
PHP.ini, and httpd.conf work perfectly.  The issue is that
php_mcrypt.dll, php_mysql.dll, and php_mysqli.dll are calling the wrong
path for their support DLL's.  They are using the machine's PATH
variable instead of using the files relative to the install location. 
(Ex. php_mysql.dll will search this current machine's PATH
{C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\system32\nls;C:\WINDOWS\system32\nls\ENGLISH;C:\Program
Files\QuickTime\QTSystem\;C:\Program Files\Novell\ZENworks\} and not any
other link.  The actual support DLL's {/phpdev5/php} are not being
searched for.)  For this to work properly, i have to either copy the
support DLL's into one of the PATH directories, or add a location to the
PATH for it to search.  Either of the 2 options I am unwilling to do, as
this should work perfectly off of one area.  (Note:  The PATH search did
not take place in PHP4.  It called the support DLL's relative to the
install location.)

This results in a non-functioning extension, and multiple errors from
Apache.  

Final note, PHP 4 had no problem with the DLL's.  This is not an apache
problem, as i'm using the same Apache that i used for PHP4, reconfigured
of course!  And switching back to PHP4 doesn't give me the problem.

Reproduce code:
---
_start5.bat:
/phpdev5/php/php.exe -c /phpdev5/php.ini -f /phpdev5/start.php
**END**

start.php:
? 
echo PHP5 / Apache 2 Startup!..\n;
echo starting MySQL \n; 
pclose( popen('start phpdev5\\mysql\\bin\\mysqld-nt.exe
--basedir=/phpdev5/mysql --datadir=/phpdev5/mysql/data --port=3306
--console --standalone','r' ) ); 
echo starting apache\n; 
flush(); 
pclose(popen('start phpdev5\\Apache2\\bin\\apache.exe','r')); 
flush(); 
sleep(5); 
echo 'opening localhost'; 
exec( 'start http://localhost:80'); 
?
**END**



Expected result:

_start5.bat runs start.php through PHP.
start.php:

Echos a message, then starts MySQL.
Echos a message, then starts Apache2.
Opens an IExplroe window to localhost.
Script ends.

Actual result:
--
Start.bat successfully executes, calling start.php.

Start.php successfully starts MySQL after the echo.
Start.php starts Apache2 after the echo.
Apache2 errors stating PHP is unable to load libmysql.dll and
libmcrypt.dll.
(This application has failed to start because LIBMYSQL.dll (or
libmcrypt.dll) was not found.  Re-installing the application may fix
this problem.)
Apache2 does not shut down, but keeps running without mcrypt and
mysql(i) support.
IExplore opens successfully.
Script ends.

Apache ERROR LOG:


[Mon Oct 15 10:31:11 2007] [notice] Apache/2.0.59 (Win32) PHP/5.2.4
configured -- resuming normal operations
[Mon Oct 15 10:31:11 2007] [notice] Server built: Jul 27 2006 15:55:03
[Mon Oct 15 10:31:11 2007] [notice] Parent: Created child process 3904
PHP Warning:  PHP Startup: Unable to load dynamic library
'\\phpdev5\\php\\ext\\php_mcrypt.dll' - The specified module could not
be found.\r\n in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library
'\\phpdev5\\php\\ext\\php_mysql.dll' - The specified module could not be
found.\r\n in Unknown on line 0
[Mon Oct 15 10:31:12 2007] [notice] Child 3904: Child process is
running
[Mon Oct 15 10:31:12 2007] [notice] Child 3904: Acquired the start
mutex.
[Mon Oct 15 10:31:12 2007] [notice] Child 3904: Starting 250 worker
threads.





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


#42980 [NEW]: Extension DLL's calling improper path to helper DLL

2007-10-15 Thread p_hilyard at yahoo dot com
From: p_hilyard at yahoo dot com
Operating system: Windows XP Pro
PHP version:  5.2.4
PHP Bug Type: Dynamic loading
Bug description:  Extension DLL's calling improper path to helper DLL

Description:

The extensions for PHP are calling improper locations for their helper
DLL's.  I have my server set up on my portable HDD and have configured
Apache and PHP properly to reference to the drive.  All paths in the
PHP.ini, and httpd.conf work perfectly.  The issue is that php_mcrypt.dll,
php_mysql.dll, and php_mysqli.dll are calling the wrong path for their
support DLL's.  They are using the machine's PATH variable instead of using
the files relative to the install location.  (Ex. php_mysql.dll will search
this current machine's PATH
{C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\system32\nls;C:\WINDOWS\system32\nls\ENGLISH;C:\Program
Files\QuickTime\QTSystem\;C:\Program Files\Novell\ZENworks\} and not any
other link.  The actual support DLL's {/phpdev5/php} are not being searched
for.)  For this to work properly, i have to either copy the support DLL's
into one of the PATH directories, or add a location to the PATH for it to
search.  Either of the 2 options I am unwilling to do, as this should work
perfectly off of one area.  (Note:  The PATH search did not take place in
PHP4.  It called the support DLL's relative to the install location.)

This results in a non-functioning extension, and multiple errors from
Apache.  

Final note, PHP 4 had no problem with the DLL's.  This is not an apache
problem, as i'm using the same Apache that i used for PHP4, reconfigured of
course!  And switching back to PHP4 doesn't give me the problem.

Reproduce code:
---
_start5.bat:
/phpdev5/php/php.exe -c /phpdev5/php.ini -f /phpdev5/start.php
**END**

start.php:
? 
echo PHP5 / Apache 2 Startup!..\n;
echo starting MySQL \n; 
pclose( popen('start phpdev5\\mysql\\bin\\mysqld-nt.exe
--basedir=/phpdev5/mysql --datadir=/phpdev5/mysql/data --port=3306
--console --standalone','r' ) ); 
echo starting apache\n; 
flush(); 
pclose(popen('start phpdev5\\Apache2\\bin\\apache.exe','r')); 
flush(); 
sleep(5); 
echo 'opening localhost'; 
exec( 'start http://localhost:80'); 
?
**END**



Expected result:

_start5.bat runs start.php through PHP.
start.php:

Echos a message, then starts MySQL.
Echos a message, then starts Apache2.
Opens an IExplroe window to localhost.
Script ends.

Actual result:
--
Start.bat successfully executes, calling start.php.

Start.php successfully starts MySQL after the echo.
Start.php starts Apache2 after the echo.
Apache2 errors stating PHP is unable to load libmysql.dll and
libmcrypt.dll.
(This application has failed to start because LIBMYSQL.dll (or
libmcrypt.dll) was not found.  Re-installing the application may fix this
problem.)
Apache2 does not shut down, but keeps running without mcrypt and mysql(i)
support.
IExplore opens successfully.
Script ends.

Apache ERROR LOG:


[Mon Oct 15 10:31:11 2007] [notice] Apache/2.0.59 (Win32) PHP/5.2.4
configured -- resuming normal operations
[Mon Oct 15 10:31:11 2007] [notice] Server built: Jul 27 2006 15:55:03
[Mon Oct 15 10:31:11 2007] [notice] Parent: Created child process 3904
PHP Warning:  PHP Startup: Unable to load dynamic library
'\\phpdev5\\php\\ext\\php_mcrypt.dll' - The specified module could not be
found.\r\n in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library
'\\phpdev5\\php\\ext\\php_mysql.dll' - The specified module could not be
found.\r\n in Unknown on line 0
[Mon Oct 15 10:31:12 2007] [notice] Child 3904: Child process is running
[Mon Oct 15 10:31:12 2007] [notice] Child 3904: Acquired the start mutex.
[Mon Oct 15 10:31:12 2007] [notice] Child 3904: Starting 250 worker
threads.

-- 
Edit bug report at http://bugs.php.net/?id=42980edit=1
-- 
Try a CVS snapshot (PHP 4.4): 
http://bugs.php.net/fix.php?id=42980r=trysnapshot44
Try a CVS snapshot (PHP 5.2): 
http://bugs.php.net/fix.php?id=42980r=trysnapshot52
Try a CVS snapshot (PHP 6.0): 
http://bugs.php.net/fix.php?id=42980r=trysnapshot60
Fixed in CVS: http://bugs.php.net/fix.php?id=42980r=fixedcvs
Fixed in release: 
http://bugs.php.net/fix.php?id=42980r=alreadyfixed
Need backtrace:   http://bugs.php.net/fix.php?id=42980r=needtrace
Need Reproduce Script:http://bugs.php.net/fix.php?id=42980r=needscript
Try newer version:http://bugs.php.net/fix.php?id=42980r=oldversion
Not developer issue:  http://bugs.php.net/fix.php?id=42980r=support
Expected behavior:http://bugs.php.net/fix.php?id=42980r=notwrong
Not enough info:  
http://bugs.php.net/fix.php?id=42980r=notenoughinfo
Submitted twice:  
http://bugs.php.net/fix.php?id=42980r=submittedtwice
register_globals: http://bugs.php.net/fix.php?id=42980r=globals
PHP 3 support discontinued:   http://bugs.php.net/fix.php