bosnadev

№ 5 · 2014-12-12 · 1 min · server

Apache2 mod_fcgid: HTTP request length exceeds MaxRequestLen

Large uploads to Pydio failed with "HTTP request length exceeds MaxRequestLen". Raising the PHP upload limits and FcgidMaxRequestLen in Apache fixed it.

written before the past year · entry 5 of 31 · 10 in the past year

This article is out of date
Written in 2014. Versions, APIs and advice may have changed since.

Few days ago I found a very good Open Source project for sharing and synchronization (Dropbox alternative) called Pydio. Heard before for this project, but I have never tried to install it before. I tried the demo and decided to install Pydio on my own server and check this little bit more. Installation procedure went smoothly and in 5 minutes I had my sharing web site ready to use.

But, when I tried to upload multiple files, all of them larger than 3Mb, browser simply returned:

Error 500, Internal server error

Then I checked Apache2 log, and here is what I found:

[Thu Dec 11 14:45:58 2014] [warn] [client xxx.xxx.xxx.xxx] mod_fcgid: HTTP request length 15735832 (so far) exceeds MaxRequestLen (15728640), referer: https://mynicesite.dev

It seams that MaxRequestLen directive of mod_fccgid is too low. To fix this, you need to update few options in your php.ini file. Search for upload_max_filesize which puts limit on any single file, default value should be set to this:

php.iniini · 1 line
upload_max_filesize = 2M

change this value to whatever you want, but I strongly suggest you to set >50M. Then search for post_max_size, default value is:

php.iniini · 1 line
post_max_size = 8Mb

this is the size of the entire body of the request, which could include multiple files. Set this value at lest 2-3x as upload_max_filesize.

Now, to avoid “ HTTP request length exceeds MaxRequestLen” you need to update FcgidMaxRequestLen directive. Default value is set to:

FcgidMaxRequestLen 131072

which is, as you can guess, very very small. To change this, update your virtual host configuration file and add FcgidMaxRequestLen directive value based on your application requirement, for example:

FcgidMaxRequestLen 200000000

that is equal to roughly 200 MB.Finally restart Apache:

terminal1 line
/etc/init.d/apache2 restart

 

[GARD]

Related

Virtual hosts overlap on 443, the first has precedenceserverHow To Redirect www To non-www And Vice Versa with NginxserverSSH Authentication With Keys Instead Passwordsserver