Forum Webscript.Ru
Программирование => Perl => Тема начата: Kipter от 15 Сентября 2005, 03:31:30
-
Пиплы плиз помогите новичку в данной технологии...
Вот скрипт:
#!/usr/bin/perl
use CGI;
use FCGI;
$CGI = new CGI;
while(FCGI::accept() >= 0) {
print $CGI->header(-expires=>\'now\');
$value = $CGI->param(\'value\');
print "Value: $value
\\n";
}
Почему я не получаю значение $value?
Если использовать без FastCGI то все пашет!
и еще 1 вопрос... Я поставил FastCGI, прикрутил к апачу так сказать его... и поставл чтобы фаилы .fpl запускались через FastCGI
так вот как сделать так, что бы фаилы .pl могли запусаться и в обычном режиме без FastCGI и с режимом FastCGI
AddHandler fastcgi-script .pl - так не пойдет... перестают работать скрипты в которых нет FastCGI
-
а вы воспользуйтесь поиском по этому форуму. ;) тут есть ответ на ваш вопрос и еще много чего интересного
-
так, поискал посатрел да действительно кое что есть.. и некоторые вопросы отпали и появились новые млин!
Только ПЛЗ помогите, по ahee я уже поискал такого на форуме нет да и в доках вроде тоже =(
1) FastCgiServer /путь к скрипту(полный!)/script.fcgi -listen-queue-depth 50 -processes 2 -idle-timeout 300 -flush
зачем мне при старте апача запускать свой script.fcgi? Что это дает?
Ведь например http://localhost/cgi-bin/scrip.fcgi тоже его запустит и будет все нор работать...
2) Как сделать такую фичу: в зависимости от случая и события (наприер от времени, от запроса пользователя и т д) один и тот же скрипт допустим test.pl мог бы запускаться и как с FastCGI так и без него?
Пример:
#!/usr/bin/perl
use CGI;
use FCGI;
$CGI = new CGI;
$tipstart = $CGI->param(\'tipstart\');
if($tipstart eq "nofast") {
&Main();
}
else {
while(FCGI::accept() >= 0){ &Main(); }
}
Я понимаю что FCGI потом будет весеть в памяти и еу по барабану что будет позже ему указано в типе tipstart но вот чисто для 1 запуска указать тип то можно иль нет?
-> в чем у меня проблема с этим... почему то не стартую простые скрипты pl если не подрубить FCGI к ним...
-
в настройках сервера пропишите для разных расширений свои обработчики:
AddHandler fastcgi-script .fcgi
AddHandler cgi-script .cgi .pl
fcgi будут работать, как FCGI. т.е. компилироваться и висеть в памяти (до останова/перезагрузки веб-сервера)
а .cgi .pl - будут работать, как обычные скрипты. т.е. при каждои вызове - компилироваться по новому
-
AnnA
нее! в том то и проблема!
Мне нужно чтобы 1 скрипт мог быть запущен как с FastCGI так и без FastCGI! например test.pl чтобы он мог быть запущен и так и так...
-
Создай симлинк.
man ln
-
Создай симлинк.
man ln
Мда, меня не поняи... вообщем есть 1 проект.
К которому подключаются массу модулей.
Проект написан на перле.
его частенько приходится переносить на разные компы, включая и те что на Win патформе.
Так вот работать он должен везде одинаково, но на некоторых машинах очень производительно, а FastCGI для такой цели очень даже подходит!
Но не везде есть FastCGI и не везде *nix платформа.
Ну так вот допустим основной скриптик называется index.pl к нему прикручиваются библиотеки, доп фаилы... и т д
И в зависимости например от строчке в фаиле conf.pl этот скрипт должен стартануть с FastCGI или без FastCGI!
conf.pl
$conf{\'FastCGI\'} = "no"; или $conf{\'FastCGI\'} = "yes";
Если сделать тобы все фаилы .pl этим модулем стартавали то скрипты которым не нужен FastCGI не будут работать =(
Конечно можете дать совет сделать 2 фаила index.pl и index.fpl где есть или нету FastCGI, но это очень плохая идея для меня которую придеся делать только уж в без выходном случае =(
А вопрос звучит так: Можно ли настроить FastCGI так, чтобы она не мешала обычным скриптам .pl которым не нужен FastCGI, и одновременно работала бы с фаилами .pl которым нужен FastCGI.
И возможна ли така настройка со стороны Perl скрипта?