xsl*_*xsl 5 php apache memory-management file-upload large-files
我最近在我们的一台服务器上安装了一个PHP下载门户.一切正常,但用户无法上传大文件(~20 MB).
我将以下设置设置为极大值或无限制:
memory_limit
upload_max_filesize
post_max_size
memory_limit
Run Code Online (Sandbox Code Playgroud)
全php.ini
在这里:http://pastebin.com/NrqJvMVM
但重启服务器后仍然失败.
我错过了一个设置吗?我是否必须更新Apache配置中的任何值?公司防火墙可能会以某种方式干扰吗?
编辑:我检查了phpinfo(),主配置仍显示旧值.但是,配置文件C:\ Windows\php.ini具有新值.我使用了错误的配置文件.
chr*_*ris 14
您也可以在脚本中测试参数.也许这有助于:
在.htaccess中:
php_value upload_max_filesize 200M
php_value memory_limit 256M
php_value max_execution_time 18000
以下是关于此主题的好文章:http://www.cyberciti.biz/faq/linux-unix-apache-increase-php-upload-limit/ | https://www.dokuwiki.org/faq:uploadsize
是否在您的服务器上安装了Suhosin,或者您使用的是fcgi ;-)?
安装的所有配置设置都包含在php.ini文件中.有时,这些设置可能会被apache .htaccess文件中的指令覆盖,甚至可能会被脚本本身覆盖.
以下我们需要修改的设置 -
配置设置详见下文.
upload_max_filesize和post_max_size
文件通常以称为"multipart/form-data"的格式发布到网络服务器.post_max_size设置脚本以这种方式可以接受的数据量的上限.理想情况下,此值应大于您为upload_max_filesize设置的值.
重要的是要意识到upload_max_filesize是您要上传的所有文件的大小的总和.post_max_size是upload_max_filesize加上表单中所有其他字段的长度加上编码器可能包含的任何mime标头的总和.由于这些字段通常较小,因此您通常可以将上传最大尺寸近似为后最大尺寸.
根据PHP文档,您可以在HTML表单中设置MAX_UPLOAD_LIMIT以建议对浏览器的限制.
memory_limit的
当PHP引擎处理传入的POST时,它需要将一些传入的数据保留在内存中.只有在配置时使用了--enable-memory-limit选项,该指令才有效.设置太高的值可能非常危险,因为如果同时处理多个上载,则所有可用内存都将用完,而消耗大量内存的其他不相关脚本也可能影响整个服务器.
max_execution_time和max_input_time
这些设置定义脚本的最长生命周期以及脚本在接受输入时应花费的时间.如果传输几个兆字节的数据,则max_input_time应该相当高.您可以通过调用脚本中的set_time_limit()函数来覆盖ini文件中max_input_time的设置.
添加评论
Apache设置
apache webserver具有LimitRequestBody配置指令,该指令限制所有POST数据的大小,而不管使用的Web脚本语言如何.某些RPM安装将请求主体限制为512Kb.您需要将其更改为更大的值或完全删除条目.
其他选择
如果您希望在您的网站上处理大量并发文件传输,请考虑使用perl或java服务器端组件.PHP恰好是我们最喜欢的Web编程语言,但perl和Java在文件上传方面略微领先.
也可以看看:
归档时间: |
|
查看次数: |
4603 次 |
最近记录: |