背景介绍,crmeb的pro版本用了swoole
问题:上传大于2M的,服务器返回413错误(意思就是上传的过大了)
如何解决:
1,想提交给官方,但是不知道猴年马月才能有回复,于是自己动手了
2,只用php+nginx可以上传大于2M的,加上swoole就不行了,初步判定问题出在swoole(得到这个初步判定也不是那么容易,因为用了swoole就得用nginx反向代理,也没法确定问题是不是出在反向代理上,但是感觉大概率不是)
3,问题出在swoole就难办了,这就没啥可看的了,但是依旧感觉不太会,突然想到,和swoole中间还隔着一个think-swoole呢
4,不管crmeb系统,单纯安装tp6+think-swoole,测试没问题
5,查看think-swoole版本,是3.X,看crmeb的版本是4.0.3,所以基本断定是think-swoole的问题,
6,去composer查看think-swoole的版本,最高已经到4.1.X了,于是升级到4.1.X,问题解决
7,但是怕有别的坑,所以对比了下4.0.3和4.1.X的文件,发现确实有个地方是写错了,最新版得到了修复
1)swoole内置设置了默认值,最大上传2M
2)swoole给了配置文件,可以配置大于2M
3)crmeb官方的swoole配置也写了,但是不好用
4)右侧是改后,左侧是默认文件。默认文件少了swoole配置项options的引入
总结:解决问题的步骤看似很顺利,其实中间几度要放弃,因为开始完全没有目的