对于单个客户的视频上传,程序流程应该是没有问题的,分析主要是客户服务器配置的问题:
1.php上传限制
打开php.ini配置文件,几个上传相关的配置项,常用的就是这几个。
file_uploads = on // 开启文件上传
upload_max_filesize = 200M // 上传文件的最大尺寸(多文件上传,应该是总和)
max_file_uploads = 20 // 一个请求上传的最大文件数
post_max_size = 200M // 表单最大尺寸
max_input_time // 脚本解析输入数据(类似POST和GET)允许的最大事件,单位是秒。从接收数据到开始执行脚本进行测量的
max_execution_time // 脚本最大执行时间,设置为0,表示不限时间
memory_limit // 最大内存限制
2.服务器上传限制
发现用户采用的 WDCP 主机管理面板,也没用过,瞎点了点。客户采用的是nginx+apache,由于好久没搞过服务器了,忘得差不多了,也不知道这2个怎么配合的,反正就是在网上搜2者的最大上传限制和最大时间限制,都得改
linux:
client_max_body_size // 最大上传限制
apache:
setOutputFilter PHP
setInputFilter PHP
limitRequestBody 60000000 // 这个是限制大小的
3.在网上查找资料的时候,发现了后端如果是java,架构采用apache+tomcat时,出现这种问题的解决方案:
在配置apache跟tomcat负载均衡的workers.properties配置文件上加上
worker.web1.max_packet_size=65536
worker.web2.max_packet_size=65536
http://builddeploy.blogspot.com/2009/04/resolving-http-error-413-request-entity.html
4.上面配置后,上传是可以了。但是由于我们是对接微信公众平台的,还得将视频上传到微信服务器。
采用的是 CURL ,这个有个timeout配置,发现这里又报错,也得调整这里的时间限制!
5.最后一步,微信返回来的数据,还得插入到数据库中,我们采用的是mysql数据库,发现报
"mysql server has gone away",网上找,又是 mysql的最大链接时间限制!
wait_timeout // 链接超时限制