PHP项目上传大文件所需配置


项目中的,我们会有上传图片,上传视频这些场景。当文件过大的时候,就直接报错了。

下面就是常见的问题以及修改方法。


1. nginx报错

Nginx对上传附件的大小做了限定,默认是1M,当上传文件超过这个设置就会报错:


微信图片_20190625171815

解决方法就是将这个限制增大。我们可以修改 nginx,conf,在server里面添加client_max_body_size配置,比如:

我将 client_max_body_size 设置为 50M

微信图片_20190625171938

需要重启nginx


2. PHP报错

单单修改了web服务器nginx的body大小限制还不够,php也有这方面的配置。

默认配置:

upload_max_filesize = 2m ;//允许上传文件大小的最大值
post_max_size = 8m ;//表单POST给PHP的所能接收的最大值

比如超过post_max_size限制时,报错:

微信图片_20190625172141

解决方法,修改 php.ini

upload_max_filesize 用于限制用户上传单文件的大小

post_max_size 用于限制 POST 请求 body 的大小

如果存在同时上传多个附件的情况,就需要设置 post_max_size 为 upload_max_filesize 的 N 倍大。

比如我将这两项都设置都设置为256M,修改实例:

post_max_size = 256M
upload_max_filesize = 256M


补充

列一些php这方面的配置:

//每个PHP页面运行的最大时间值(秒),默认30秒
max_execution_time = 30 ;

//每个PHP页面接收数据所需的最大时间,默认60秒
max_input_time = 60 ;

//每个PHP页面所吃掉的最大内存,默认8M
memory_limit = 8m ;


php nginx


上一篇:nginx反向代理实现websocket负载均衡

linux一些操作命令备忘:下一篇