I am using PHP 5.5.25
with Apache 2.4
on Windows 7 x64
and I am unable to activate the cURL module. I have looked around and tried all I could think of. Please assist:
php.ini
, the line extension=php_curl.dll
is active and the file php_curl.dll
is present in the extensions directory C:\php\ext
php.ini
when I set extension_dir = ext
, none of the extensions load. I get several messages when Apache starts, similar to Unable to load dynamic library
ext\php_openssl.dll- The specified module could not be found.
extension_dir = C:\php\ext
, all the extensions load fine, except for cURL. I get the error: Unable to load dynamic library
C:\php\ext\php_curl.dll- The specified module could not be found.
php_curl.new.dll
and adjusting php.ini
but I get an error message about the new filename. I have also downloaded a fresh new copy of the DLL from windows.php.net
, but that made no difference.php_curl.dll
(Right-click on the file >> Properties >> Security tab) and they are the same as the permissions for extensions that load successfullylibeay32.dll
and ssleay32.dll
from the PHP bin directory to the System32 and SysWOW64 directories as instructed by a response to this question
php.ini
since the PHP startup error messages changed when I changed the extension_dir
value from ext
to C:\php\ext
as I explained above.php.ini
configuration changes.var_dump(file_exists('C:\php\ext\php_curl.dll'));
, I get boolean True
so PHP can see the file!What else could explain why the cURL module is not enabled?
I think you'll need libssh2.dll
in your PATH
too.
Credit goes to @Steven Hilder for pointing me in the right direction.
The problem was that Windows could not see libssh2.dll
, another DLL that was in PHP's directory. Copying this file to C:\Windows\SysWOW64
and C:\Windows\System32
, along with the other two DLL files from my OP (libeay32.dll
and ssleay32.dll
) worked.
I am uncomfortable with this solution though because when the time comes to update to a new PHP version I will have a harder time remembering to overwrite these DLLs with the new version.
Therefore, I decided to remove all 3 DLLs from the System32
and SysWOW64
directories. Instead, I just added the PHP bin directory to the Windows' PATH variable, so that the next time the OS is looking for a missing file, it will also look in that directory. This has the added bonus that if a similar problem with another DLL occurs, it will be resolved automatically.
To add the PHP bin to Windows' PATH:
Start Menu
search bar, search for and select Advanced system settings
Environment Variables
. Scroll down the list of System variables to select Path
and click Edit...
to open the current PATH setting;C:\php
or whatever directory has php.exe
to the current setting (semi-colon is used to separate paths).on windows the cURL execution wants SSL certificate. may be because of that others error is showing.
Put the below code before curl_exec(curlHandle) to ignore checking for SSL certificate
//to ignore the SSL certificate in windows
curl_setopt($curlHandle, CURLOPT_SSL_VERIFYPEER,false);
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With