PHP unable to load php_curl.dll extension

后端 未结 13 2510
暖寄归人
暖寄归人 2020-11-29 08:58

Follow-up from my post yesterday (Enabling cURL with PHP)

The problem is that PHP isn\'t able to load php_curl.dll. I\'ve tried several steps including uncommenting

相关标签:
13条回答
  • 2020-11-29 09:24

    Solution:

    Step1: Uncomment the php_curl.dll from php.ini
    
    Step2: Copy the following three files from php installed directory.i.e "C:\\php7".
    
    libeay32.dll,
    libssh2.dll,
    ssleay32.dll
    
    Step3: Paste the files under two place
    
    httpd.conf's ServerRoot directive. i.e "C\Apache24"
    apache bin directory. i.e "C\Apache24\bin"
    
    Step4: Restart apache.
    

    That's all. I solve the problem by this way.Hope it might work for you.

    The solution is given here. https://abcofcomputing.blogspot.com/2017/06/php7-unable-to-load-phpcurldll.html

    0 讨论(0)
  • 2020-11-29 09:25

    Usually this is an OpenSSL version mismatch error, between Apache and PHP. In case Apache loads PHP as a DSO module, its own OpenSSL versions (dlls and libs) will be used. So, in case the PHP extension requires a newer version, it may not find the appropriate interface inside the Apache-loaded DLLS and it will fail to work.

    Since you need the PHP extension to load, you need the relevant DLL files to be at least the version of what the PHP module asks for. Supposing that you 're using lastest builds for both Apache and PHP and both having been built with the same MVC version, you can copy the following files:

    • libcrypto-1_1.dll
    • libcrypto-1_1-x64.dll
    • libcurl.dll
    • libsasl.dll
    • libssh2.dll
    • libssl-1_1.dll
    • libssl-1_1-x64.dll
    • nghttp2.dll
    • libeay32.dll (if existing in your PHP distribution)
    • ssleay32.dll (if existing in your PHP distribution)

    from the PHP root folder to the Apache2/bin folder, in case you 're confident that the PHP build is newer than the Apache build.

    In the opposite case, you can copy the same files from the Apache BIN to the PHP root.

    In any case, backup the contents of the APache and PHP folders beforehand.

    Adding the PHP path as an enviromental variable will give priority to this path for loading the relevant DLLs and may solve the problem. However, you lose in server portability. Additionally, if you have also added the Apache PATH as a variable and the OpenSSL versions are way different (up to loading different linked DLL files), a lot of shit may happen.

    0 讨论(0)
  • 2020-11-29 09:26

    I got this error because, on my system at least, if extension_dir in php.ini is set to a relative path, it is taken as being relative to the root Apache directory, so to get it to point to the correct directory I had to use an absolute path: "C:\Program Files (x86)\PHP\ext". (This was PHP 5.5.31 and Apache 2.4.23 on Windows 10; setting extension_dir to ext worked just fine with the same setup on Windows 7. I first got it to work by putting an ext directory in the Apache folder with the necessary dlls, then figured out what was happening.)

    It was also necessary to set the PATH correctly or make sure the dlls mentioned above (libeay32.dll, libssh2.dll, and ssleay32.dll) are in Apache's bin directory (or most likely any of the places other answers mention). The fact that I got the same error message for Apache not being able to find lib_curl.dll as for it not being able to find libssh2.dll did not make things any easier to figure out.

    0 讨论(0)
  • 2020-11-29 09:28

    I have encountered the same problem before.I resolved it by add php directory to windows system environment variables---Path.

    0 讨论(0)
  • 2020-11-29 09:30

    Make sure to have your apache SSH dlls loading correctly. On a fresh install I had to download and load into my apache bin directory the following dll "libssh2.dll"

    After ssl dll was loaded cURL was able to load with no issues.

    You can download it from the link below:

    http://windows.php.net/downloads/pecl/releases/ssh2/0.12/

    0 讨论(0)
  • 2020-11-29 09:32

    Add your php folder path to the System PATH and everything should work fine. It will also fix some other extensions that are broken.

    0 讨论(0)
提交回复
热议问题