Apache Configuration: PHP extension 'not found'

Hello,

I’m installing Apache, PHP and MysQL on my WinXP machine. I’ve done it before on my Win7 laptop so I know it’s not all that difficult, but there’s a problem that so far has me puzzled.

When Apache starts I get the following error message in the Apache ‘error.log’:

"PHP Warning:  PHP Startup: Unable to load dynamic library 'D:\\\\SERVER\\\\PHP\\\\ext\\\\php_mysqli.dll' - The specified module could not be found.\\r\
 in Unknown on line 0".

I was puzzled by the doubled up ‘//’, but this seems to be standard for error messages, and not a concern (correct me if I’m wrong, please). The Extensions path in php.ini is defined as :

extension_dir = "D:\\SERVER\\PHP\\ext"

The file “php_mysqli.dll” does most certainly exist in that location. Just to make sure I’ve dragged it across again. So why is it not getting found ? I keep looking for a typo, but I’ve not seen one yet. Apache itself, and PHP, work fine. Not, of course, MySQL.

I’ve tried un-commenting two other extensions (chosen only because they’re un-commented in my laptop installation), ‘mbstring.dll’ and ‘mycrypt.dll’. ‘mycrypt.dll’ gets a similar error message, but there’s no error for ‘mbstring.dll’, so presumably it was found, which would mean there’s no error in the path.

Any* suggestions, please ? I have wondered about a corrupted PHP download, but if the file name is there, it should be found, surely, even if corrupt ?

  • NOT WAMP, XAMPP etc., please. I’ve been running XAMPP for years, and though it’s excellent I want to use something that I can update more readily.

I’ve had a similar problem quite a while ago and then it turned out to be a problem with some dll file that was missing.
Does this thread help?

Thanks for your reply.

I did as suggested in the link you sent (copied ‘d:\SERVER\PHP\libmysql.dll’ to c:\windows) and Apache has restarted without the error message in respect of ‘php_mysqli.dll’. There’s still an error message about ‘php_mycrypt.dll’, but I see there’s also a file called ‘libmycrypt.dll’, and following the same analogy I’ll try copying that to c:\windows, and see what happens. However, it’s late, so I’ll be doing that tomorrow. Then I’ll hope to get MySQL running.

I wonder if these files should be installed in ‘c:\windows’ by the MySQL installation, but weren’t for some reason ? FWIW they do not appear in ‘c:\windows’ on my Win7 laptop, though they are present in the PHP folder (of course). Maybe things are different for WinXP.

Thanks very much for your help.

Let us know how you get on and of course feel free to come back with additional questions in case it doesn’t work.

Thanks for your continued interest.

It all went as expected, and I’ve got MySQL running now. It’s phpMyAdmin that requires (or runs better with) mycrypt, and so I had to copy libmycrypt.dll across to ‘c:\windows’ to get it to load.

I had some trouble getting mySQL to run as a service. Turned out to be because there was already a MySQL service running for the previous installation, and it’s quite hard to eradicate.

The Apache Services Monitor doesn’t always appear in the system tray when the computer boots, which is irritating. I’ve worked around it by putting a shortcut on my desk top. If it doesn’t appear in the system tray I just have to start it using the shortcut. Then it does appear and runs as it normal. I haven’t yet worked out why this happens. I’m an Admin user, and it’s in my Startup folder, so as far as I know it should load at boot.

Lastly I’ve got this message in phpMyAdmin: “Your PHP MySQL library version 5.0.51a differs from your MySQL server version 5.5.24. This may cause unpredictable behavior.” AFAIK the most recent version of PHP available for Apache2.2 and WinXP (VC6) is 5.2.17, which is what I downloaded, but perhaps I’m wrong. VC9 versions (5.4.XX) don’t seem to be for Apache. I see mention of ‘ApacheLounge’ on the PHP download site to , but I’m not sure what this is and haven’t investigated (yet).

Neither of these things are critical (depends what the unstable behaviour is, I suppose), but it would be nice to get them sorted.

It’s been a while so I’m not sure, but IIRC the VC9 PHP also works with Apache 2 on Windows. At least on win 7, don’t know about XP

It looks like 5.4 may possibly work but I can’t be sure:

http://php.net/releases/5_4_0.php

PHP 5.4 will be the last series to support Windows XP and Windows 2003. We will not provide binary packages for these Windows versions after PHP 5.4.

Thank you both.

I had followed SpacePhoenix’s link before, and from there I reached a PHP download page where I read in the left column:

Which version do I choose?
If you are using PHP with Apache 1 or Apache2 from apache.org you need to use the VC6 versions of PHP

and then further down the same column:

VC9 versions of Apache can be fetched at Apache Lounge. We use their binaries to build the Apache SAPIs.

So I’ve had a quick look at Apache Lounge. It’s a forum (as it’s name might imply) and it’s got a lot of potentially good stuff. There’s a thread about PHP 5.3/5.4 (VC9) running OK in Apache 2.2, but it’s not clear that included WinXP. Time for some experimentation.

Perhaps it’s also time to upgrade my OS (or buy a new computer).

Success at last (subject to further testing).

I finally gave up with PHP 5.2.17 because it was throwing up endless errors with MySQL 5.5.24. Following advice from ‘Apache Lounge’ I’ve installed a VC9 version of PHP (5.4.4) and so far all is working OK, and phpMyAdmin is happy as well.

But I can see it’s going to get increasingly uphill with WinXP as support is withdrawn.

My thanks for your help.