每次开始前更改 cainfo 和 cafile PHP
Change cainfo and cafile before each start PHP
我有一个单独bin的动态程序,我需要在每个运行之前设置路径到curl-ca-bundle.crt
,我尝试使用这个代码
$real_path = Helper::getBinDirectory() . '\curl-ca-bundle.crt';
ini_set('curl.cainfo', $real_path);
ini_set('openssl.cafile', $real_path);
Logger::getLogger()->log( ini_get('curl.cainfo'));
Logger::getLogger()->log(ini_get('openssl.cafile'));
输出的时候,ini_get
给的是原来在php.ini
写的路径,不是我通过ini_set
写的。怎么办?
P.S。如果将 php.ini
中的路径更改为 $real_path
中的路径,一切正常
无法通过脚本配置这些值(curl.cainfo
和 openssl.cafile
)。这些只能在 php.ini 或 httpd.conf 中更改。
这在以下 PHP 文档中有记录:https://www.php.net/manual/en/curl.configuration.php#ini.curl.cainfo
https://www.php.net/manual/en/openssl.configuration.php
"Changable"列对应以下模式:https://www.php.net/manual/en/configuration.changes.modes.php
我有一个单独bin的动态程序,我需要在每个运行之前设置路径到curl-ca-bundle.crt
,我尝试使用这个代码
$real_path = Helper::getBinDirectory() . '\curl-ca-bundle.crt';
ini_set('curl.cainfo', $real_path);
ini_set('openssl.cafile', $real_path);
Logger::getLogger()->log( ini_get('curl.cainfo'));
Logger::getLogger()->log(ini_get('openssl.cafile'));
输出的时候,ini_get
给的是原来在php.ini
写的路径,不是我通过ini_set
写的。怎么办?
P.S。如果将 php.ini
中的路径更改为 $real_path
中的路径,一切正常
无法通过脚本配置这些值(curl.cainfo
和 openssl.cafile
)。这些只能在 php.ini 或 httpd.conf 中更改。
这在以下 PHP 文档中有记录:https://www.php.net/manual/en/curl.configuration.php#ini.curl.cainfo https://www.php.net/manual/en/openssl.configuration.php
"Changable"列对应以下模式:https://www.php.net/manual/en/configuration.changes.modes.php