Discuz X3 图片上传大于2M失败的优化和改进(Nginx)
- 9725
- Linux
- 5
- super_dodo
- 2014/09/09
目前比较流行的论坛的就属Discuz了,在论坛里面常规的图片都会小于2M,但是对于高清大图或者动态的GIF,大于2M的比比皆是.
我的论坛就遇到了需要上传失败的提示.错误信息包括,图片超过最大的大小,IO错误,上传到一定进度又自动循环重传等.
解决的步骤主要有:
1.检查并修改PHP的配置文件php.ini 把
file_uploads = On; //此项默认打开,无需修改. upload_max_filesize = 10M; //上传的最大文件为2M,修改成所需要的数值,如10M. max_file_uploads = 20; //单次请求最大文件上传个数. post_max_size = 10M; //数据包最大的限制,设定POST数据所允许的最大大小,如修改为10M. max_execution_time = 300; //PHP页面执行时间,上传大附件时30秒可能不够,需改成所需要的值,设为0表示无限制. max_input_time = 600; //PHP脚本解析请求数据所用的时间,上传大附件时,需改成所需要的值. memory_limit = 256M; //PHP脚本所能申请到的最大内存数,这个数值一般情况下设定为内存的四分之一即可. //重启PHP进程(Nginx) 重启nginx或者apache,Discuz后台更新缓存. //修改完第一步之后常规的上传已经能满足大多数的服务要求了.若还上传失败请继续第二步操作.
2.登录Discuz的后台,更改用户组的权限,选择系统管理员组下面的用户组,更改论坛最大附件尺寸.后台管理首页也可以看到服务器的上传许可10M(php的配置).具体的设置如下图:

Discuz图片上传
3.若还是未果,出现上传大概30s左右又图片的上传进度有回复为1,又继续循环的上传,始终未成功的时候.查询许多资料未果,最终发现.原因是我所使用的nginx服务的限制.
编辑 nginx.conf文件,在http内加上
client_max_body_size 128m; //128m表示上传文件大小. client_body_temp_path /var/www/temp; //上传的临时目录.
发个上传成功后的2.8M的动态GIF的中秋技术宅男福利贴给大家(有尺度的萌妹纸,少儿不宜).点击送福利,物超所值,走过路过千万别错过
泛爱众,而亲仁。有余力,则学文。
相关阅读
- 通过Google API客户端访问Google Play帐户报告PHP库
- PHP执行文件的压缩和解压缩方法
- 消息中间件MQ与RabbitMQ面试题
- 如何搭建一个拖垮公司的技术架构?
- Yii2中ElasticSearch的使用示例
热门文章
- 通过Google API客户端访问Google Play帐户报告PHP库
- PHP执行文件的压缩和解压缩方法
- 消息中间件MQ与RabbitMQ面试题
- 如何搭建一个拖垮公司的技术架构?
- Yii2中ElasticSearch的使用示例
最新文章
- 通过Google API客户端访问Google Play帐户报告PHP库
- PHP执行文件的压缩和解压缩方法
- 消息中间件MQ与RabbitMQ面试题
- 如何搭建一个拖垮公司的技术架构?
- Yii2中ElasticSearch的使用示例