记一个CURL无法使用的问题跟踪过程,我的本地电脑是windows 10 + Apache 2.4 + PHP 7.3,今天发现无法使用curl,报错如下:
Fatal error: Uncaught Error: Call to undefined function curl_init()
然后各种折腾,系统环境path变量需要把php 7.3的目录加进来,先把 php 7.3 目录下的 libssh2.dll 文件拷贝到 Apache2.4/bin 目录下,重启无效,各种dll文件覆盖,拷贝到系统 system32 目录也不行。
最后,看到 Apache2.4/bin 目录下有一些文件库已经存在:
libcrypto-1_1-x64.dll
libssl-1_1-x64.dll
看到这2个文件,发现它们是 php 7.1 版本目录下拷贝过来的,因为飘易的电脑上安装了多个php版本,通过在 httpd.conf 里切换加载模块来切换不同的php版本:
PHPIniDir "D:/WEB/php73"
LoadModule php7_module "D:/WEB/php73/php7apache2_4.dll"
那么,问题就解决了。原因,是curl还依赖下面这2个文件:
libcrypto-1_1-x64.dll
libssl-1_1-x64.dll
从php 7.3 目录下重新拷贝下面3个文件到 Apache2.4/bin 目录下,重启apache,问题解决。
libssh2.dll
libcrypto-1_1-x64.dll
libssl-1_1-x64.dll
本文结束。