今天配置邮件的时候发现无法发送验证码到申请注册的邮箱,一开始以为是因为使用google服务器的问题。
后来查了一下文档,发现php版本5.6以后对安全性有了强制要求,需要载入SSL_CERT_FILE文件。
$ php -v
PHP 7.2.17 (cli) (built: Apr 6 2019 06:02:20) ( NTS ) Copyright (c) 1997-2018 The PHP Group Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies with Zend OPcache v7.2.17, Copyright (c) 1999-2018, by Zend Technologies
查看验证cert文件的命令行如下;
$ php -r "print_r(openssl_get_cert_locations());"
Array ( [default_cert_file] => /usr/local/openssl/ssl/cert.pem [default_cert_file_env] => SSL_CERT_FILE [default_cert_dir] => /usr/local/openssl/ssl/certs [default_cert_dir_env] => SSL_CERT_DIR [default_private_dir] => /usr/local/openssl/ssl/private [default_default_cert_area] => /usr/local/openssl/ssl [ini_cafile] => /usr/local/openssl/cert.pem [ini_capath] => )
其中[default_cert_file] 就是默认文件,[default_cert_dir]就是文件的默认目录。下载cert.pem文件 并 移动到目录下面即可。
$ wget http://curl.haxx.se/ca/cacert.pem
下载 并且
$ mv cacert.pem /usr/local/openssl/ssl/cert.pem
如果像我一样,更改过文件验证目录,应该是在[ini_cafile] 和 [ini_capath],操作同上。
Happy coding。
请登录之后再进行评论