Re: lost directory indexes

Ruben Safir <[email protected]>
Newsgroups gmane.comp.apache.mod-perl
Message-ID <[email protected]>
:)

You put almost as much effort into this as I, and I have to admit, this 
is fairly fustrating, and it is just an old bug, one that should
have been resolved long ago.  And I think the bug is in apache, not
mod_perl, but I could be wrong.  I was going to, on my next attempt on
this, try recompiling the apache and modperl code with some alterations
but then I discovered that I might not have correct information.

Is it that mod_dir has to run first BEFORE embperl
or does embperl have to run first, which is what 
we have been concluding.

I think mod_dir has to run FIRST... why?

Because if you get a directory, it needs to translate it to an html file
FIRST, fetched anded off to embperl and mod_perl.

My regular perl module though needs to go FIRST and then hand off to
mod_dir.  Why?  Because it is examining the url for nastiness.  Once it 
is ok, it should hand off to mod_dir... which seems to be what is
broken.

When I run embperl, which will only work with 

sethandler perl-script, and never with addhandler:  see below
it functions fine until I add the mod_perl module I wrote.  So 
mod_dir is probably supposed to be sliced between them.

<VirtualHost *:80>
    ServerAdmin [email protected]
    DocumentRoot "/usr/local/apache/htdocs/nylxs"
    ServerName www.nylxs.com
    DirectoryIndex index.html
    PerlModule Embperl
    Embperl_UseEnv        on
    ErrorLog logs/nylxs_error_log
    CustomLog logs/nylxs_access_log common
    <Directory /usr/local/apache/htdocs/nylxs>
           Options     Indexes ExecCGI
           DirectoryIndex index.html
           <Files *.html>
           SetHandler perl-script
#          PerlResponseHandler URL_BLOCK
           PerlHandler Embperl
           </Files>
           AllowOverride None
           Order allow,deny
           Allow from all
    </Directory>
</Virtualhost>



When I use AddHanlder with my custom mod_perl url module, the mod_dir
stuff works and it seems to handoff to mod_dir correctly

For example:
<VirtualHost *:80>
    ServerAdmin [email protected]
    DocumentRoot "/usr/local/apache/htdocs"
    ServerName www.mrbrklyn.com
    Options Indexes
    AddHandler perl-script *
    PerlTransHandler +URL_BLOCK
           <Files *.html>
           AddHandler perl-script *
           PerlHandler Embperl
           </Files>
    <Location "/resources">
        Options +Indexes +FollowSymLinks
    </Location>
    <Location "/images">
    #    AddHandler perl-script *
#       PerlTransHandler URL_BLOCK
    </Location>
    <Location "/pharmacy/sales">
           Deny from All
    </Location>
    ErrorLog logs/error_log
    CustomLog logs/access_log common
</VirtualHost>

~~~~~~~~~~~~``

Here, embperl silently fails (see http://www.mrbrklyn.com and the
localtime command is visable).
the URL_BLOCK works (try http://www.mrbrklyn.com/////index.html)
mod_dir functions
try: http://www.mrbrklyn.com/images/


On Thu, Sep 18, 2014 at 02:15:43AM -0400, Rick Myers wrote:
> On Wed, Sep 17, 2014 at 09:18:38PM -0400, Ruben Safir wrote:
> > On 09/17/2014 03:08 PM, Rick Myers wrote:
> > > o, just declining from the perl response simply drops you off
> > > into the void since there are no other responses even set up.
> > > 
> > > Does that make sense? I hope so. :-)
> > 
> > 
> > that has been my assessment thusly...
> 
> Just for fun, I dusted off the old mod_perl machine and took a stab at
> this.
> 
> If I put a new Location section in an existing VirtualHost, I got the
> same sort of result you're seeing. That is, mod_perl above the
> directory, mod_perl below the directory, but a 500 error on the
> directory itself.
> 
> The 500 was because it was trying to run the Perl code. And that was
> running Template, which didn't like being handed a directory.
> 
> No matter what I did though, I couldn't figure out how to get a
> directory index. I tried Trans, Fixup, MapToStorage, returning OK,
> returning DECLINED - I even read the Fine Manual - all with the same
> result. It insisted on running the Perl code.
> 
> Even after I gave up, it still bugged me. I eventually got around to
> setting up a new VirtualHost. Like so...
> 
>     <VirtualHost *>
> 
>         ServerName www.example.com
>         ServerAlias example.com
>         ServerAdmin [email protected]
> 
>         DocumentRoot /home/dev/perl/lib/Experimental/public
> 
>         <Directory />
>             Order deny,allow
>             Deny from all
>             Options None
>             AllowOverride None
>         </Directory>
> 
>         <Directory /home/dev/perl/lib/Experimental/public>
>             Order allow,deny
>             Allow from all
>             Options Indexes
>             AllowOverride None
>         </Directory>
> 
>         <Location /mp>
>             SetHandler modperl
>             PerlResponseHandler Experimental::ResponseHandler
>         </Location>
> 
>     </VirtualHost>
> 
> And a module...
> 
>     package Experimental::ResponseHandler;
>     use strict;
>     use warnings;
> 
>     use Apache2::Const -compile => qw/OK DECLINED/;
> 
>     sub handler {
>         my $r = shift;
>         my $f = $r->filename;
>         warn "FILE: $f\n";
> 
>         if ( -d $f ) {
>             warn "DIR!\n";
>             return Apache2::Const::DECLINED;
>         }
> 
>         $r->print( 'Hi!' );
>         return Apache2::Const::OK;
>     }
> 
>     1;
> 
> And the index on /mp worked perfectly. Files below the directory got the
> Perl-generated response, and files above didn't trigger the handler.
> 
> >From there I tried to break it, without much success. The only thing I
> did that made any difference was to add a <Location /> section below the
> existing /mp section. Even then, it gave me a 403 and logged 'index
> forbidden by Options'.
> 
> So all I can say is, Beats Me.
> 
> I do know though, I've pulled my hair out too many times trying to
> figure out what eventually wound up being configuration merging
> problems. It's pretty whacked sometimes.
> 
> If you want to track it down further, go for it. I really don't care so
> much anymore after moving most of my stuff to Nginx/Dancer. I just
> thought I'd save you a few follicles. ;-)
> 
> HTH
> 
> Cheers,
> Rick
> 

-- 
So many immigrant groups have swept through our town
that Brooklyn, like Atlantis, reaches mythological
proportions in the mind of the world - RI Safir 1998
http://www.mrbrklyn.com 

DRM is THEFT - We are the STAKEHOLDERS - RI Safir 2002
http://www.nylxs.com - Leadership Development in Free Software
http://www2.mrbrklyn.com/resources - Unpublished Archive 
http://www.coinhangout.com - coins!
http://www.brooklyn-living.com 

Being so tracked is for FARM ANIMALS and and extermination camps, 
but incompatible with living as a free human being. -RI Safir 2013
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.