1) You may lower the limit, not raise it. If you are trying to raise
it, you will get "Conflicting information".
2) Your server config trumps your virtual-host config. If you have not
set APREQ2_ReadLimit outside of your VirtualHost, then it is set for you
(64M).
Personally, I do this:
A) Set APREQ2_ReadLimit in /etc/httpd/conf.d/apreq.conf to the largest
value I would allow for any virtual host.
B) Set APREQ2_ReadLimit to the largest upload value appropriate for the
client inside their VirtualHost container.
C) Set $req->read_limit inside a PerlResponseHandler depending on the
logical type of request:
# The Apache request library only allows lowering the read limit
(POST_MAX).
# The default is 64M (64 * 1024 * 1024) so if larger uploads are
desired, one
# must raise the limit by setting APREQ2_ReadLimit in the Apache
configuration.
# When using VirtualHosts, the larger limit *must* be specified in
server
# configuration, and then optionally reduced in the vhost config.
# http://marc.info/?l=apreq-dev&m=115829354028472&w=2
my $limit = $req->read_limit();
my $max = $rr->max_post_size; # the max post size allowed for the
current request
if ($max > $limit) {
$Log->warn(sprintf('Cannot raise read_limit from %d to %d', $limit,
$max));
} else {
$req->read_limit($max) or die $!;
$limit = $req->read_limit();
$Log->error('Error setting read_limit') unless $limit == $max;
}
On 01/25/2011 01:23 PM, Hibbard, Timothy wrote:
I am having all sorts of troubles uploading files bigger then 64M
using mod_perl2.
Any file I try to upload that is bigger then 63M I get the following
error.
(20014)Internal error: Content-Length header (723283299) exceeds
configured max_body limit (67108864)
So I told myself lets do a little research .... It is Perl so this
should be easy to fix. After a little of researching I found the
APREQ2_ReadLimit parameter for the httpd.conf. So I added this to my
httpd.conf.
APREQ2_ReadLimit 1024M (1 Gig)
Restarted Apache and tried again .... Still no luck with same error
message. Back to researching.
I found 2 more things which I thought would solve my problem. I found
POST_MAX:
my $req = Apache2::Request->new($r,POST_MAX =>100 * 1024 * 1024);
And also
$req->read_limit(100 * 1024 * 1024);
So I tried playing with these settings and all I get now is
"Conflicting information" in my log files. As soon as I set POST_MAX
or read_limit to anything below 67108864 it works fine for all files
less then 64M in size. How can I get mod_perl2 to upload a 700mb
file. If you need sample code of what I am doing I am more then happy
to provide it.
Thanks in advance,
Tim Hibbard
Senior Program Engineer
Ohio University
Athens, Ohio 457-1