On Fri, May 17, 2002 at 10:06:37PM +0200, Gerald Richter wrote:
> > Question - does
> >
> >   Execute('../init.epl')
> >
> > search EMBPERL_OBJECT_ADDPATH directories in addition to direct parent
> > directories?
> 
> Yes

Okay good, but this is not working for me. See below.

> > I think it should, but it's not finding my parent init.epl in
> > an ADDPATH directory. It finds the parent fine if I move the child
> > init.epl out of the way.
> >
> 
> The ../ will cause Embperl only to remove the first entry from the PATH and
> not to really search the parent directory (also under EmbperlObject, this is
> most time the same). To get what you want write
> 
>   Execute('./../init.epl')
> 
> this will really look in the parent directory

Sorry, confusing use of terms. By 'parent' I wasn't meaning a filesystem 
parent directory.

I've got an application configured like this:

  <Directory "/export/opt/web/cts/htdocs">
    Options +ExecCGI
    SetHandler perl-script
    PerlHandler HTML::EmbperlObject
    PerlSetEnv EMBPERL_OBJECT_STOPDIR "/export/opt/web/cts/htdocs"
    PerlSetEnv EMBPERL_OBJECT_ADDPATH "/export/opt/web/base"
  </Directory>

There's a 'header.epl' component in both /export/opt/web/cts/htdocs and
/export/opt/web/base. The /export/opt/web/cts/htdocs header.epl looks
like this:

  [- $req = shift; -]
  <pre>
  stopdir: [+ $ENV{EMBPERL_OBJECT_STOPDIR} +]
  addpath: [+ $ENV{EMBPERL_OBJECT_ADDPATH} +]
  path: [+ $req->Path +]
  </pre>
  [- Execute '../header.epl'; -]
 
This fails with an internal server error:

  [19393]ERR: 12: header.epl(1): File ../header.epl open error: No such file or 
directory

If I change the '../header.epl' above to '/export/opt/web/base/header.epl' 
everything works fine, and the header content is:

  stopdir: /export/opt/web/cts/htdocs
  addpath: /export/opt/web/base
  path: ;/export/opt/web/cts/htdocs;/export/opt/web/base
  
I turned debugging up to 66609149 and the relevant embperl.log portion 
seems to be:

[19395]Embperl path search Path:
/export/opt/web/cts/htdocs;/export/opt/web/base Fi
lename: header.epl
[19395]Embperl path search pathskip = 0  pathndx = 1
[19395]Embperl path search Check: /export/opt/web/cts/htdocs/header.epl
[19395]MEM: Reload /export/opt/web/cts/htdocs/header.epl in
HTML::Embperl::DOC::_7
[19395]CACHE: Found File for '/export/opt/web/cts/htdocs/header.epl'
(8d194c0) in '
HTML::Embperl::DOC::_7' hash cache-key
'/export/opt/web/cts/htdocs/header.epl'
[19395]REQ:  No Safe Eval  All Opcode allowed   mode = mod_perl (3)
[19395]REQ:  Package = HTML::Embperl::DOC::_7
[19395]Using APACHE for output...
[19395]Reading /export/opt/web/cts/htdocs/header.epl as input using
PerlIO ...
[19395]SRC: Line 1: Time 0 ms  [- $req = shift; -]
[19395]DEF:  Line 1:  $req = shift;
[19395]EVAL<  $req = shift;
[19395]EVAL> HTML::Embperl::DOC::_10=HASH(0x8d3eee4)
[19395]SRC: Line 2: Time 0 ms  <pre>
[19395]CMD-:  Cmd = 'pre'
[19395]SRC: Line 2: Time 0 ms  [+ $ENV{EMBPERL_OBJECT_STOPDIR} +]
[19395]DEF:  Line 3:  $ENV{EMBPERL_OBJECT_STOPDIR}
[19395]EVAL<  $ENV{EMBPERL_OBJECT_STOPDIR}
[19395]EVAL> /export/opt/web/cts/htdocs
[19395]SRC: Line 3: Time 0 ms  [+ $ENV{EMBPERL_OBJECT_ADDPATH} +]
[19395]DEF:  Line 4:  $ENV{EMBPERL_OBJECT_ADDPATH}
[19395]EVAL<  $ENV{EMBPERL_OBJECT_ADDPATH}
[19395]EVAL> /export/opt/web/base
[19395]SRC: Line 4: Time 0 ms  [+ $req->Path +]
[19395]DEF:  Line 5:  $req->Path
[19395]EVAL<  $req->Path
[19395]EVAL> ;/export/opt/web/cts/htdocs;/export/opt/web/base
[19395]SRC: Line 5: Time 0 ms  </pre>
[19395]CMD-:  Cmd = '/pre'
[19395]SRC: Line 6: Time 0 ms  [- Execute '../header.epl'; -]
[19395]DEF:  Line 7:  Execute '../header.epl';
[19395]EVAL<  Execute '../header.epl';
[19395]Embperl path search Path:  Filename: header.epl
[19395]Embperl path search pathskip = 1  pathndx = 1
[19395]MEM: Reload ../header.epl in HTML::Embperl::DOC::_8
[19395]CACHE: Found File for '../header.epl' (8d306d0) in
'HTML::Embperl::DOC::_8' 
hash cache-key '../header.epl/export/opt/web/cts/htdocs'
[19395]REQ:  No Safe Eval  All Opcode allowed   mode = mod_perl (3)
[19395]REQ:  Package = HTML::Embperl::DOC::_8
[19395]Reading ../header.epl as input using PerlIO ...
[19395]ERR:  12: header.epl(1): File ../header.epl open error: No such
file or directory
[19395]EVAL> 500
[19395]PERF: input = /export/opt/web/cts/htdocs/header.epl
[19395]PERF: Time: 0 ms Evals: 5 Cache Hits: 0 (0%)
[19395]Sub-Request finished. Mon May 20 08:04:13 2002
. Entry-SVs: 90417 -OBJs: 74 Exit-SVs: 90442 -OBJs: 74

The log seems to indicate it finds the base/header.epl but then fails to
open it? It's not permissions, because it finds the base/header.epl fine
if the name is fully qualified, or if the cts/htdocs/header.epl is 
renamed out of the way.

Any clues?

Cheers,
Gavin

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to