BeetleJuice BeetleJuice - 1 month ago 10
PHP Question

Why does PHP refuse to enable cURL on Windows

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:


  • In
    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

  • In
    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.

  • When I use the full path and set
    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.

  • I have tried renaming the extension to
    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.

  • I have checked the file permissions for
    php_curl.dll
    (Right-click on the file >> Properties >> Security tab) and they are the same as the permissions for extensions that load successfully

  • I have copied and pasted
    libeay32.dll
    and
    ssleay32.dll
    from the PHP bin directory to the System32 and SysWOW64 directories as instructed by a response to this question

  • I am certain that I am editing the right
    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.

  • I have made sure to restart the Apache server between
    php.ini
    configuration changes.

  • If in a PHP script I execute
    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?

Answer

I think you'll need libssh2.dll in your PATH too.