为了一时之快,将存储商品描述的字段由 text 变更成了 longtext。
结果,由于升级 summernote 版本,导致图片上传 cdn 的回调函数失效,新上传图片都被转换成了 base64 存储与描述字段中。每个商品至少有 10 张这种图片,一张图片大概1兆左右。原本如果使用 text 是可以规避这个问题的,因为 text 存储的内容大概为 65k,而 longtext 存储上限大概为 4G,所以默认的 php 内存上限被轻松超过。
2017/10/28 18:12:09 [error] 26887#26887: *839609 FastCGI sent in stderr: "PHP message: PHP Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 18035640 bytes) in vendor/monolog/monolog/src/Monolog/Formatter/LineFormatter.php on line 171" while reading response header from upstream, client: 111.35.61.75, server: xxx, request: "POST /admin/product/33 HTTP/1.1", upstream: "fastcgi://unix:/run/php/php7.0-fpm.sock:",
临时的解决方案
- 兼容了 summernote 0.8.8 版本的图片上传 cdn 逻辑
- 手动修改了几个商品中的 base64 图片为 cdn 链接
感觉还是应该加上字数限制,即使使用了 longtext。
微信关注我哦 👍
我是来自山东烟台的一名开发者,有感兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊, 查看更多联系方式