Visualizzazione risultati 1 fino 7 di 7

Discussione: Configurare Apache + FastCGI su Windows

  1. #1
    L'avatar di andreafallico
    andreafallico non è connesso Super Moderatore
    Data registrazione
    02-06-2009
    Messaggi
    1,981

    Predefinito Configurare Apache + FastCGI su Windows

    Non riesco a configurare i moduli mod_fcgid o mod_fastcgi con windows.
    Ho provato questo codice:
    Codice:
    #!/server/perl/perl/bin/perl -w
    
    use CGI;
    use FCGI;
    use strict;
    
    my $count = 0;
    my $lives = 10;
    my $request = FCGI::Request();
    while($request->Accept() >= 0){
    	my $cgi = new CGI;
    	
    	print $cgi->header();
    	print $cgi->start_html('FCGI');
    	print "Process ID: $$; Count is: ", ++$count;
    	print $cgi->end_html();
    	
    	last unless $lives--;
    }
    
    exit 0;
    e ricevo errore 500.
    Con mod_fastcgi ricevo:
    [warn] FastCGI: (dynamic) server "C:/server/fcgi-bin/print5.fpl" started (pid 920)
    [warn] FastCGI: (dynamic) server "C:/server/fcgi-bin/print5.fpl" (pid 920) terminated with exit with status '0'
    [error] [client 127.0.0.1] (OS 109)Pipe terminata. : FastCGI: comm with server "C:/server/fcgi-bin/print5.fpl" aborted: GetOverlappedResult() failed
    [error] [client 127.0.0.1] FastCGI: incomplete headers (0 bytes) received from server "C:/server/fcgi-bin/print5.fpl"


    [warn] FastCGI: (dynamic) server "C:/server/fcgi-bin/print5.fpl" restarted (pid 2076)
    [warn] FastCGI: (dynamic) server "C:/server/fcgi-bin/print5.fpl" (pid 2076) terminated with exit with status '0'
    [warn] FastCGI: (dynamic) server "C:/server/fcgi-bin/print5.fpl" restarted (pid 3580)
    [warn] FastCGI: (dynamic) server "C:/server/fcgi-bin/print5.fpl" (pid 3580) terminated with exit with status '0'
    [warn] FastCGI: (dynamic) server "C:/server/fcgi-bin/print5.fpl" restarted (pid 4048)
    [warn] FastCGI: (dynamic) server "C:/server/fcgi-bin/print5.fpl" (pid 4048) terminated with exit with status '0'
    [warn] FastCGI: (dynamic) server "C:/server/fcgi-bin/print5.fpl" restarted (pid 2428)
    [error] [client 127.0.0.1] (OS 109)Pipe terminata. : FastCGI: comm with server "C:/server/fcgi-bin/print5.fpl" aborted: GetOverlappedResult() failed
    [error] [client 127.0.0.1] FastCGI: incomplete headers (0 bytes) received from server "C:/server/fcgi-bin/print5.fpl"
    [warn] FastCGI: (dynamic) server "C:/server/fcgi-bin/print5.fpl" (pid 2428) terminated with exit with status '0'
    con mod_fcgid ricevo:
    [info] mod_fcgid: server localhost:/server/perl/perl/bin/perl.exe(1980) started
    [warn] [client 127.0.0.1] (OS 109)Pipe terminata. : mod_fcgid: get overlap result error
    [error] [client 127.0.0.1] Premature end of script headers: print5.fpl
    [info] mod_fcgid: server localhost:/server/perl/perl/bin/perl.exe(916) started
    [info] mod_fcgid: process /server/perl/perl/bin/perl.exe(1980) exit(communication error), return code 9
    [warn] [client 127.0.0.1] (OS 109)Pipe terminata. : mod_fcgid: get overlap result error
    [error] [client 127.0.0.1] Premature end of script headers: print5.fpl
    Apache è in ascolto sulla porta 8080 e nginx sulla 80 come reverse proxy, il file httpd.conf:
    Codice:
    LogLevel debug
    <LocationMatch /f?cgi-bin>
    	Options ExecCGI
    </LocationMatch>
    
    <IfModule alias_module>
    	Alias /cgi-bin /server/cgi-bin/
    	Alias /fcgi-bin /server/fcgi-bin/
    </IfModule>
    
    <IfModule mime_module>
    	<IfModule fcgid_module>
    		AddHandler fcgid-script .fcgi .fpl .fpy
    	</IfModule>
    	<IfModule fastcgi_module>
    		AddHandler fastcgi-script .fcgi .fpl .fpy
    	</IfModule>
    	AddHandler cgi-script .cgi .lua .pl .py .rb .sh .exe .bat
    </IfModule>
    
    <IfModule fcgid_module>
    	FcgidConnectTimeout 8
    	FcgidWrapper /server/python/python.exe .fpy
    	FcgidWrapper /server/perl/perl/bin/perl.exe .fpl
    </IfModule>
    
    <IfModule fastcgi_module>
    	FastCgiConfig -restart -restart-delay 10 -maxprocesses 5
    </IfModule>
    Ultima modifica di andreafallico : 20-09-2011 alle ore 00.38.51

  2. #2
    L'avatar di saitfainder
    saitfainder non è connesso Sëniör Stäff
    Data registrazione
    06-12-2002
    Residenza
    Torino
    Messaggi
    8,715

    Predefinito

    Almeno per quanto riguarda mod_fastcgi non manca la definizione FastCgiServer con cui indichi il server FastCGI con cui servire le richieste?

    Codice:
    FastCgiServer c:/server/fcgi-bin/print5.fpl


    «È una mia peculiarità distorcere la verità e inventarne di nuove.»
    «I tuoi orientamenti hanno su di me un effetto prossimo allo zero.»


  3. #3
    L'avatar di andreafallico
    andreafallico non è connesso Super Moderatore
    Data registrazione
    02-06-2009
    Messaggi
    1,981

    Predefinito

    Utilizzo gli script dinamici: http://books.google.it/books?id=_uE-...astcgi&f=false (Pagina 297)

    Ma almeno il codice perl (print5.fpl) è giusto?

  4. #4
    L'avatar di saitfainder
    saitfainder non è connesso Sëniör Stäff
    Data registrazione
    06-12-2002
    Residenza
    Torino
    Messaggi
    8,715

    Predefinito

    Ho provato la tua configurazione e il tuo script con mod_fastcgi su Linux e ho visto che funziona tutto perfettamente.

    Nel tuo log degli errori sembrerebbe che lo script non rimane nel loop per l'Accept che restituisce direttamente -1, quindi un problema del modulo in quell'ambiente. GetOverlappedResult farebbe pensare ad un problema nella gestione delle pipe.


    «È una mia peculiarità distorcere la verità e inventarne di nuove.»
    «I tuoi orientamenti hanno su di me un effetto prossimo allo zero.»


  5. #5
    L'avatar di andreafallico
    andreafallico non è connesso Super Moderatore
    Data registrazione
    02-06-2009
    Messaggi
    1,981

    Thumbs up

    Citazione Originalmente inviato da saitfainder Visualizza messaggio
    Nel tuo log degli errori sembrerebbe che lo script non rimane nel loop per l'Accept che restituisce direttamente -1, quindi un problema del modulo in quell'ambiente.
    Finalmente hai trovato il colpevole, ho provato ad eseguire php come fastcgi e funziona perfettamente.

  6. #6
    L'avatar di saitfainder
    saitfainder non è connesso Sëniör Stäff
    Data registrazione
    06-12-2002
    Residenza
    Torino
    Messaggi
    8,715

    Predefinito

    Quindi PHP sì e Perl no?


    «È una mia peculiarità distorcere la verità e inventarne di nuove.»
    «I tuoi orientamenti hanno su di me un effetto prossimo allo zero.»


  7. #7
    L'avatar di andreafallico
    andreafallico non è connesso Super Moderatore
    Data registrazione
    02-06-2009
    Messaggi
    1,981

    Predefinito

    Forse il modulo FCGI non è configurato bene, utilizzo la versione portable di Strawberry Perl:
    How to use Strawberry Perl Portable?
    ------------------------------------

    * Extract strawberry portable ZIP into e.g. c:\......\
    Note: choose a directory name without spaces and non us-ascii characters

    * Launch c:\.....\portableshell.bat - it should open a command prompt window

    * In the command prompt window you can:

    1. run any perl script by launching

    c:\> perl c:\path\to\script.pl

    2. install additional perl modules (libraries) from http://www.cpan.org/ by

    c:\> cpan Module::Name

    3. run other tools included in strawberry like: perldoc, gcc, dmake ...

    * If you want to use Strawberry Perl Portable not only from portableshell.bat,
    you need to set the following environmental variables:

    1. add c:\.....\perl\site\bin, c:\.....\perl\bin, and c:\.......\c\bin
    to PATH variable

    2. set variable TERM=dumb
    Ho lanciato il comando cpan, poi ho lanciato il comando instmodsh ed il modulo è presente nella lista.
    I file del modulo sono:
    C:\server\perl\perl\site\lib\auto\FCGI\FCGI.bs
    C:\server\perl\perl\site\lib\auto\FCGI\FCGI.dll
    C:\server\perl\perl\site\lib\FCGI.pm
    e ho aggiunto la cartella C:\server\perl\perl\site\lib\auto\FCGI\ al path di sistema.

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •