• 注册
    • 查看作者
    • 解决:Php5.6邮件发送问题

      今天配置邮件的时候发现无法发送验证码到申请注册的邮箱,一开始以为是因为使用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。

      纽约州·纽约
    • 0
    • 0
    • 0
    • 610
    • 请登录之后再进行评论

      登录
    • 做任务