逍遥乐的缩略图需要将文章图片根据url读取并生成缩略图存储。由于之前逍遥乐,将网站升级到了https,导致新文章无法获取图片,以致于一直是缩略图。逍遥乐由于工作繁忙,很少关注博客了,以致于居然一直没发现,这两天发布文章时才发现的。。
知道问题就去解决吧,最终追查到是图片没有读取成功。什么原因呢.
try ... $fp = fopen($img, "r"); ... } catch ( Exception $e ) { // send error message if you can }
生成日志发现错误
fopen(): SSL operation failed with code 1. OpenSSL Error messages: error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed
意思是证书验证失败。
有两种方式:
1、关闭验证(不推荐)
此时我们可以设置fopen/readfile的最后一个$context参数将ssl认证关闭就可以解决了,关闭方法如下:
$context = stream_context_create( [ 'ssl' => [ 'verify_peer' => false, ] ]); fopen($url, 'rb', null, $context) readfile($url, null, $context);
至此,就可以成功访问https类型URL的内容了哦
2、配置SSL证书(推荐)
既然报错是缺少证书那么增加证书配置即可。
1、下载cert证书到本地,放到nginx或者php文件夹
如:D:/nginx/cacert.pem 或者类似/usr/local/php,
下载地址:
https://curl.haxx.se/ca/cacert.pem
2、修改php.ini openssl.cafile= 改为 openssl.cafile=/usr/local/php/cacert.pem
3、重启nginx或者Apache后,重新执行即可~
至此,问题解决!
最新评论