代理环境下的 PECL:配置 CLI PHP 的 CA 证书包
先设置 PEAR 下载器的路由,再检查证书失败背后的 CLI PHP 配置,而不是去修改 Web 服务器的 php.ini。
如果 PECL 安装使用 PEAR 的共享下载器配置,先设置它的代理:使用你自己的 HTTP 端点,或从HTTP 代理列表中挑选一个候选,用于获准的公共软件包下载:
pear config-set http_proxy http://proxy.example:8080如果接下来的失败是证书校验,请追踪真正启动 PECL 的那个 PHP 二进制文件。问它加载了哪些文件:
php --ini如果它与 shell 的 php 不同,就使用它明确的执行文件路径。网站的 PHP 进程可能读取的是另一个 php.ini。
在 CLI 适用的 OpenSSL 流配置中,指定已批准的证书包:
openssl.cafile=/path/to/approved-ca-bundle.pem保持对端与主机名校验开启。证书包必须信任经过校验的对端,当组织的检查安排有要求时,也包括该组织批准的 CA。
从执行文件到被加载文件的链条决定了这次修改能否作用到这个下载器。在另一个 PHP 安装中配置的有效 CA 文件,会让 PECL 的失败保持不变。