Thursday, November 1, 2007

Large file support for Apache

I'm about to do some Linux installation on several PC. Somehow I just feel to do it via network. Since I've done it using NFS before, this time around http method will be used. The server running on Centos 4.4 already had httpd-2.0.52-28.ent.centos4 installed and already got fedora 6 DVD iso on my external hard drive. So everything's seemed to be in place, right? TTEEETTTT!

I'd uploaded the iso into /var/www/html/fc6 and start up the httpd daemon. Then, fire up firefox and put http://fileserver/fc6/ just to see an empty directory. Moreover, I got the 403 forbidden error when try to access the file directly. Check the error logs and see the the infamous error message
"[Thu Nov 01 14:18:58 2007] [error] [client 192.168.1.207 ] (75)Value too large for defined data type: access to /fc6/FC-6-i386-DVD.iso failed".
Asked google and get a few reference, something was missing in my installed apache so that it could not support any file bigger than 2GB.


OK, no big deal, just use yum to update. But the version suggested by yum is still did not have this feature supported. Next alternative, download a tarball from the the apache itself(version 2.0.61) and run ./configure. Deng!! no gcc installed. Thanks to yum update, the compiler is installed a few minutes later.

./configure, make && make install, went smoothly. But still the get the error messages. I first thought that the later version has automatically set this large file option, guess I was wrong. So google some more to find the required parameters.
Later, I reconfigure my apache using the flags as below:

[root@fileserv httpd-2.0.61]# CFLAGS="-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64" ./configure --prefix=/usr/local/www

The file appeared in the browser and accessible. There goes the half day. Case closed. Got a DBA to meet.

No comments: