Question
Getting "Can't locate TWiki/UI.pm" on all twiki pages except configure
Environment
--
EricAiken - 05 Jun 2008
Answer
If you answer a question - or someone answered one of your questions - please remember to edit the page and set the status to answered. The status selector is below the edit box.
I had a working env but killed it.. I get http 500 error. Based on the HTTP error /opt/TWiki/lib is not in my @INC,
but in the configure CGI it is.
also my <nop>LocalLib.cfg</nop> twikiLibPath is absolute.
$twikiLibPath = "/opt/TWiki/lib";
After alot of troubleshooting, I removed and reinstalled perl, all my modules, twiki and still get this error.
I'm not sure where to go from here, what am I missing?
http error log
:
Can't locate TWiki/UI.pm in
@INC
(
@INC
contains: . /lib /opt/TWiki/bin /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.7/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.6/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.5/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.8 /usr/lib/perl5/site_perl/5.8.7 /usr/lib/perl5/site_perl/5.8.6 /usr/lib/perl5/site_perl/5.8.5 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.8/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.7/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.6/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.5/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.8 /usr/lib/perl5/vendor_perl/5.8.7 /usr/lib/perl5/vendor_perl/5.8.6 /usr/lib/perl5/vendor_perl/5.8.5 /usr/lib/perl5/vendor_perl /usr/lib/perl5/5.8.8/i386-linux-thread-multi /usr/lib/perl5/5.8.8 /etc/httpd) at /opt/TWiki/bin/view line 30.\nBEGIN failed--compilation aborted at /opt/TWiki/bin/view line 30.\n
Configure CGI
:
/opt/TWiki/lib
/usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi
/usr/lib/perl5/site_perl/5.8.7/i386-linux-thread-multi
/usr/lib/perl5/site_perl/5.8.6/i386-linux-thread-multi
/usr/lib/perl5/site_perl/5.8.5/i386-linux-thread-multi
/usr/lib/perl5/site_perl/5.8.8
/usr/lib/perl5/site_perl/5.8.7
/usr/lib/perl5/site_perl/5.8.6
/usr/lib/perl5/site_perl/5.8.5
/usr/lib/perl5/site_perl
/usr/lib/perl5/vendor_perl/5.8.8/i386-linux-thread-multi
/usr/lib/perl5/vendor_perl/5.8.7/i386-linux-thread-multi
/usr/lib/perl5/vendor_perl/5.8.6/i386-linux-thread-multi
/usr/lib/perl5/vendor_perl/5.8.5/i386-linux-thread-multi
/usr/lib/perl5/vendor_perl/5.8.8
/usr/lib/perl5/vendor_perl/5.8.7
/usr/lib/perl5/vendor_perl/5.8.6
/usr/lib/perl5/vendor_perl/5.8.5
/usr/lib/perl5/vendor_perl
/usr/lib/perl5/5.8.8/i386-linux-thread-multi
/usr/lib/perl5/5.8.8
.
/opt/TWiki/lib/CPAN/lib//arch
/opt/TWiki/lib/CPAN/lib//5.8.8/i386-linux-thread-multi
/opt/TWiki/lib/CPAN/lib//5.8.8
/opt/TWiki/lib/CPAN/lib/
--
EricAiken - 05 Jun 2008
I finally found the answer at a blog.
http://blogs.sun.com/alanbur/entry/twiki_rant
basically, when using mod_perl you can't dynamically change
@INC
. Whether in
LocalLib.cfg or not. You need to restart apache for
@INC
to be updated.
"When running under mod_perl, once the server is up
@INC
is frozen and cannot be updated. The only opportunity to temporarily modify
@INC
is while the script or the module are loaded and compiled for the first time. After that its value is reset to the original one. The only way to change
@INC
permanently is to modify it at Apache startup. "
--
EricAiken - 05 Jun 2008