admin 管理员组

文章数量: 1086928

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

问题

执行php -r "copy('', 'composer-setup.php');"后报错:

[root@localhost ~]# php -r "copy('', '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 1Warning: 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 1Warning: copy(): Failed to enable crypto in Command line code on line 1
PHP Warning:  copy(): failed to open stream: operation failed in Command line code on line 1Warning: copy(): failed to open stream: operation failed in Command line code on line 1

解决

下载证书:

wget .pem

如果报错:

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

那么就执行:

wget --no-check-certificate .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('', 'composer-setup.php');"就不会报错了。

本文标签: Centos9 PHP Warning copy() SSL operation failed with code 1 OpenSSL Error messages