Hello,
I am running Red Hat Enterprise 3 ES. I wanted to upgrade Perl that came with the distribution, so I downloaded, compiled, and installed 5.8.6. I also installed Apache 2.0.54 and configured httpd.conf to work with Perl.
Perl 5.8.6 is running, confirmed by executing
perl --version. I can run perl scripts just fine locally. However, when I try to run a script through Apache over the Internet, I get an Internal Server Error. The error log from Apache is as follows:
[Tue May 24 14:58:29 2005] [error] [client 128.104.4.246] Can't locate
+ CGI.pm in @INC (@INC contains: /usr/lib/perl5/5.8.0/i386-linux-threa
+d-multi /usr/lib/perl5/5.8.0 /usr/lib/perl5/site_perl/5.8.0/i386-linu
+x-thread-multi /usr/lib/perl5/site_perl/5.8.0 /usr/lib/perl5/site_per
+l /usr/lib/perl5/vendor_perl/5.8.0/i386-linux-thread-multi /usr/lib/p
+erl5/vendor_perl/5.8.0 /usr/lib/perl5/vendor_perl /usr/lib/perl5/5.8.
+0/i386-linux-thread-multi /usr/lib/perl5/5.8.0 .) at /var/www/html/ad
+min/admin.pl line 26., referer: http://sonata.doit.wisc.edu:8080/admi
+n/
My 5.8.6 dist of Perl is residing in a completely different place than 5.8.0 (the version that came with Red Hat). I've tried reinstalling both Apache and Perl, and even (painfully) rebooting my machine. Running the scripts on the Apache server that came bundled with Red Hat produced the same problem.
Running
perl -V gives me the following output:
Summary of my perl5 (revision 5 version 8 subversion 6) configuration:
Platform:
osname=linux, osvers=2.4.21-32.el, archname=i686-linux
uname='linux sonata.doit.wisc.edu 2.4.21-32.el #1 fri apr 15 21:29
+:19 edt 2005 i686 i686 i386 gnulinux '
config_args='-d'
hint=recommended, useposix=true, d_sigaction=define
usethreads=undef use5005threads=undef useithreads=undef usemultipl
+icity=undef
useperlio=define d_sfio=undef uselargefiles=define usesocks=undef
use64bitint=undef use64bitall=undef uselongdouble=undef
usemymalloc=n, bincompat5005=undef
Compiler:
cc='cc', ccflags ='-fno-strict-aliasing -pipe -I/usr/local/include
+ -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm',
optimize='-O2',
cppflags='-fno-strict-aliasing -pipe -I/usr/local/include -I/usr/i
+nclude/gdbm'
ccversion='', gccversion='3.2.3 20030502 (Red Hat Linux 3.2.3-52)'
+, gccosandvers=''
intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234
d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=1
+2
ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t',
+ lseeksize=8
alignbytes=4, prototype=define
Linker and Libraries:
ld='cc', ldflags =' -L/usr/local/lib'
libpth=/usr/local/lib /lib /usr/lib
libs=-lnsl -lgdbm -ldb -ldl -lm -lcrypt -lutil -lc
perllibs=-lnsl -ldl -lm -lcrypt -lutil -lc
libc=/lib/libc-2.3.2.so, so=so, useshrplib=false, libperl=libperl.
+a
gnulibc_version='2.3.2'
Dynamic Linking:
dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E'
cccdlflags='-fpic', lddlflags='-shared -L/usr/local/lib'
Characteristics of this binary (from libperl):
Compile-time options: USE_LARGE_FILES
Built under linux
Compiled at May 24 2005 12:21:23
@INC:
/usr/local/lib/perl5/5.8.6/i686-linux
/usr/local/lib/perl5/5.8.6
/usr/local/lib/perl5/site_perl/5.8.6/i686-linux
/usr/local/lib/perl5/site_perl/5.8.6
/usr/local/lib/perl5/site_perl
.
The @INC is pointing to 5.8.6 here, so why is Apache still pointing to 5.8.0?
I appreciate any assistance,
Andrew Hoffmann
University of Wisconsin