Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

I have a 64bit Windows 7 Professional machine. I'm running WampServer Version 2.1 with Apache 2.2.4. It was installed on a clean machine.

I'm using the default ini/conf files as they come. Wamp is installed in C:\wamp\, with php5.2 at C:\wamp\bin\php\php5.2.11 and php5.3 at C:\wamp\bin\php\php5.3.4. Both folders have the same permissions. When I run WAMP with 5.2.11 picked, it starts fine. When I run it with 5.3.4 picked, there are no errors in the Apache or PHP error logs, but I get

The Apache service named  reported the following error:
httpd.exe: Syntax error on line 115 of C:/wamp/bin/apache/apache2.2.4/conf/httpd.conf:
Cannot load C:/wamp/bin/php/php5.3.4/php5apache2_2.dll into server:
The Apache service named is not a valid Win32 application.

in my system application error logs. 5.2.11 calls C:/wamp/bin/php/php5.2.11/php5apache2_2.dll and that doesn't throw an error. What am I doing wrong?


ETA: copies of the DLLs should be here:

PHP 5.2.11 - http://www.sendspace.com/file/bx5c5x

PHP 5.3.4 - http://www.sendspace.com/file/80y5bk

share|improve this question
    
Does this DLL "C:/wamp/bin/php/php5.3.4/php5apache2_2.dll" definitely exist? –  slotishtype Jun 28 '11 at 9:13
    
Yep. It's version 5.3.4.0 according to the file. I tried dumping the 5.2.11.11 version from the 5.2 directory into the 5.3 directory, but I get the same error. Both files have the same security settings. –  Ben Williams Jun 28 '11 at 9:18

1 Answer 1

up vote 2 down vote accepted
+50

A DLL normally cannot be loaded because it refers to modules that are missing on your computer.

The best way to find out which is to download the Dependency Walker and see what it says about it. It will indicate which DLLs are missing. The reason may be that they were not installed, or that the PATH system environment variable is missing this path.

If the missing DLL is msvcr90.dll, then the missing package is VC++ 2008 redistributable. Google for the right version (x86 or x64) and download it from Microsoft (only).

share|improve this answer
    
The things I can see with question marks next to them are libhttpd.dll, libapr-1.dll, libaprutil-1.dll and ieshims.dll, but all those also appear with question marks if I run dependency walker on the older dll as well, so I'm not really sure what I'm looking at. –  Ben Williams Jul 1 '11 at 15:57
    
These are probably delayed-load libraries that are not used unless explicitly used. I wonder if you can post these 2 DLLs somewhere for comparison (I don't fancy downloading the whole two packages). –  harrymc Jul 1 '11 at 18:33
    
PHP 5.2.11 - sendspace.com/file/bx5c5x PHP 5.3.4 - sendspace.com/file/80y5bk –  Ben Williams Jul 4 '11 at 7:36
    
I can see a crucial difference between the two : 5.2.11 is x86 (32-bits), while 5.3.4 is x64 (64-bits). From the fact that 5.2.11 runs well, it seems that your Apache is 32-bits. As one cannot mix architectures, you cannot run the 64-bit version of PHP 5.3.4. –  harrymc Jul 4 '11 at 8:09
    
Ah-hah! So in theory I just need to find a 32-bit version of PHP 5.3 that will run with Apache. –  Ben Williams Jul 4 '11 at 8:24

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.