Centos9 PHP Warning: copy(): SSL operation failed with code 1. OpenSSL Error messages:

问题

执行php -r "copy('http://install.phpcomposer.com/installer', 'composer-setup.php');"后报错:

[root@localhost ~]# php -r "copy('http://install.phpcomposer.com/installer', 'composer-setup.php');"
PHP Warning:  copy(): SSL operation failed with code 1. OpenSSL Error messages:
error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed in Command line code on line 1

Warning: copy(): SSL operation failed with code 1. OpenSSL Error messages:
error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed in Command line code on line 1
PHP Warning:  copy(): Failed to enable crypto in Command line code on line 1

Warning: copy(): Failed to enable crypto in Command line code on line 1
PHP Warning:  copy(http://install.phpcomposer.com/installer): failed to open stream: operation failed in Command line code on line 1

Warning: copy(http://install.phpcomposer.com/installer): failed to open stream: operation failed in Command line code on line 1

解决

下载证书:

wget http://curl.haxx.se/ca/cacert.pem

如果报错:

错误: 无法验证 curl.se 的由 “/C=US/O=Let's Encrypt/CN=R3” 颁发的证书:
  颁发的证书已经过期。
要以不安全的方式连接至 curl.se,使用“--no-check-certificate”。

那么就执行:

wget --no-check-certificate http://curl.haxx.se/ca/cacert.pem

接着移动证书到certs目录:

mv cacert.pem /usr/local/openssl/certs

编辑php.ini配置文件(注意需要换成你的php配置文件路径。):

vim /www/server/php/56/etc/php.ini

在文件中搜索openssl.cafile=并定位到这一行,并修改为:

openssl.cafile=/usr/local/openssl/certscacert.pem

最后再执行php -r "copy('http://install.phpcomposer.com/installer', 'composer-setup.php');"就不会报错了。

猜你喜欢

转载自blog.csdn.net/qq_34626094/article/details/126411369
今日推荐