PHP and 2GB Size Files

Today, I was trying to open a 2.5 GB file in PHP. PHP was unable to open the file on my 32 bit machine, but it worked great on my 64 bit machine. Running the script on my 64 bit machine wasn’t an option, so it was time to do some digging into the problem.

I know that there are a lot of memory issues when crossing the 2 GB barrier due to design limitations with 32 bit systems. After some digging, I found that you need to enable what a lot of people call “Large File Support” or LFS. At first, I only saw references to it as LFS, so I thought…. Linux From Scratch, but I guess I was wrong.

To add the Large File System support, add the following to your configure line.

CFLAGS=”-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64″

In my case, it looks like…

CFLAGS=”-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64″ ./configure
–with-apxs2=/usr/local/apache2/bin/apxs –with-mysql=/usr/local/mysql
–with-libxml-dir=/usr/local/

I found the answer on PHP.net right here.

-Kim

Kohana MySQL Memory Leak

So, I’ve been building a Kohana CGI script to import over 2 million records of data into my MySQL database. After testing, I started the app. After a few minutes, the app ended with an out of memory error.

Well, this error was specifically related to Kohana.(There were others…) It turns out that the Kohana database library was using up all of the memory.

To fix your app, just adjust the “‘benchmark’ => TRUE,” from TRUE to FALSE and you won’t run out of memory because of the database.

-Kim

Apache make infinite loop

So I was building Apache to today, and it seemed to be taking a long time. The first thing to come to mind was the bad memory I had earlier today. A long story short, the time on my computer was set to March 14, 2003. Once I updated the time, everything worked great.

Here is what part of the infinite loop looked like…

checking for getpagesize… yes
checking for working mmap… yes
checking for memmove… yes
checking for bcopy… yes
configure: creating ./config.status
CONFIG_FILES=Makefile CONFIG_HEADERS= /bin/sh config.status
config.status: creating Makefile
config.status: WARNING: ‘Makefile.in’ seems to ignore the –datarootdir setting
make[3]: Leaving directory `/home/kim/httpd-2.2.14/srclib/apr-util/xml/expat’
make[3]: Entering directory `/home/kim/httpd-2.2.14/srclib/apr-util/xml/expat’
make[3]: Warning: File `Makefile.in’ has modification time 2e+08 s in the future
running CONFIG_SHELL=/bin/sh /bin/sh /home/kim/httpd-2.2.14/srclib/apr-util/xml/expat/configure –disable-option-checking –enable-so –enable-mods-shared=all –srcdir=/home/kim/httpd-2.2.14/srclib/apr-util –with-apr=../apr –libdir=${prefix}/lib –bindir=${prefix}/bin –cache-file=/dev/null –srcdir=/home/kim/httpd-2.2.14/srclib/apr-util/xml/expat –prefix=/usr/local/apache2 –exec-prefix=/usr/local/apache2 –libdir=/usr/local/apache2/lib –includedir=/usr/local/apache2/include –bindir=/usr/local/apache2/bin –no-create –no-recursion
checking build system type… i686-pc-linux-gnu
checking host system type… i686-pc-linux-gnu
checking target system type… i686-pc-linux-gnu
checking for gcc… gcc
checking for C compiler default output file name… a.out
checking whether the C compiler works… yes
checking whether we are cross compiling… no
checking for suffix of executables…
checking for suffix of object files… o
checking whether we are using the GNU C compiler… yes
checking whether gcc accepts -g… yes
checking for gcc option to accept ISO C89… none needed
checking for a sed that does not truncate output… /bin/sed
checking for grep that handles long lines and -e… /bin/grep
checking for egrep… /bin/grep -E
checking for ld used by gcc… /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld… yes
checking for /usr/bin/ld option to reload object files… -r
checking for BSD-compatible nm… /usr/bin/nm -B
checking whether ln -s works… yes
checking how to recognize dependent libraries… pass_all
checking how to run the C preprocessor… gcc -E
checking for ANSI C header files… yes
checking for sys/types.h… yes
checking for sys/stat.h… yes
checking for stdlib.h… yes
checking for string.h… yes
checking for memory.h… yes
checking for strings.h… yes
checking for inttypes.h… yes
checking for stdint.h… yes
checking for unistd.h… yes
checking dlfcn.h usability… yes
checking dlfcn.h presence… yes
checking for dlfcn.h… yes
checking for g++… g++
checking whether we are using the GNU C++ compiler… yes
checking whether g++ accepts -g… yes
checking how to run the C++ preprocessor… g++ -E
checking for g77… no
checking for xlf… no
checking for f77… no
checking for frt… no
checking for pgf77… no
checking for cf77… no
checking for fort77… no
checking for fl32… no
checking for af77… no
checking for xlf90… no
checking for f90… no
checking for pgf90… no
checking for pghpf… no
checking for epcf90… no
checking for gfortran… no
checking for g95… no
checking for xlf95… no
checking for f95… no
checking for fort… no
checking for ifort… no
checking for ifc… no
checking for efc… no
checking for pgf95… no
checking for lf95… no
checking for ftn… no
checking whether we are using the GNU Fortran 77 compiler… no
checking whether accepts -g… no
checking the maximum length of command line arguments… 98304
checking command to parse /usr/bin/nm -B output from gcc object… ok
checking for objdir… .libs
checking for ar… ar
checking for ranlib… ranlib
checking for strip… strip
checking if gcc supports -fno-rtti -fno-exceptions… no
checking for gcc option to produce PIC… -fPIC
checking if gcc PIC flag -fPIC works… yes
checking if gcc static flag -static works… yes
checking if gcc supports -c -o file.o… yes
checking whether the gcc linker (/usr/bin/ld) supports shared libraries… yes
checking whether -lc should be explicitly linked in… no
checking dynamic linker characteristics… GNU/Linux ld.so
checking how to hardcode library paths into programs… immediate
checking whether stripping libraries is possible… yes
checking if libtool supports shared libraries… yes
checking whether to build shared libraries… yes
checking whether to build static libraries… yes
configure: creating libtool
appending configuration tag “CXX” to libtool
checking for ld used by g++… /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld… yes
checking whether the g++ linker (/usr/bin/ld) supports shared libraries… yes
checking for g++ option to produce PIC… -fPIC
checking if g++ PIC flag -fPIC works… yes
checking if g++ static flag -static works… yes
checking if g++ supports -c -o file.o… yes
checking whether the g++ linker (/usr/bin/ld) supports shared libraries… yes
checking dynamic linker characteristics… GNU/Linux ld.so
(cached) (cached) checking how to hardcode library paths into programs… immediate
appending configuration tag “F77″ to libtool
checking for gcc… (cached) gcc
checking whether we are using the GNU C compiler… (cached) yes
checking whether gcc accepts -g… (cached) yes
checking for gcc option to accept ISO C89… (cached) none needed
checking for a BSD-compatible install… /usr/bin/install -c
checking for ANSI C header files… (cached) yes
checking fcntl.h usability… yes
checking fcntl.h presence… yes
checking for fcntl.h… yes
checking for unistd.h… (cached) yes
checking for string.h… (cached) yes
checking whether byte ordering is bigendian… no
checking for an ANSI C-conforming const… yes
checking for off_t… yes
checking for size_t… yes
checking for working memcmp… yes
checking for stdlib.h… (cached) yes
checking for unistd.h… (cached) yes
checking for getpagesize… yes
checking for working mmap… yes
checking for memmove… yes
checking for bcopy… yes
configure: creating ./config.status
CONFIG_FILES=Makefile CONFIG_HEADERS= /bin/sh config.status
config.status: creating Makefile
config.status: WARNING: ‘Makefile.in’ seems to ignore the –datarootdir setting
make[3]: Leaving directory `/home/kim/httpd-2.2.14/srclib/apr-util/xml/expat’
make[3]: Entering directory `/home/kim/httpd-2.2.14/srclib/apr-util/xml/expat’
make[3]: Warning: File `Makefile.in’ has modification time 2e+08 s in the future
running CONFIG_SHELL=/bin/sh /bin/sh /home/kim/httpd-2.2.14/srclib/apr-util/xml/expat/configure –disable-option-checking –enable-so –enable-mods-shared=all –srcdir=/home/kim/httpd-2.2.14/srclib/apr-util –with-apr=../apr –libdir=${prefix}/lib –bindir=${prefix}/bin –cache-file=/dev/null –srcdir=/home/kim/httpd-2.2.14/srclib/apr-util/xml/expat –prefix=/usr/local/apache2 –exec-prefix=/usr/local/apache2 –libdir=/usr/local/apache2/lib –includedir=/usr/local/apache2/include –bindir=/usr/local/apache2/bin –no-create –no-recursion
checking build system type… i686-pc-linux-gnu
checking host system type… i686-pc-linux-gnu
checking target system type… i686-pc-linux-gnu
checking for gcc… gcc
checking for C compiler default output file name… a.out
checking whether the C compiler works… yes
checking whether we are cross compiling… no
checking for suffix of executables…
checking for suffix of object files… o
checking whether we are using the GNU C compiler… yes
checking whether gcc accepts -g… yes
checking for gcc option to accept ISO C89… none needed
checking for a sed that does not truncate output… /bin/sed
checking for grep that handles long lines and -e… /bin/grep
checking for egrep… /bin/grep -E
checking for ld used by gcc… /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld… yes
checking for /usr/bin/ld option to reload object files… -r
checking for BSD-compatible nm… /usr/bin/nm -B
checking whether ln -s works… yes
checking how to recognize dependent libraries… pass_all
checking how to run the C preprocessor… gcc -E
checking for ANSI C header files… yes
checking for sys/types.h… yes
checking for sys/stat.h… yes
checking for stdlib.h… yes
checking for string.h… yes
checking for memory.h… yes
checking for strings.h… yes
checking for inttypes.h… yes
checking for stdint.h… yes
checking for unistd.h… yes
checking dlfcn.h usability… yes
checking dlfcn.h presence… yes
checking for dlfcn.h… yes
checking for g++… g++
checking whether we are using the GNU C++ compiler… yes
checking whether g++ accepts -g… yes
checking how to run the C++ preprocessor… g++ -E
checking for g77… no
checking for xlf… no
checking for f77… no
checking for frt… no
checking for pgf77… no
checking for cf77… no
checking for fort77… no
checking for fl32… no
checking for af77… no
checking for xlf90… no
checking for f90… no
checking for pgf90… no
checking for pghpf… no
checking for epcf90… no
checking for gfortran… no
checking for g95… no
checking for xlf95… no
checking for f95… no
checking for fort… no
checking for ifort… no
checking for ifc… no
checking for efc… no
checking for pgf95… no
checking for lf95… no
checking for ftn… no
checking whether we are using the GNU Fortran 77 compiler… no
checking whether accepts -g… no
checking the maximum length of command line arguments… 98304
checking command to parse /usr/bin/nm -B output from gcc object… ok
checking for objdir… .libs
checking for ar… ar
checking for ranlib… ranlib
checking for strip… strip
checking if gcc supports -fno-rtti -fno-exceptions… no
checking for gcc option to produce PIC… -fPIC
checking if gcc PIC flag -fPIC works… yes
checking if gcc static flag -static works… yes
checking if gcc supports -c -o file.o… yes
checking whether the gcc linker (/usr/bin/ld) supports shared libraries… yes
checking whether -lc should be explicitly linked in… no
checking dynamic linker characteristics… GNU/Linux ld.so
checking how to hardcode library paths into programs… immediate
checking whether stripping libraries is possible… yes
checking if libtool supports shared libraries… yes
checking whether to build shared libraries… yes
checking whether to build static libraries… yes
configure: creating libtool
appending configuration tag “CXX” to libtool
checking for ld used by g++… /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld… yes
checking whether the g++ linker (/usr/bin/ld) supports shared libraries… yes
checking for g++ option to produce PIC… -fPIC
checking if g++ PIC flag -fPIC works… yes
checking if g++ static flag -static works… yes
checking if g++ supports -c -o file.o… yes
checking whether the g++ linker (/usr/bin/ld) supports shared libraries… yes
checking dynamic linker characteristics… GNU/Linux ld.so
(cached) (cached) checking how to hardcode library paths into programs… immediate
appending configuration tag “F77″ to libtool
checking for gcc… (cached) gcc
checking whether we are using the GNU C compiler… (cached) yes
checking whether gcc accepts -g… (cached) yes
checking for gcc option to accept ISO C89… (cached) none needed
checking for a BSD-compatible install… /usr/bin/install -c
checking for ANSI C header files… (cached) yes
checking fcntl.h usability… yes
checking fcntl.h presence… yes
checking for fcntl.h… yes
checking for unistd.h… (cached) yes
checking for string.h… (cached) yes
checking whether byte ordering is bigendian… no
checking for an ANSI C-conforming const… yes
checking for off_t… yes
checking for size_t… yes
checking for working memcmp… yes
checking for stdlib.h… (cached) yes
checking for unistd.h… (cached) yes
checking for getpagesize… yes
checking for working mmap… make[3]: *** [config.status] Error 1
make[2]: *** [all-recursive] Interrupt
make[1]: *** [all-recursive] Interrupt
make: *** [all-recursive] Interrupt

The clue was the warning about the make file have a future date.

-Kim

Utah County Ham Radio Nets

I like to participate in Ham Radio, so I figured I it would be nice to share the Ham Radio nets I like to participate in.

ucares.org

The net is on Tuesdays at 9:00 PM Usually on 147.28(Positive Duplex, Tone 141.3). In the past, the net has also been known to be on 147.34(Positive Duplex, Tone 100.0). Every month they have a simplex night where they turn off the repeater and adjust their radios to run off of simplex.

http://erclindon.org/welcome.php

They have a weekly net on Tuesdays at 8:00 PM on 147.020( Positive Duplex, Tone 100)

-Kim