SCRIPT_FILENAME Environment variable set wongly?

[prev] [thread] [next] [Date index for 2004/12/15]

From: colin_e
Subject: SCRIPT_FILENAME Environment variable set wongly?
Date: 12:58 on 15 Dec 2004
Platforms: Solaris 9, Win XP
Apache: 2.0.52
Perl: ActiveState Perl 5.8.4

I'm making the first tentative steps in getting scripts running under 
mod_perl.

At this point i'm aiming to "encapsulate" a mod_perl script and all it's 
supporting images
etc., so to the client they all appear under a single "testapp" URL, 
where //myserver/testapp
is the application, and //myserver/testapp/images/logo.gif (for example) 
accesses the
relevant logo.

Under I:/WWW I have two branches, a "public" tree for general web 
content (shared images
etc.) and a "private" tree for application content that will only be 
visible through applications
or Apache-configured aliases.

Symptoms
----------
What i'm unclear on is the output line from the script-

          'SCRIPT_FILENAME' => 'I:/WWW/public/testapp',

This is the publicly-visible URL of my script. Fine, but does the 
environment
give me any way to find the physical location of my script (i.e.
'I:/WWW/private/lib/testapp/main.pm'), or at least it's basename component?

I need this to be able to construct physical pathnames within the script 
to access
resource files such as HTML templates.

Regards: Colin


- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Config- httpd.conf
------------------
DocumentRoot "I:/WWW/public"

<Directory "I:/WWW/public">
    Options Indexes FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

#
# testapp.
#
<Location /testapp>
    SetHandler perl-script
    PerlResponseHandler TestApp::Main
</Location>

Alias /testapp/ "I:/WWW/private/webapp/testapp/"

<Directory "I:/WWW/private/webapp/testapp/">
    Order allow,deny
    Allow from all
</Directory>


Config- start.pl
----------------
use Apache2 ();
use lib qw(I:/WWW/private/lib);
1;


TestApp
-------
package TestApp::Main;

use strict;
use warnings;

use Cwd;
use Data::Dumper;

my $dir= cwd();

use Apache::RequestRec ();
use Apache::RequestIO ();

use Apache::Const -compile => qw(OK);

sub handler {
    my $r = shift;

    $r->content_type('text/plain');
    print "Running in $dir\n";
    print Dumper(\%ENV);

    return Apache::OK;
}
1;

Output
------
Running in C:/Prog/Apache/Apache2
$VAR1 = {
          'SCRIPT_NAME' => '/testapp',
          'SERVER_NAME' => 'localhost',
          'SystemRoot' => 'C:\\WINDOWS',
          'SERVER_ADMIN' => 'colin_e@xxxxxxx.xxx',
          'HTTP_ACCEPT_ENCODING' => 'gzip,deflate',
          'HTTP_CONNECTION' => 'keep-alive',
          'REQUEST_METHOD' => 'GET',
          'HTTP_ACCEPT' => 'application/x-shockwave-flash,text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,image/jpeg,image/gif;q=0.2,*/*;q=0.1',
          'SCRIPT_FILENAME' => 'I:/WWW/public/testapp',
          'COMSPEC' => 'C:\\WINDOWS\\system32\\cmd.exe',
          'SERVER_SOFTWARE' => 'Apache/2.0.52 (Win32) mod_perl/1.99_17 Perl/v5.8.4',
          'HTTP_ACCEPT_CHARSET' => 'ISO-8859-1,utf-8;q=0.7,*;q=0.7',
          'WINDIR' => 'C:\\WINDOWS',
          'QUERY_STRING' => '',
          'REMOTE_PORT' => '1160',
          'PATHEXT' => '.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH',
          'HTTP_USER_AGENT' => 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.6) Gecko/20040113',
          'SERVER_PORT' => '80',
          'SERVER_SIGNATURE' => '<address>Apache/2.0.52 (Win32) mod_perl/1.99_17 Perl/v5.8.4 Server at localhost Port 80</address>
',
          'HTTP_CACHE_CONTROL' => 'max-age=0',
          'HTTP_ACCEPT_LANGUAGE' => 'en-us,en;q=0.5',
          'REMOTE_ADDR' => '127.0.0.1',
          'HTTP_KEEP_ALIVE' => '300',
          'SERVER_PROTOCOL' => 'HTTP/1.1',
          'PATH' => 'C:\\Prog\\Perl\\bin\\;C:\\WINDOWS\\system32;C:\\WINDOWS;C:\\WINDOWS\\System32\\Wbem;C:\\Program Files\\ATI\\ATI Control Panel;C:\\PROGRA~1\\MICROS~2\\Office;C:\\Program Files\\PHP;C:\\Program Files\\MySQL\\bin',
          'REQUEST_URI' => '/testapp',
          'GATEWAY_INTERFACE' => 'CGI/1.1',
          'SERVER_ADDR' => '127.0.0.1',
          'DOCUMENT_ROOT' => 'I:/WWW/public',
          'HTTP_HOST' => 'localhost',
          'MOD_PERL' => 'mod_perl/1.99_17'
        };

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 



        -- 
        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

(message missing)

Re: <Perl>...</Perl> and startup.pl equivalent?
Martin Moss 14:51 on 13 Dec 2004

Re: <Perl>...</Perl> and startup.pl equivalent?
Stas Bekman 23:41 on 13 Dec 2004

Re: <Perl>...</Perl> and startup.pl equivalent?
Stas Bekman 23:53 on 13 Dec 2004

Re: <Perl>...</Perl> and startup.pl equivalent?
Stas Bekman 00:29 on 14 Dec 2004

Re: <Perl>...</Perl> and startup.pl equivalent?
Stas Bekman 16:54 on 13 Dec 2004

Re: <Perl>...</Perl> and startup.pl equivalent?
Stas Bekman 23:31 on 13 Dec 2004

Re: <Perl>...</Perl> and startup.pl equivalent?
Philippe M. Chiasson 23:42 on 13 Dec 2004

Re: <Perl>...</Perl> and startup.pl equivalent?
Stas Bekman 00:27 on 14 Dec 2004

Re: <Perl>...</Perl> and startup.pl equivalent?
Philippe M. Chiasson 21:12 on 14 Dec 2004

Re: <Perl>...</Perl> and startup.pl equivalent?
Stas Bekman 23:53 on 14 Dec 2004

SCRIPT_FILENAME Environment variable set wongly?
colin_e 12:58 on 15 Dec 2004

Generated at 12:15 on 16 Jan 2005 by mariachi v0.52