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' => '[EMAIL PROTECTED]',
         '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



Reply via email to