Hi,
you should have said that you are running as CGI. Here the modification using PerlRequire doesn't have any effects because you are starting a new perl-interpreter for every request. You should make a Apache::Registry-Script out of it, else you'll have to stick with
use lib qw() in your .cgi.
Tom
David Arnold wrote:
Tom et al,
OK. Permissions on startup.pl are:
-rwx------ 1 darnold darnold 146 Jul 22 23:07 startup.pl
But I am running Apache with user=darnold and group darnold.
I put a print statement in startup.pl, which was a good idea by the way.
# File: startup.pl
use lib qw(/home/darnold/modperl/); use lib qw(/usr/local/apache/modules/); print "Starting up David's startup.pl file\n"; 1;
Then I stopped and started Apache:
[EMAIL PROTECTED] apache]# bin/apachectl stop bin/apachectl stop: httpd stopped [EMAIL PROTECTED] apache]# bin/apachectl start Starting up David's startup.pl file bin/apachectl start: httpd started
And there's my print statement, so I'm excited. But, ....
I have a little module in /home/darnold/modperl called WebDB.pm.
[EMAIL PROTECTED] modperl]$ ll WebDB.pm -rw------- 1 darnold darnold 716 Jul 18 14:21 WebDB.pm
It's the usual, with:
package WebDB; # File: WebDB.pm
use strict; use DBI; . . . 1;
Now, I have a file in /usr/local/apache/cgi-bin/ that "uses" this module.
#! /usr/local/bin/perl -w # File: Quiz1Solns.pl
use strict; use WebDB; . . .
But calling it from my browser causes:
Can't locate WebDB.pm in @INC (@INC contains: /usr/local/lib/perl5/5.6.2/i686-linux /usr/local/lib/perl5/5.6.2 /usr/local/lib/perl5/site_perl/5.6.2/i686-linux /usr/local/lib/perl5/site_perl/5.6.2 /usr/local/lib/perl5/site_perl .) at /usr/local/apache/cgi-bin/Quiz1Solns.pl line 9.
See, those two extra locations in my startup are not included in INC. If I do this,
#! /usr/local/bin/perl -w # File: Quiz1Solns.pl
use lib qw(/home/darnold/modperl/); use strict; use WebDB; . . .
Then all is well.
Hmmm.... Any suggestions?
At 07:25 AM 7/23/04 +0200, Tom Schindl wrote:
Hi,
Is Apache allowed to change into this directory/read the file, try to move it to e.g. /tmp and see if it works. You could also insert a print-Statement and you should see the output on the console when apache is started (stop/start not restart). I'm not sure but I think a restart will not reload PerlRequire things. Maybe someone could correct me if I'm wrong.
You could also test it using "apachectl configtest" and you should see the output.
Tom
David Arnold wrote:
All,
I have this in conf/httpd.conf:
# Startup File: PerlRequire /home/darnold/modperl/startup.pl
And:
[EMAIL PROTECTED] apache]# cat /home/darnold/modperl/startup.pl # File: startup.pl
use lib qw(/home/darnold/modperl/); 1;
However, I am getting this in my error log:
Can't locate OnlineTestingDB.pm in @INC (@INC contains:
/usr/local/lib/perl5/5.6.2/i686-linux /usr/local/lib/perl5/5.6.2
/usr/local/lib/perl5/site_perl/5.6.2/i686-linux
/usr/local/lib/perl5/site_perl/5.6.2 /usr/local/lib/perl5/site_perl .)
Shouldn't @INC contain /home/darnold/modperl?
Reclaim Your Inbox! http://www.mozilla.org/products/thunderbird
-- Report problems: http://perl.apache.org/bugs/ Mail list info: http://perl.apache.org/maillist/modperl.html List etiquette: http://perl.apache.org/maillist/email-etiquette.html
Reclaim Your Inbox! http://www.mozilla.org/products/thunderbird
-- Report problems: http://perl.apache.org/bugs/ Mail list info: http://perl.apache.org/maillist/modperl.html List etiquette: http://perl.apache.org/maillist/email-etiquette.html