更新:问题似乎是我的PHP安装中某处已损坏的DLL,或者可能是Win2k上的PHP 5.2.9中的错误。我从php.net下载了PHP 5.2.10的windows(仅限二进制文件)发行版,并将其解压缩到我的c:\ PHP目录中。在这之后,一切正常。
Update2 :我解除了我之前尝试的所有内容(以下项目符号列表中的所有内容),除了,我在我的php中取消注释“extension=php_curl.dll
” .ini文件。事实证明,在正确的安装中你应该做的就是。
我正在尝试让CURL在PHP的Windows安装(版本5.2.9-2)上工作,而我现在已经结束了。我找到the PHP CURL installation page,this SO question引用了this page和this SO question。我已经在所有这些页面中尝试了大部分建议,但我仍然遇到错误。这是我非常简单的测试页面:
<?php
$ch = curl_init();
?>
<b>Success!</b>
这给了我:
致命错误:在 C <\ ApacheRoot \ curltest.php 的 2
上调用未定义的函数curl_init()
在我的Apache错误日志中,每次服务器启动时都会收到此信息:
PHP Warning: PHP Startup: Unable to load dynamic library 'C:\\PHP\\ext\\php_curl.dll' - The specified procedure could not be found.\r\n in Unknown on line 0
我做了以下事情:
extension=php_curl.dll
ssleay32.dll
和libeay32.dll
到C:\ WINNT \ System32 C:\cURL
添加到我的系统PATH环境变量中。extension_dir="C:\PHP\ext"
C:\PHP\ext
包含php_curl.dll
php.ini
文件位于C:\PHP
(即特别是没有C:\WINNT\php.ini
)httpd.conf
文件包含行PHPIniDir "C:/PHP/"
我也重启了机器(好几次,实际上......)。
答案 0 :(得分:9)
您不必重新启动计算机,只需重新启动apache,php模块就会读取新的ini 你有没有改变正确的php.ini?如有疑问
<?php echo 'php.ini: ', get_cfg_var('cfg_file_path'); ?>
可以告诉你。
apache的error.log中是否有东西表明加载php和php_curl.dll时出错?
您是否已将apache作为win32服务启动?如果您尝试将其作为控制台应用程序启动。然后,错误消息将显示在控制台上。或者将其作为服务启动并查看error.log文件和 windows事件日志(开始,运行,eventvwr.msc /s
)。
编辑:
“无法找到指定的程序”
你需要一个兼容你的php版本和构建的DLL。究竟你安装了什么,你从哪里得到它?
答案 1 :(得分:7)
试试这个:
应该有希望解决它。
*编辑:做同样的事情@ C:\ Path \ To \ WAMP \ bin \ php \ PHPVersion \
答案 2 :(得分:1)
这对我有用
Soren从另一个SO主题回答 - CURL for WAMP
“某处似乎有一个错误。如果您在Win 7 64位上遇到此问题,请尝试安装apache插件版本2.2.9和php插件版本5.3.1并切换到WAMP中的那些然后激活CURL扩展那对我有用。“
答案 3 :(得分:1)
这为我解决了这个问题:
转到此处:
http://www.anindya.com/php-5-4-3-and-php-5-3-13-x64-64-bit-for-windows/
下载'php_curl-5.3.13-VC9-x64.zip'
停止运行WAMP服务器
解压缩文件'php_curl.dll'。
在本地计算机上,浏览到(或找到WAMP安装的地方)c:\ wamp \ bin \ php \ php5.3.13 \ ext
将php_curl.dll重命名为php_curl.dll.old(或您选择的任何内容),然后将新文件复制到上面的目录中。
重启WAMP服务器
现在一切都应该正常。
答案 4 :(得分:1)
我遇到了与php-5.5.26-Win32-VC11-x64(在Windows上)相同的问题,我尝试了这里列出的所有内容,但没有运气。最后,我通过添加PHP installation directory to windows Path来实现它。
答案 5 :(得分:1)
在Windows Server Core 2012 x64上使用PHP 5.6.9 cURL无效,尽管我的php.ini中没有注释php_curl.dll扩展并重新启动Apache 2.4服务,但没有显示在phpinfo中。在我的$ evn:path中添加了php路径和php \ ext路径。没有快乐。
修复:我无需下载任何其他php_curl.dll文件,无论如何都找不到PHP 5.6。最终工作的是将这三个文件复制到Apache24 \ bin文件夹然后重新启动Apache:
的libeay32.dll
libssh2.dll
ssleay32.dll 不需要将它们复制到System或System32。
答案 6 :(得分:0)
如果在从两个php.ini文件(人们已经在谈论并且位于apache文件夹和php文件夹中)取消注释模块之后问题仍然存在,甚至在您检查到您获得了php_curl.dll之后**在
C:\ WAMP \ BIN \ PHP中\ php5.3.13 \分机
您应该尝试使用本网站上的一个替换与WAMPSERVER相关的原始DLL :
http://www.anindya.com/php-5-4-3-and-php-5-3-13-x64-64-bit-for-windows/
我的问题在那里! 希望它有所帮助。