in reply to Resolving correct directory path in a symlinked directory
#!/usr/bin/perl use strict; use CGI; use Data::Dumper 'Dumper'; my $c = new CGI; print $c->header, $c->start_html, "<p> The script name is $0 </p>", '<pre>', Dumper( \%ENV ), '</pre>',$c->end_html;
When I put that in the cgi-bin directory for the apache server on my macosx laptop, I found that the value of $0 was the absolute physical path of the script; this happens to match the value of $ENV{SCRIPT_FILENAME}.
I think what you want is $ENV{SCRIPT_NAME} (note the difference), which (in my case at least) was the path as given in the url requested by the browser. So try that on your various server urls, and see if that %ENV element behaves as hoped for (i.e. gives a different name depending on which url you use).
If it does, then all you need is to add site-specific config files (or site-specific directories of config data) in your common (symlinked) path, and make sure the common cgi script checks the SCRIPT_NAME environment variable first, so it knows which config data to use for the given server.
UPDATE -- Ah, I just noticed the reply above that mentions $ENV{SCRIPT_NAME} -- so my post is redundant (except that it shows an easy way to confirm what you already found out).
|
|---|