Значи положението е следното: Имам домеин с поддръжка на cgi - примерно www.xxx.com. На UNIX server е. При закачане с FTP клиент имам следните папки: cgi-bin и www. Качвам си cgi-script-а (примерно scr). Поставям го в папка /cgi-bin/scr (тук са му cgi файловете). Той е с webinstall : http://www.xxx.com/cgi-bin/scr/install.cgi. Скрипта стартира wizard, който ме пита за настройките на System и URL PATH, където вече ми е проблема. От hosting фирмата ми казват следното: Perl 5 Location - #!/usr/bin/perl (това е ок), Sendmail Location - /usr/lib/sendmail (ок), CGI Url
http://www.xxx.com/cgi-bin/scr/file.cgi (и с това нямам грижа) и Full or Absolute root path: We recommend using the DOCUMENT ROOT environment variable to automatically insert the path in your Perl script: $ENV{'DOCUMENT_ROOT'} и съответно The full path to your cgi-bin directory would be: "$ENV{'DOCUMENT_ROOT'}/cgi-bin/scr" - за това ми е питането. Значи скрипта ми иска System path to "scr" cgi directory: , което ми е ясно, че щеше да е нещо от рода на /home/usr/www.xxx.com/cgi-bin/scr, ако System PATH на CGI беше определен като този на System PATH на perl примерно. Ясно ми е, че трябва да пипна install.cgi и там някъде да набия т'ва "$ENV{'DOCUMENT_ROOT'}/cgi-bin/scr". Понеже и понятие си нямам от cgi и perl (но съм схватлив ) отворих install.cgi и предположих, че промените трябва да станат някъде в тази част:
########################### SUB ROUTINES ###########################
# Set up system paths and URLs
sub setup_paths_and_urls
{
# Attempt to determine paths and URLs from environment
my ($path_info, $url_info);
if ($ENV{'SCRIPT_FILENAME'} =~ /install\.cgi/) { // <- ???[?]
$path_info = $ENV{'SCRIPT_FILENAME'}; // <- ???[?]
}
elsif ($ENV{'PATH_TRANSLATED'} =~ /install\.cgi/) {
$path_info = $ENV{'PATH_TRANSLATED'};
}
if ($ENV{'SCRIPT_URI'} =~ /install\.cgi/) {
$url_info = $ENV{'SCRIPT_URI'};
}
elsif ($ENV{'HTTP_REFERER'} =~ /install\.cgi/) {
$url_info = $ENV{'HTTP_REFERER'};
}
elsif ($ENV{'SCRIPT_URL'} =~ /install\.cgi/) {
$url_info = $ENV{'SCRIPT_URL'};
}
else
{
$url_info = "http://";
}
$path_info =~ s/\\/\//g;
$path_info =~ s/\/install\.cgi//;
$url_info =~ s/\/install\.cgi//;
Неграмотността ми в пипането на посочените с "//<-???" 2 реда доведе само до грешки именно в тях при пускане на променения "майсторски" от мен скрипт.
Как точно ще стане в моя случай System path to "scr" cgi деректорията? Скрипта ми иска също и System path до /cgi-bin/scr/data и /cgi-bin/scr/templates, но предполагам, че с тях ще се оправя, след като науча как става с /cgi-bin/scr.
10x Ви предварително.