今天在安装 php 扩展时候, 遇到 Connection to `ssl://pecl.php.net:443′ failed: 提示;
简单查找了一些资料, 具体解决办法如下:
首先我们需要找到 php ssl 位置; 在控制台执行以下代码
1 |
php -r "print_r(openssl_get_cert_locations());" |
就可以打印出:
1 2 3 4 5 6 7 8 9 10 11 |
Array ( [default_cert_file] => /private/etc/ssl/cert.pem [default_cert_file_env] => SSL_CERT_FILE [default_cert_dir] => /private/etc/ssl/certs [default_cert_dir_env] => SSL_CERT_DIR [default_private_dir] => /private/etc/ssl/private [default_default_cert_area] => /private/etc/ssl [ini_cafile] => [ini_capath] => ) |
我们可以看到 php 去了 /private/etc/ssl/certs 目录寻找证书文件, 但是这个目录其实是空的~
我们需要下载证书后放在这个目录里:
接下来cd到这个目录, 然后 curl http://curl.haxx.se/ca/cacert.pem 下载证书文件;
如果遇到 cacert.pem: Permission denied
目录没有权限写入, 执行之前加上sudo 就可以了~
ps:
如果遇到:
Error getting channel info from pear.php.net: The value of config option cache_dir (/var/folders/4f/l00zgwvs4c95dxzb3pd0hn3m0000gn/T//pear/cache) is not a directory and attempts to create the directory failed.
则可以 ./pear config-set cache_dir /目录
如果遇到:
download directory “/var/folders/4f/l00zgwvs4c95dxzb3pd0hn3m0000gn/T//pear/download” is not writeable. Change download_dir config variable to a writeable dir
Error: cannot download “pecl/v8js”
则可以 ./pear config-setdownload_dir /目录
自定义一个缓存目录即可, 其他以此类推