我在 StackOverflow 上发布了同样的问题,但有人告诉我应该在这里提问:https://stackoverflow.com/questions/61894424/php-seems-to-ignore-my-curl-info-of-my-php-ini。
我在 Windows 上使用 WAMP 和多个版本的 PHP。我目前使用的是 PHP 7.3.12。在仔细按照每个步骤将文件安装cacert.pem
到我的 WAMP 文件夹中后,我的 PHP 似乎看不到它。以下是我安装它的步骤:
- 我
cacert.pem
从https://curl.haxx.se/docs/caextract.html - 我将此文件移至我
extras\ssl
的 PHP 文件夹 (C:\dev\wssp\wamp\bin\php\php7.3.12\extras\ssl\cacert.pem
) - 我通过左键单击 WAMP 图标 > PHP > php.ini,将此绝对路径写入
php.ini
WAMP 文件中curl.cainfo
(并删除了字符)。此文件位于此处: 。;
C:\dev\wssp\wamp\bin\apache\apache2.4.41\bin\php.ini
- 然后我重新启动我的 WAMP 服务,它实际上将此文件复制到
php.ini
我当前正在使用的 PHP 版本的文件上:C:\dev\wssp\wamp\bin\php\php7.3.12\phpForApache.ini
。
即使完成这些步骤后,PHP 似乎仍然看不到我的 cacert 文件,因为当我尝试时,dd(ini_get('curl.cainfo'))
得到的结果是:https://i.stack.imgur.com/FOYAW.png(抱歉,没有 10 个回复就无法发布图片)
为了确保万无一失,我查看了phpinfo()
curl 部分:https://i.stack.imgur.com/g3EQU.png(抱歉,没有 10 个回复就无法发布图片)
但是当我php.ini
用这个命令转储我的文件时dd(file_get_contents(php_ini_loaded_file()));
,我可以清楚地看到我的curl.cainfo
路径:https://i.stack.imgur.com/5bR1B.png(抱歉,没有 10 个回复就无法发布图片)
我不确定我做错了什么,但当我从 Laravel 项目使用 GuzzleHTTP 时,我尝试为库提供一个绝对路径,$client = new \GuzzleHttp\Client(['verify' => 'C:\dev\wssp\wamp\bin\php\php7.3.12\extras\ssl\cacert.pem']);
并且成功了。我仍然希望能够将其与php.ini
文件一起用于环境目的。