PHP增加上传文件大小限制
时间:2020-01-09 10:42:02 来源:igfitidea点击:
在Apache 2 UNIX/Linux Web服务器下,如何将上传文件的限制从2MB增加到10MB?
您的php安装限制了上传文件的大小。
默认值将限制您最大2 MB的上传文件大小。
您需要设置以下两个配置选项:
upload_max_filesize
上传文件的最大大小。memory_limit
设置允许脚本分配的最大内存量(以字节为单位)。这有助于防止编写不良的脚本占用服务器上的所有可用内存。请注意,没有内存限制,请将此伪指令设置为-1。post_max_size
设置允许的帖子数据的最大大小。此设置也会影响文件上传。要上传大文件,此值必须大于upload_max_filesize。如果您的配置脚本启用了内存限制,则memory_limit也将影响文件上传。一般而言,memory_limit应该大于post_max_size。
有两种方法可以解决此问题。
方法1:编辑php.ini
编辑您的php.ini文件(通常存储在/etc/php.ini或者/etc/php.d/cgi/php.ini或者/usr/local/etc/php.ini中):
# vi /etc/php.ini
输出示例:
memory_limit = 32M upload_max_filesize = 10M post_max_size = 20M
保存并关闭文件。
重新启动apache或者lighttpd Web服务器:
# service httpd restart
或者
# service lighttpd restart
方法2:编辑.htaccess
在您的根目录中编辑.htaccess文件。
当您无权访问php.ini文件时,此功能很有用。
在此示例中,/home/httpd/html被视为根目录(您还可以在本地创建.htaccess文件,然后使用ftp/sftp/scp客户端上传该文件):
# vi /home/httpd/html/.htaccess
追加/修改设置如下:
php_value upload_max_filesize 10M php_value post_max_size 20M php_value memory_limit 32M
保存并关闭文件。
关于Suhosin的注释(可选)
默认情况下,这不是在许多服务器上安装的(最新版本的Debian,Ubuntu和FreeBSD会默认安装Suhosin)。
使用phpinfo()来确定是否启用了suhosin(创建test.php):
<?php phpinfo(); ?>
如果您使用的Suhosin旨在保护您的服务器免受PHP应用程序中的许多众所周知的问题的影响,另一方面,还可以防止这些应用程序或者PHP核心本身中潜在的未知漏洞。
您需要编辑/etc/php.d/suhosin.ini以设置正确的内存和上传限制。
只要脚本不在safe_mode中运行,它们就可以随意将memory_limit更改为所需的任何值。
suhosin.memory_limit=32M