-
cgi/perl help
Значи положението е следното: Имам домеин с поддръжка на 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 Ви предварително.
-
cgi/perl help
Нещо не успях напълно да се ориентирам в постинга ти - ще го прочета по-внимателно довечера или утре сутринта. Дотогава можеш да пробваш да установиш конфигурацията на сървера с едно елементарно скриптче:
#!/usr/bin/perl
foreach $key (keys(%ENV)){ print "$key: $ENV{$key}<br>\n";
и да подадеш нужната информация на wizard-а.
Ако така не стане, ще се занимаем по-сериозно [;)].
//edit
Sorry, не те подценявам, ама все пак да уточня:
1. Даваш име на горното скриптче и го upload-ваш.
2. chmod 755.
3. Викаш скрипта от html-документ.
-
cgi/perl help
<blockquote id="quote"><font size="1" id="quote"><b id="quote">quote:</b id="quote"></font id="quote"><table border="0" id="quote"><tr id="quote"><td class="quote" id="quote"><font size="1" id="quote">//edit
Sorry, не те подценявам, ама все пак да уточня:
1. Даваш име на горното скриптче и го upload-ваш.
2. chmod 755.
3. Викаш скрипта от html-документ.</td id="quote"></tr id="quote"></table id="quote"></blockquote id="quote"><font size="2" id="quote"></font id="quote">
Точно така - всички папки и файлове са си по местата с необходимите им пермишъни и викам скрипта от html-документ. Ако скрипта, които си написал прави това, което и www.xxx.com/cgi/printenv мога да ти постна резултатите, ако това ще те улесни. Благодаря ти много, че се отзова.
-
cgi/perl help
<blockquote id="quote"><font size="1" id="quote"><b id="quote">quote:</b id="quote"></font id="quote"><table border="0" id="quote"><tr id="quote"><td class="quote" id="quote"><font size="1" id="quote">Ако скрипта, които си написал прави това, което и www.xxx.com/cgi/printenv мога да ти постна резултатите
<div align="right">Originally posted by TRENDS*-*16/01/2004*:* 20:05:01</div id="right">
</td id="quote"></tr id="quote"></table id="quote"></blockquote id="quote"><font size="2" id="quote"></font id="quote">
Вероятно прави същото. Постни резултатите.
btw, гледам, пишеш "нещо от рода на /home/usr/www.xxx.com/cgi-bin/scr" - по-скоро е нещо от рода на /home/usr/xxx/www/cgi-bin/scr/scr.cgi
-
cgi/perl help
Ето настроиките на сервера:
GATEWAY_INTERFACE=CGI/1.1 LD_LIBRARY_PATH=/usr/local/nf/lib/nfsflock REMOTE_ADDR=x.x.x.x QUERY_STRING= REMOTE_PORT=3151 HTTP_USER_AGENT=Mozilla/4.0 (compatible; MSIE 6.0; Windows 98) DOCUMENT_ROOT=/mnt/web_h/d15/s46/b01c8063 HTTP_ACCEPT=image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/msword, application/x-shockwave-flash, */* SCRIPT_FILENAME=/usr/local/nf/share/cgi/printenv HTTP_HOST=www.xxx.com REQUEST_URI=/cgi/printenv HTTP_X_FORWARDED_FOR=x.x.x.x HTTP_NFUSERADDR=x.x.x.x SERVER_SOFTWARE=Apache/1.3.26 (Unix) mod_perl/1.26 HTTP_CONNECTION=close HTTP_COOKIE=nfreferstat=http%3A%2F%2Fwww.xxx.COM PATH=/usr/local/bin:/usr/bin:/bin HTTP_X_FORWARDED_SERVER=w3_2a HTTP_ACCEPT_LANGUAGE=bg SERVER_PROTOCOL=HTTP/1.1 HTTP_X_FORWARDED_HOST=xxx.com HTTP_ACCEPT_ENCODING=gzip, deflate SCRIPT_URI=http://xxx.com/cgi/printenv SCRIPT_URL=/cgi/printenv REQUEST_METHOD=GET SERVER_ADMIN=support@xxx.com SERVER_PORT=80 SCRIPT_NAME=/cgi/printenv SERVER_NAME=xxx.com
По разбираеми причини името на домейна и ИП-то ми съм заменил с ххх.соm и x.x.x.x
<blockquote id="quote"><font size="1" id="quote"><b id="quote">quote:</b id="quote"></font id="quote"><table border="0" id="quote"><tr id="quote"><td class="quote" id="quote"><font size="1" id="quote">btw, гледам, пишеш "нещо от рода на /home/usr/www.xxx.com/cgi-bin/scr" - по-скоро е нещо от рода на /home/usr/xxx/www/cgi-bin/scr/scr.cgi</td id="quote"></tr id="quote"></table id="quote"></blockquote id="quote"><font size="2" id="quote"></font id="quote">
Да нещо подобно щеше да е, но вместо от фирмата да ми покажат подобен път те ми казват :
<blockquote id="quote"><font size="1" id="quote"><b id="quote">quote:</b id="quote"></font id="quote"><table border="0" id="quote"><tr id="quote"><td class="quote" id="quote"><font size="1" id="quote">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" - за това ми е питането.</td id="quote"></tr id="quote"></table id="quote"></blockquote id="quote"><font size="2" id="quote"></font id="quote">
-
cgi/perl help
Хубаво си постнал резултатите, ама те ти дават пътя до printenv. Идеята ми беше да пуснеш скриптчето от scr - така би ти дало пътя до там. Освен това - там, където си се мъчил да коригираш, според мен няма нужда от корекция...
-
cgi/perl help
Ок 10х ще пробвам и ще напиша какво е станало.
-
cgi/perl help
За съжаление скрипчето на Raid не ми помогна, защото при стартиране даде HTTP 500 - Internal Server Error. Всичко съм направил както трябва (Raid не забеляза нищо нередно, за това как съм процедирал със скрипт4ето). Нямам достъп до log-овете и съответно немога да видя каква грешка дава. Пробвах още 2 скрипта (евентуално да сменя този скрипт - не този на Raid) - ми искат си System Path и това си е[:(!].
Резултат -> Все още немога да намеря къде е този System Path до cgi дирикторията на тъпия сървър[}:)]
10x предварително на всеки, който може да ми даде някаква идея или предложение.
-
cgi/perl help
Ploblem SOLVED![^] (С 4-ият скрипт се получи[:D])