ID: 39316
Comment by: noah dot rusnock at echo-digitaldesign dot com
Reported By: aren at cambre dot biz
Status: Open
Bug Type: Unknown/Other Function
Operating System: Windows Server 2003
PHP Version: 5.1.6
New Comment:
I just setup a Windows 2000 SP4 virtual machine using Microsoft
VirturalPC 2007 beta. I used the exact same setup as I did for my
Windows XP (non-virtual machine) Apache server with PHP and I am still
unable to load any extensions.
Previous Comments:
[2006-11-02 20:50:11] noah dot rusnock at echo-digitaldesign dot com
I have been dealing with this problem for months! I am using Windows XP
SP2 with Apache 2.0.59 and PHP 5.1.6. I think I have had this issue
since 5.1.4 or 5.1.3; I don't remember. I am new to PHP and Apache, but
setup my own localhost server earlier this year (2006) and have had this
problem from the beginning. (I added a vote, but submitted it as a 3;
should be a 5; I need this working to start learning MySQL)
[2006-10-31 19:51:40] aren at cambre dot biz
That did not fix it. I deleted everything in C:\php, including
directories, except for php.ini. Then I copied over the contents of
php5.2-win32-latest.zip and did an iisreset (a command line program
that restarts the web server).
By the way, it looks like php is checking a couple of additional
directories besides those specified in the path. Here is my path (each
directory on a separate line):
%SystemRoot%\system32
%SystemRoot%
%SystemRoot%\System32\Wbem
c:\Program Files\Intel\DMIX
C:\Program Files\Microsoft SQL Server\80\Tools\Binn\
c:\Program Files\Microsoft SQL Server\90\Tools\binn\
c:\php
Here is what PHP checks:
C:\windows\system32\inetsrv\php_mysql.dll
C:\WINDOWS\system32\php_mysql.dll
C:\WINDOWS\system\php_mysql.dll
C:\WINDOWS\php_mysql.dll
C:\WINDOWS\system32\inetsrv\php_mysql.dll
C:\WINDOWS\system32\php_mysql.dll
C:\WINDOWS\php_mysql.dll
C:\WINDOWS\System32\Wbem\php_mysql.dll
C:\Program Files\Intel\DMIX\php_mysql.dll
C:\Program Files\Microsoft SQL Server\80\Tools\Binn\php_mysql.dll
C:\Program Files\Microsoft SQL Server\90\Tools\binn\php_mysql.dll
C:\php\php_mysql.dll
PHP follows the path exactly starting with the 6th line. The first 5
lines are some unknown set of directories.
PHP checks those directories twice in a row.
[2006-10-31 11:32:17] [EMAIL PROTECTED]
Please try using this CVS snapshot:
http://snaps.php.net/php5.2-latest.tar.gz
For Windows:
http://snaps.php.net/win32/php5.2-win32-latest.zip
[2006-10-31 04:49:18] aren at cambre dot biz
Description:
extension_dir (in php.ini) has no effect in Windows. I installed a
relatively clean installation of PHP 5.1.6 on Windows 2003. I
configured the extension_dir line in php.ini using all these forms:
extension_dir = c:\PHP\ext
extension_dir = c:\php\ext
extension_dir = c:/PHP/ext
extension_dir = "c:\php\ext"
Regardless of the form used, php does not even attempt to search the
c:\php\ext directory to find extensions.
Reproduce code:
---
1. Install php 5.1.6 on a clean Windows system. Only configure what is
necessary to get it running. Be sure to set extension_dir to your
actual ext directory. (Preferably, c:\php\ext.) Do a hello world php to
test functionality.
2. Uncomment this line in php.ini:
extension=php_mysql.dll
3. Download the latest phpMyAdmin. Extract files and copy to a
directory in your web server.
4. Get File Monitor from sysinternals (www.sysinternals.com).
5. Load File Monitor, and set its filter to php_mysql.dll. (This is so
that it just reports on attempts to find php_mysql.dll and not hundreds
of other filesystem hits.)
6. Start File Monitor so that it's catching filesystem hits.
7. Browse myPhpAdmin's index.php in a browser. You'll get an error
saying that the mysql drivers cannot be used.
8. Go back to File Monitor. Notice how none of the directories searched
were the directory specified in extension_dir.
Installing mySql is optional. Its presence has no effect on the above
problem. (Of course, if the system actually found php_mysql.dll, then
it would be a problem if mySql was not installed!)
Expected result:
phpMyAdmin should find the mySql extension, and File Monitor should
confirm that php actually searches the c:\php\ext directory for the
extensions.
Actual result:
--
Php searches all directories in the system path! extension_dir has no
effect under Windows. You have to add c:\php AND c:\php\ext to the
system path.
I think this is likely an application bug because the documentation is
quite clear on how extension_dir should be configured.
-