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

本文介绍了在laragon集成环境中遇到的两个问题及其解决方案:1. ThinkPHP5项目无法使用Redis,通过下载phpredis扩展并配置php.ini解决了不支持Redis的问题。2. PHP报错“Unable to load dynamic library”,原因是缺少curl的依赖库libeay32.dll和ssleay32.dll,将它们放入Apache的bin目录下解决了问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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  看到的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值