Thread View: pl.comp.lang.perl
4 messages
4 total messages
Started by Mateusz Szczyrzyca
Wed, 18 May 2011 10:17
fast-cgi, perl i obiekty
Author: Mateusz Szczyrzyca
Date: Wed, 18 May 2011 10:17
Date: Wed, 18 May 2011 10:17
63 lines
2855 bytes
2855 bytes
Witam,
Zapragnąłem się zabawić w coś stylu mod_perl, ale pod lighttpd.
Oczywiście natrafiłem na pewien problem z tym skryptem startującym:
/-- dispatch.fcgi
#!/usr/bin/perl -w
use strict;
use warnings;
use CGI::Fast();
while (my $q = new CGI::Fast)
{
# Tutaj cos
}
\--
I mam tu pewien problem - nie wiem czy dobrze zrozumiałem filozofie
fast-cgi tutaj, ale zachciało mi się swoich paczek w tym wszystkim.
I tak, po dodaniu w kodzie w dispatch.fcgi:
/--
use Paczka; # jest plik z klasą Paczka.pm
\--
fast-cgi kładzie się na łopatki. Wyciąg z loga:
/--
2011-05-18 11:55:39: (mod_fastcgi.c.1104) the fastcgi-backend /usr/bin/perl /home/www/suzi/dispatch.fcgi failed to start:
2011-05-18 11:55:39: (mod_fastcgi.c.1108) child exited with status 2 /usr/bin/perl /home/www/suzi/dispatch.fcgi
2011-05-18 11:55:39: (mod_fastcgi.c.1111) If you're trying to run your app as a FastCGI backend, make sure you're using the FastCGI-enabled version.
If this is PHP on Gentoo, add 'fastcgi' to the USE flags.
2011-05-18 11:55:39: (mod_fastcgi.c.1399) [ERROR]: spawning fcgi failed.
2011-05-18 11:55:39: (server.c.938) Configuration of plugins failed. Going down.
\--
Konfiguracja lighttpd:
/--
fastcgi.server = (
".pl" =>
( "localhost" =>
(
"min-procs" => 3,
"max-procs" => 3,
"socket" => "/tmp/fastcgi.perl",
"bin-path" => "/usr/bin/perl /home/www/suzi/dispatch.fcgi"
)
)
)
\--
Gdy ten dispatch.fcgi jest odpalony ,,ręcznie'' z lini poleceń wszystko
działa jak powinno (komunikat wyświetla z metod w Paczka.pm)
Po prostu chciałem sobie zrobić aplikację w perlu, ale z użyciem swoich
modułów, tylko po samym use MójModuł się wywala już. Co robię źle? W sieci
jest sporo przykładów tego typu skryptów, ale nie znalazłem z osobnymi
modułami i klasami.
Re: fast-cgi, perl i obiekty
Author: hubert depesz lubaczewski
Date: Wed, 18 May 2011 10:54
Date: Wed, 18 May 2011 10:54
35 lines
1806 bytes
1806 bytes
On 2011-05-18, Mateusz Szczyrzyca <mateusz@annihitek.net> wrote:
> /--
> fastcgi.server = (
> ".pl" =>
> ( "localhost" =>
> (
> "min-procs" => 3,
> "max-procs" => 3,
> "socket" => "/tmp/fastcgi.perl",
> "bin-path" => "/usr/bin/perl /home/www/suzi/dispatch.fcgi"
> )
> )
> )
> \--
>
> Gdy ten dispatch.fcgi jest odpalony ,,ręcznie'' z lini poleceń wszystko
> działa jak powinno (komunikat wyświetla z metod w Paczka.pm)
>
> Po prostu chciałem sobie zrobić aplikację w perlu, ale z użyciem swoich
> modułów, tylko po samym use MójModuł się wywala już. Co robię źle? W sieci
> jest sporo przykładów tego typu skryptów, ale nie znalazłem z osobnymi
> modułami i klasami.
zrób:
cd /tmp
/usr/bin/perl /home/www/suzi/dispatch.fcgi
jaki jest efekt?
depesz
--
The best thing about modern society is how easy it is to avoid contact with it.
http://depesz.com/
Re: fast-cgi, perl i obiekty
Author: Adam Osuchowski
Date: Wed, 18 May 2011 11:27
Date: Wed, 18 May 2011 11:27
21 lines
1739 bytes
1739 bytes
Mateusz Szczyrzyca wrote:
> Gdy ten dispatch.fcgi jest odpalony ,,ręcznie'' z lini poleceń wszystko
> działa jak powinno (komunikat wyświetla z metod w Paczka.pm)
>
> Po prostu chciałem sobie zrobić aplikację w perlu, ale z użyciem swoich
> modułów, tylko po samym use MójModuł się wywala już. Co robię źle? W sieci
> jest sporo przykładów tego typu skryptów, ale nie znalazłem z osobnymi
> modułami i klasami.
A masz gdzieś log z tym co perl wypisuje na stderr? Gdzieś to powinno
lądować, pewnie lighty zapisuje to w jakimś pliku.
Moje pierwsze podejrzenie jest takie, że plik Paczka.pm masz w katalogu
bieżącym w którym uruchamiasz skrypt z palca, natomiast process manager
lighty'ego uruchamia go w innym katalogu i dlatego nie może go znaleźć.
Dołóż na początku skryptu (przed ,,use Paczka'') taką linię:
BEGIN { unshift @INC, "/sciezka/do/katalogu/z/paczka"}
i zobacz czy to pomoże.
Re: fast-cgi, perl i obiekty
Author: Mateusz Szczyrzyca
Date: Wed, 18 May 2011 19:00
Date: Wed, 18 May 2011 19:00
34 lines
2273 bytes
2273 bytes
Dnia 18.05.2011 Adam Osuchowski <someone@somewhere.com> napisał/a:
> Mateusz Szczyrzyca wrote:
>> Gdy ten dispatch.fcgi jest odpalony ,,ręcznie'' z lini poleceń wszystko
>> działa jak powinno (komunikat wyświetla z metod w Paczka.pm)
>>
>> Po prostu chciałem sobie zrobić aplikację w perlu, ale z użyciem swoich
>> modułów, tylko po samym use MójModuł się wywala już. Co robię źle? W sieci
>> jest sporo przykładów tego typu skryptów, ale nie znalazłem z osobnymi
>> modułami i klasami.
>
> A masz gdzieś log z tym co perl wypisuje na stderr? Gdzieś to powinno
> lądować, pewnie lighty zapisuje to w jakimś pliku.
>
> Moje pierwsze podejrzenie jest takie, że plik Paczka.pm masz w katalogu
> bieżącym w którym uruchamiasz skrypt z palca, natomiast process manager
> lighty'ego uruchamia go w innym katalogu i dlatego nie może go znaleźć.
>
> Dołóż na początku skryptu (przed ,,use Paczka'') taką linię:
>
> BEGIN { unshift @INC, "/sciezka/do/katalogu/z/paczka"}
Witaj,
Nie pomogło, ale naprowadziłeś mnie na rozwiązanie - problem faktycznie tu
leżał, bo w katalogu z modułami dystrybucyjnymi go zobaczył i się nie kładł
Rozwiązałem więc problem dodając w konfiguracji fast-cgi w lighttpd.
/--
bin-environment" => ( "PERL5LIB" => "/home/www/suzi/" ),
\--
Także teraz chodzi, zatem dzięki.
Pozdrawiam,
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads