最近在ESC上部署了测试环境(Nginx、PHP5.6.15),测试程序为wecenter。
通过cloudfs将OSS挂载到上传路径了,上传文件(.zip)正常,OSS通信也正常。
现在的问题是,已经将nginx.conf中的client_max_body_size设置为1024M,php.ini中的upload_max_filesize设置为1024M,input限制设置为1024M,memory_limit设置为256M
现在可以上传100M以内的文件,超过100M的无法上传,本人想达到500M的标准。不知各位云友有没有良策,
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
遇到上传大文件的问题,您已经调整了Nginx和PHP的相关配置,这是正确的步骤。但是,除了这些设置之外,还有其他几个方面可能会影响到文件上传的大小限制,请检查以下几点:
系统级别限制:Linux系统中有一个内核参数fs.file-max
和net.core.rmem_max
等,也可能限制了文件上传的大小。可以通过sysctl -a | grep max
查看当前设置,并通过编辑/etc/sysctl.conf
来调整这些值,然后使用sysctl -p
命令使更改生效。
PHP执行时间限制:请检查php.ini
中的max_execution_time
和max_input_time
设置,确保它们足够长以处理大文件的上传。大文件上传可能会花费更多的时间,如果超时也会导致上传失败。
POST数据大小限制:在php.ini
中还有一个post_max_size
设置,它限制了整个POST数据的大小,包括文件和其他表单字段。请确保这个值大于或等于您的upload_max_filesize
设置。
Nginx客户端请求体缓冲区大小:Nginx还有一个client_body_buffer_size
设置,它定义了Nginx为请求体分配的缓冲区大小。如果上传的文件大于这个值,Nginx会将文件写入磁盘上的临时文件。虽然这不一定直接限制文件大小,但过小的缓冲区可能导致性能问题。可以适当增大这个值,或者根据实际情况调整。
Open File Descriptor Limit:确保系统的打开文件描述符数量足够,因为大文件上传过程中可能会消耗较多的文件描述符。可以通过ulimit -n
查看当前限制,并在需要时进行调整。
云存储端限制:确认阿里云OSS是否有针对单个文件上传大小的限制。虽然通常OSS支持非常大的文件上传,但最好还是检查一下是否有特定的Bucket策略或安全设置影响了上传。
网络稳定性:大文件上传对网络稳定性要求较高,确保上传过程中的网络连接稳定,避免因网络中断导致的上传失败。
逐一检查并调整上述设置后,应该能够解决您遇到的上传限制问题。如果问题依旧存在,建议进一步查看错误日志(如Nginx的access.log和error.log,以及PHP的错误日志),以便获取更具体的错误信息,从而定位问题所在。