🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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
#52215
Author: Mateusz Szczyrzyca
Date: Wed, 18 May 2011 10:17
63 lines
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
#52216
Author: hubert depesz lubaczewski
Date: Wed, 18 May 2011 10:54
35 lines
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
#52217
Author: Adam Osuchowski
Date: Wed, 18 May 2011 11:27
21 lines
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
#52218
Author: Mateusz Szczyrzyca
Date: Wed, 18 May 2011 19:00
34 lines
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