如何修复在 Mac 上使用 Laravel Valet 与 Php7.2 或更高版本时无法连接到 Pusher
——————————————————————————————————————————————— ---
注意:我决定写这篇文章是因为我认为其他人不应该花 5 个小时来解决这个问题,我已经这样做了。
Server : Valet;
OS: Mac Mojave;
PHP Version: 7.2;
就我而言,将 forceTLS 设为 false 有效,但我不喜欢该解决方案。还添加:
'curl_options' => [
CURLOPT_SSL_VERIFYHOST => 0,
CURLOPT_SSL_VERIFYPEER => 0,
]
我的 Broadcasting.php 文件有效,但由于某种原因我也不相信这个解决方案。
所以我决定通过下载 CA 捆绑包来使事情顺利进行https://curl.haxx.se/ca/cacert.pem https://curl.haxx.se/ca/cacert.pem并将 cacert.pem 从下载文件夹移至 /usr/local/etc/[电子邮件受保护] /cdn-cgi/l/email-protection/certs (在我的例子中,我使用自制程序安装了 openssl1.1,只是因为我尝试了网上找到的各种东西,只是为了使这项工作正常进行,但现在我知道我不需要 openssl1.1,你可以使用已有的 openssl 文件夹)因此 cacert 文件的完整路径变为 /usr/local/etc/[电子邮件受保护] /cdn-cgi/l/email-protection/certs/cacert.pem
打开 php.ini
—————————
从您的终端输入 php --ini 以查找加载的 php.ini 的路径(在您选择的编辑器中打开该路径;我有时使用 nano)重要提示:从 PHP 7.2 (Win 64) 开始,此指令将不会显示在phpinfo() 即使它已设置。 (相比之下,如果设置为完全相同的路径,则会显示 openssl.cafile 指令)。
因此,现在在 php.ini 中将以下内容设置为:(注意:替换路径以指示可以在系统上找到这些文件的位置) openssl.cafile = “/usr/local/etc/[电子邮件受保护] /cdn-cgi/l/email-protection/certs/cacert.pem'openssl.capath =“/usr/local/etc/[电子邮件受保护] /cdn-cgi/l/email-protection/certs”请注意:因为我使用的是 php7.2,所以我不必将curl.cainfo 设置为任何内容;最初我花了很多时间尝试使用curl.info方法,但这对我不起作用,所以在我的最终配置中,我通过在其前面放置一个分号来对其进行评论(;curl.cainfo =“/usr/local/etc” /[电子邮件受保护] /cdn-cgi/l/email-protection/certs/cacert.pem”)
之后,您应该运行 valet restart ,这将重新启动一些代客服务,但我意识到即使在代客重新启动后,当我执行 phpinfo(); 时,我的新 php.ini 更改也没有反映出来。
最后你应该通过输入brew services restart php72来重新启动php(注意:我通过homebrew安装了php,所以如果你没有,你将不得不以不同的方式重新启动php)
希望这可以帮助 。即使它不能完全解决您的问题,它也肯定会给您一些尝试的想法,就像我从一页到另一页利用其他人的微小想法来提出我的解决方案一样。