Php 大型文件上传时Apache错误500(mod_安全)

Php 大型文件上传时Apache错误500(mod_安全),php,apache,.htaccess,centos7,mod-security,Php,Apache,.htaccess,Centos7,Mod Security,就我所尝试的而言,没有一种常见的解决方案适合我。好吧,我的问题是,我每次上传一个“大文件”(600KB~)时都会收到500个错误,图像越小效果越好。所以…,即使使用这个(极端的).htaccess文件,它也会继续发生,是的,.htaccess是活动的: upload_max_filesize = 100M post_max_size = 100M memory_limit = 128M max_input_time = 6000 max_execution_time = 6000 所以,我看了

就我所尝试的而言,没有一种常见的解决方案适合我。好吧,我的问题是,我每次上传一个“大文件”(600KB~)时都会收到500个错误,图像越小效果越好。所以…,即使使用这个(极端的).htaccess文件,它也会继续发生,是的,.htaccess是活动的:

upload_max_filesize = 100M
post_max_size = 100M
memory_limit = 128M
max_input_time = 6000
max_execution_time = 6000
所以,我看了一下日志,发现这是一行(只有一行,只是用换行符粘贴了它,以便阅读):

[Mon Jul 27 17:09:28.2015][:error][pid 21423][client]
ModSecurity:访问被拒绝,代码为44(第2阶段)。
需要将“等式0”与“多部分\u不匹配\u边界”匹配。
[文件“/etc/httpd/conf.d/mod_security.conf”]
[第35行][id”“]
[msg“多部分分析器检测到可能不匹配的边界。”]

[hostname”“][uri”“][unique_id”尝试检查fcgi配置中的FcgidBusyTimeout参数

事实上,您有一个
ModSecurity警报
意味着您不能激活空的_rules文件夹,或者您正在以其他方式包含规则

有,而且似乎很容易出现误报

当我的规则引发了太多的误报时,主要的建议是关闭该规则(我假设触发的是规则200003,但根据需要替换id):


重命名您试图上载的文件。此错误表示文件名包含mod_security不允许的字符。重命名文件,然后再次尝试上载。通过禁用mod_security.conf中提到的行,它将跳过此检查,但这会使您的服务器面临漏洞。

我找到了解决办法

UBUNTU 16.04+Apache(我的mod_安全工作和上传正常)

0.apachea2enmod头文件(激活头文件和.htaccess)

1.检查.htaccess!!!!!

//in.htaccess

<IfModule mod_security.c>
SecFilterEngine Off
SecFilterScanPOST Off
</IfModule>
php\u值上传\u最大文件大小50M

php\u最大值后50米

//如果您想在.htaccess中自定义

<IfModule mod_security.c>
SecFilterEngine Off
SecFilterScanPOST Off
</IfModule>

  • 如果需要,可以删除特定规则:
  • modsecurity.conf中的SecRuleRemoveById 950004

    4.字节转换器-

    这太好了

    4小时!!

    我也犯了同样的错误:

    ModSecurity: Access denied with code 44 (phase 2). Match of "eq 0" against "MULTIPART_UNMATCHED_BOUNDARY" required. [file "/etc/httpd/conf.d/mod_security.conf"] [line "34"] [id "200003"] [msg "Multipart parser detected a possible unmatched boundary."] 
    
    但@nilpo的回答是正确的 我得到了这个问题,由于图像的名称和改变后的名称问题解决


    但这不是我想要的,因为我知道解决方案,但我的客户不知道他们必须更改名称。

    3600,但页面在近700毫秒内返回错误500。添加了两个规则(我应用了2 MB),但它一直返回500。是否重新启动Apache以获取这些更改?是否触发了规则id 960915?是否在定义规则970915的配置之后而不是之前将删除代码添加到配置中?是的,我每次都重新启动Apache。不知道规则960915“存储在何处”"我只是在末尾粘贴了这一行。好的,但是粘贴时您删除了ID,因此不确定它是否为960915。您需要查看Apache配置,看看规则是如何加载的,以及何时加载的。我不确定这是OPs上载问题的一个可接受的答案。是否应该更新为
    SecRequestBodyLimit
    上载问题?默认值为12.5MB。此答案不适用于此错误消息。文件名没有问题。
    bash->a2dismod mod-security2 //off
    
    bash->a2dismod security2 //off
    
    
    bash->a2enmod mod-security2 //on
    bash->a2enmod security2 //on
    
    ModSecurity: Access denied with code 44 (phase 2). Match of "eq 0" against "MULTIPART_UNMATCHED_BOUNDARY" required. [file "/etc/httpd/conf.d/mod_security.conf"] [line "34"] [id "200003"] [msg "Multipart parser detected a possible unmatched boundary."]