日期:2014-05-17  浏览次数:20857 次

增加apache上传文件大小限制(突破Aapache默认2M上传限制)

如何让自己的PHP网站可以大于2MB的文件呢?其实即使你将web程序的附件最大限制设置大了也是不行的,还需要对php进行配置才能解决。因为真正的原因是PHP限制了你最大只能上传2MB的文件。主要通过修改一下参数来解决。
upload_max_filesize – 没错就是这个,最大上传文件大小限制。你会发现此处默认为2M。
memory_limit – 单个脚本可用最大内存,此设置可以防止设计有缺陷的PHP脚本占用所有的系统内存,如果不想限制单个脚本最大使用内存可以设置该值为-1(建议不要设置为-1)。
post_max_size – 设置递交数据最大大小。该设置也会影响到最大上传文件大小的配置,该值设置必须大于upload_max_filesize设置的值。通常情况下,memory_limit设置的值要比post_max_size的值大。
系统默认设置如下,所以只能上传2MB的附件了:

upload_max_filesize = 2M
memory_limit = 128M
post_max_size = 8M

以下下两种方法设置之后即可上传10MB的附件。
方法一:编辑php.ini。
编辑你的php.ini配置文件。(他可能在 /etc/php.ini 或者 /etc/php.d/cgi/php.ini 或者 /usr/local/etc/php.ini)

vim /etc/php.ini

更改为如下配置(当然,此处只是一个例子,有可能你的memory_limit实际需求是64MB)。

upload_max_filesize = 10M
memory_limit = 32M
post_max_size = 20M

保存之后重启Apache服务。

service httpd restart

方法二:编辑.htaccess文件。
如果无法获取更改php.ini的权限(例如虚拟主机),可以通过创建或者编辑.htaccess来实现。在.htaccess中添加

php_value upload_max_filesize 10M
php_value post_max_size 20M
php_value memory_limit 32M

上传到网站服务器的根目录即可。