解决php报错:PHP Startup: Unable to load dynamic library ***的问题和thinkphp5不支持redis的问题

laragon下使用apache

记录一下使用 laragon 这个集成环境碰到的问题,希望可以帮到看到文章的人:

     项目使用 laragon 集成环境,软件集成了很多东西,详情百度,确实省事。

但是不好的在于不能完美达到开箱即用。

1.运行thinkphp5,软件已经集成了 redis ,本地可以使用命令行访问。但是tp一直报不支持redis,百度并且查看tp内代码提示之后发现需要安装phpredis扩展才可以,如图所示的报错

image.png

官网找到的解决办法是针对linux的,而我需要windows下的,通过不懈努力之后看到有方法可以解决

我本地是laragon3.2 ,php7.1,redis是3.2.100 windows10 x64

https://windows.php.net/downloads/pecl/releases/redis/

到上面这个网址找到你的redis版本。如果像我一样没有3.2的,就找最新的3.1.6的可以用,然后进去后选择php版本7.1 的 ts版(不懂百度)的 vc14的x64版本,下载压缩包,解压后里面只需要一个php_redis.dll文件,放到对应的ext文件夹下,并在php.ini的对应地方添加 extension=php_redis.dll  重启服务器即可

2.解决可能出现的 PHP Startup: Unable to load dynamic library 。。。的错误,

起因是因为代码内用到了 curl的一些参数,但是写法是这样的

$o = [
                CURLOPT_TIMEOUT        => 20,
                CURLOPT_RETURNTRANSFER => true,
                CURLOPT_URL            => $url,
                CURLOPT_USERAGENT      => request()->server('HTTP_USER_AGENT'),
                CURLOPT_POST           => 1,
                CURLOPT_POSTFIELDS     => ['p' => $p]
            ];

然后thinkphp就报错   Use of undefined constant CURLOPT_TIMEOUT - assumed 'CURLOPT_TIMEOUT',

找了大量资料,并且检查PHP的错误日志发现,php_curl.dll报错,然后我推断可能是因为没有加载上dll的原因导致的,又搜索了一些资料后发现curl.dll有两个依赖   libeay32.dll   和 ssleay32.dll 放到 c盘system32下没用

最后发现需要在 apache\httpd-2.4.29-Win64-VC15\bin 下把这两个dll放进去,重启环境后OK

curl问题是参考了:https://www.jianshu.com/p/7e9b51c9cdd1  看到的

猜你喜欢

转载自blog.csdn.net/qq_42774929/article/details/81487067