curl已加载
最近在一个项目中需要用到php下的curl扩展,但是在实际运行时遭遇到了curl函数无法执行的问题,页面错误为:
Call to undefined function curl_init();
环境配置:
按照常规步骤检查
结果一切正常,但是phpinfo()的结果里没有curl模块
立即学习“PHP免费学习笔记(深入)”;
然后用搜的,网上大多数的解决方案是:
最后朋友给出一种终极方法:把现在的环境干掉,找个集成环境重新装一遍!
这也是个办法,可是我不想重装,咋办?
另外,我还发现了一个奇怪的现象,我在command line下检查加载的模块时,curl是可以加载的,并且可以执行。但是用phpinfo()就是显示没有加载。
这本书并不是一本语言参考书,但它是一个Android开发者去学习Kotlin并且使用在自己项目中的一个工具。我会通过使用一些语言特性和有趣的工具和库来解决很多我们在日常生活当中都会遇到的典型问题。 这本书是非常具有实践性的,所以我建议你在电脑面前跟着我的例子和代码实践。无论何时你都可以在有一些想法的时候深入到实践中去。 这本书适合你吗? 写这本书是为了帮助那些有兴趣 使用Kotlin语言来进行开发的Android开发者。 如果你符合下面这些情况,那这本书是适合你的: 你有相关Android开发和Andro
11
接着就再放狗查这个现象,然而没有什么有用的信息。
一个偶然的想法,去看了apache的日志,发现一行:
PHP Warning: PHP Startup: Unable to load dynamic library 'C:\Server\php\ext\php_curl.dll' - The operating system cannot run %1. in Unknown on line 0
根据apache的错误日志,大概能看出来,这是操作系统没有找到对应的动态链接库。
于是放狗,打开php官方的一篇文档:PHP: 安装 - Manual,查找The operating system cannot run %1. ,找到标题是mtudor AT icefusion remove me DOT co uk ¶的一篇帖子内容,在这篇发布于7年前的帖子里,他讲述了遇到的一个跟这个问题几乎一致的现象!,并对这个问题给出了详细的分析、产生的原因和解决方法。
其中在原因一节,他这样写道:
CAUSE-----This was caused by PHP picking up the WRONG VERSIONS of libeay.dll and ssleay.dll, which were present in multiple locations on my computer. When any application attempts to use a dll file in windows, the system searches for this file using the following order: The directory from which the application loaded. The windowssystem32 directory. The windowssystem directory. The windows directory. The current directory. The directories that are listed in the PATH environment variable. (http://msdn.microsoft.com/en-us/library/ms682586.aspx) For PHP running under Apache, the application directory is in and NOT . PHP was finding OUT OF DATE versions of libeay.dll and ssleay.dll in in (probably installed when I enabled SSL support in my web server). Because of this, the latest versions in windowssystem32 were never reached.
他主要分析了windows系统查找动态链接库文件的顺序,注意到其中的一段话:
For PHP running under Apache, the application directory is
这说明apache可能需要在自己的运行环境里找到libeay32.dll,ssleay32.dll和php_curl.dll这几个文件,但我们并没有把它们从php文件夹下拷到apache/bin下,而是放到了windows/system32中,而并卵。
纠正以后,终于看到了熟悉的结果。而这也正好解释了我能在command line下可以执行curl_init(),但用phpinfo()函数看不到的现象。
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号