首页 > 后端开发 > PHP7 > 正文

如何解决php7无法加载curl的问题

醉折花枝作酒筹
发布: 2021-06-02 09:13:22
转载
2797人浏览过

本篇文章给大家介绍一下解决php7无法加载curl的方法。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。

如何解决php7无法加载curl的问题

为了快速救火先贴出解决办法:

#在apache 的主配置文件httpd.conf中加入
LoadFile "E:myServerphplibssh2.dll"
登录后复制

最近对PHP环境搭建配置做了一些创新的尝试,目的就是要最大限度让系统各部分更加干净,独立的apache、php、mysql,除此之外不需要更多。

在PHP配置文件中是可以使用相对路径的,可互联网上你能看到的教程全部是写绝对路径,例如D:pathphpext,现在不用了

立即学习PHP免费学习笔记(深入)”;

#第732行 php.ini 7.2.3
extension_dir = "..phpext"
登录后复制

在apache中的配置是可以动态引入的

Include conf/user.conf
Include conf/codenight/*.conf
登录后复制

甚至可以使用变量

Define ROOT "E:myServer"
Define SRV_ROOT "${ROOT}/Apache24"
登录后复制

以上可以解决非常多的配置问题,关于PHP环境搭建配置优化,在今天的和以前的推送中有详细说明,这里不展开。

配置优化后,PHP所有的模块都能如期加载,完美。

不不不,php_curl不行,这是apache告诉我们的

#在..Apache24logs中我们发现仅有的一条警告
PHP Warning:  PHP Startup: Unable to load dynamic library 'curl' 
(tried: ..\php\ext\curl (�Ҳ���ָ����ģ�顣), ..\php\ext\php_curl.dll (�Ҳ���ָ����ģ�顣)) in Unknown on line 0
登录后复制

那PHP的curl模块是用不了了,我们测试了

Fatal error: Uncaught Error: Call to undefined function curl_init()
登录后复制

emmmmm?

出了这个模块无法加载的问题,开始我怀疑是不是../php/ext的相对路径不能这样写,但其他模块mysqli,mbstring都没有问题,排除

百度搜索一波

Q: PHP Startup: Unable to load dynamic library 'curl'

不是想要的答案,换一种方式

Q: php7不能使用curl

A1:简单粗暴往httpd.conf塞四条语句

LoadFile D:/php/php7.1/php7ts.dll  
LoadFile D:/php/php7.1/libeay32.dll  
LoadFile D:/php/php7.1/ssleay32.dll  
LoadFile D:/php/php7.1/libssh2.dll
登录后复制

A2:其实只用加载一个即可

最终的解决方式是在php官网上搜索curl,然后看下面的英文评论.
Move to Windowssystem32 folder:
libssh2.dll, php_curl.dll, ssleay32.dll, libeay32.dll
Move to Apache24in folder
libssh2.dll 
我自己只是把libssh2.dll 这个文件放到Apache24in终于中解决。
登录后复制

以上这两种方法都能生效,但第一种胡乱加载无关模块太多,其实后患无穷;第二种就要好得多,有思考和尝试。第二种方法提到的是把PHP目录下的一个文件libssh2.dll放到apache目录下,但移动文件也不符合最小改动原则,这个还可以改进一下。

我们采用第三种动态加载的办法,通过在加载curl之前引入libssh2.dll即可,同时根据我们配置优化的结构,只用放到独立的php7.conf文件中,也不必修改httpd.conf

第一行是我们加入的,这样的好处是PHP的配置在单独的文件,不干扰apache主配置文件

#..myServerApache24confcodenightphp7.conf
#以支持curl
LoadFile "${PHP_ROOT}/libssh2.dll"
 
LoadModule php7_module "${PHP_ROOT}/php7apache2_4.dll"
AddHandler application/x-httpd-php .php
# 配置 php.ini所在路径
PHPIniDir "${PHP_ROOT}"
登录后复制

推荐学习:php视频教程

以上就是如何解决php7无法加载curl的问题的详细内容,更多请关注php中文网其它相关文章!

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
相关标签:
来源:csdn网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号