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



Reply via email to