[英]PHP cURL error code 60
Whilst trying to setup a php environment on windows (using wamp) to use the Amazon PHP SDK, when i try to run a sample test I get the following error:
Fatal error: Uncaught exception 'cURL_Exception' with message 'cURL resource: Resource id #10; cURL error: SSL certificate problem: unable to get local issuer certificate (cURL error code 60). See http://curl.haxx.se/libcurl/c/libcurl-errors.html for an explanation of error codes.' in C:\wamp\www\AWSSDKforPHP\lib\requestcore\requestcore.class.php on line 848
我已经在我的 php.ini 中添加了以下行
curl.cainfo = C:\Windows\ca-bundle.crt
这是我使用此 VBS 脚本VBS-Script创建的证书的位置
我也重新启动了我的 WAMP 服务。
使用此证书根证书包:
https://curl.haxx.se/ca/cacert.pem
将此证书包复制到磁盘上。 并在php.ini
上使用它
curl.cainfo = "path_to_cert\cacert.pem"
我通过在C:\\wamp\\bin\\apache\\apache2.4.9\\bin\\
修改php.ini
文件来修复此问题
curl.cainfo = "C:/wamp/bin/php/php5.5.12/cacert.pem"
首先,我试图修改C:\\wamp\\bin\\php\\php5.5.12\\
php.ini
文件,但它无法正常工作。
希望这可以帮助正在搜索正确的php.ini
进行修改
@Overflowh我也试过上面的答案,但没有运气。 我将php版本从5.3.24更改为5.5.8,因为此设置仅适用于php 5.3.7及更高版本。 然后我发现这个http://flwebsites.biz/posts/how-fix-curl-error-60-ssl-issue我从那里下载了cacert.pem并替换了我从curl.hxxx.se下载/制作的那个以上链接,一切都开始工作。 我试图让paypal沙盒IPN验证。 很高兴在.pem交换之后说完所有可以使用php.ini中的curl.cainfo设置,但仍然不在5.3.24中。
php --ini
这将告诉您正在加载哪个php.ini文件,因此您知道要修改哪个。 我浪费了很多时间来更改错误的php.ini文件,因为我安装了WAMP和XAMPP。
此外,不要忘记在更改php.ini后重新启动WAMP服务器(或任何您使用的)。
解决该问题的最简单方法是在字段中添加以下命令。
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,false);
使用它不需要添加任何证书或任何东西。
首先,我们需要下载此证书根证书包:
https://curl.haxx.se/ca/cacert.pem
将此文件移动到某个位置,例如Wamp / Xampp文件夹中的PHP文件夹。
然后编辑你的“php.ini”:
curl.cainfo =“C:/path/to/your/cacert.pem”
和
openssl.cafile = “C:/path/to/your/cacert.pem”
重要:
确保您的Window Explorer直接打开“php.ini”文件。 (在我的情况下:“C:\\ DevPrograms \\ wamp64 \\ bin \\ php \\ php5.6.25 \\ php.ini”)。
不要在系统托盘的Wamp / Xampp图标菜单中使用“php.ini”的快捷方式。 在我遇到的某些情况下,这条捷径不起作用。
保存“php.ini”后,您不需要在Wamp图标中“重新启动所有服务”或关闭/重新打开CMD。
尝试使用“var_dump(openssl_get_cert_locations());”并查看行:[“ini_cafile”] => string(40)“C:/path/to/your/cacert.pem”
完成。
问题已修复,请下载https://curl.haxx.se/ca/cacert.pem并将其置于“某处”,并在php.ini
添加以下行:
curl.cainfo = "C:/somewhere/cacert.pem"
PS:我尝试使用xampp在drupal上安装模块时出现此错误。
将以下内容添加到php.ini [在路径中使用'/'而不是'\\'] curl.cainfo =“path / cacert.pem”
重启了我的XAMPP。 它对我来说很好。 谢谢
如果cacert.pem从上面的链接不起作用尝试这个为我工作
首先,您必须从此链接下载证书
https://curl.haxx.se/ca/cacert.pem
并把它放在你想要的可下载文件名称的位置:cacert.pem所以在我的情况下我会把它放在C:\\ wamp64 \\ bin \\ php \\ cacert.pem下
然后你必须指定php.ini文件的位置
例如,我使用php 7 php.ini文件位于:C:\\ wamp64 \\ bin \\ php \\ php7.0.10 \\ php.ini
因此,访问该文件并取消提交此行; openssl.cafile
也更新它看起来像这样openssl.cafile =“C:\\ wamp64 \\ bin \\ php \\ cacert.pem”
最后重启你的apache服务器就是这样
只要你知道我什么工作,在该文件https://curl.haxx.se/ca/cacert ....没有然而工作,一个在后,在(Zip文件夹的http:// flwebsites .biz / posts / how-fix-curl-error-60-ssl-issue )对我没有任何问题。
正如其他人所说,将证书文件复制到硬盘驱动器上的某个位置,更新该行
;curl.cainfo
在你的php.ini文件中阅读
curl.cainfo= "path_to_cert\cacert.pem"
重启Apache服务器。
解决方案是编辑php版本中的php.ini文件(对我而言是php7.0.10)而不是apache的php.ini。 你会发现这样的评论文件; curl.cainfo只需像这样改变这一行curl.cainfo =“C:\\ permCertificate \\ cacert.pem”
不要忘记创建“permCertificate”目录并复制其中的“cacert.pem”文件。
重要提示 :4小时后,使用laravel 5.7和php 7. +并运行/使用php artison在localhost上尝试连接到mailgun。
重要的是要解决该问题不与知识产权工作http://127.0.0.1:8000由主机文件使用localhost或设置域名
好 ,
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.