PDA

Visualizza la versione completa : problema funzionamento su windows server


jonny83
25-11-2005, 16:17
Ciao,
Ho dei perl script e devo caricarli nella cgi-bin di un server windows 2003,
(hosting su aruba)
Il problema che gli script sono stati creati per un linux.
quando lancio lo script sotto windows mi da il seguente errore:

CGI Error
The specified CGI application misbehaved by not returning a complete set of HTTP headers.

Da cosa causato?
Sotto linux lo script funzona correttamente.
Ho provato a cambiare l'intestazione del cgi ma non va lo stesso.
(da #!/usr/bin/perl a #!/usr/local/bin/perl).

Grazie Ciao!

shishii
25-11-2005, 18:06
su windows conta l'estensione del file e se alla stessa associato l'interprete.

jonny83
28-11-2005, 14:59
Originariamente inviato da shishii
su windows conta l'estensione del file e se alla stessa associato l'interprete.

L'estensione che utilizzo pl, ho fatto la prova con un perl script semplice. stampando una scritta e funziona.

Il problema forse sta allora nel codice?

shishii
28-11-2005, 20:41
Probabilmente allora lo script non restituisce una risposta http corretta.

In pratica uno script CGI deve sempre, prima di chiudere, inviare al server una risposta di questo tipo:

print "Content-type: text/html\n\n";
print "qualunque cosa";

jonny83
29-11-2005, 15:28
Originariamente inviato da shishii
Probabilmente allora lo script non restituisce una risposta http corretta.

In pratica uno script CGI deve sempre, prima di chiudere, inviare al server una risposta di questo tipo:

print "Content-type: text/html\n\n";
print "qualunque cosa";

Niente da fare.... pu essere una libreria che includo?

require "libreria.pl"


grazie

shishii
29-11-2005, 20:15
se si trattasse di quello il messaggio di errore dovrebbe essere diverso, comunque prova a mettere:

use lib "path directory in cui sta la libreria";
require "libreria.pl";

jonny83
30-11-2005, 10:40
Originariamente inviato da shishii
se si trattasse di quello il messaggio di errore dovrebbe essere diverso, comunque prova a mettere:

use lib "path directory in cui sta la libreria";
require "libreria.pl";

Ho commentato tutto lo script lasciando solo l'intestazione e la dichiarazione della libreria. non va, solito errore.

Poi ho commentato la libreria e l'errore non lo da pi.
Ho provato a lanciare la libreria singolarmente ma non da errori.

Ho utilizzato lo use lib con il path preso dalla variabile d'ambiente PATH_TRANSLATED giusto?

Ma non va lo stesso....
Il problema allora forse sta solo nel modo di includere una libreria?

shishii
30-11-2005, 19:16
Nel mio sistema PATH_TRANSLATED non c' quindi non so dirti.
Quello che devi inserire il path di sistema, se sei su windows una cosa tipo
use lib 'C:\directory\directory';

su linux
use lib "/usr/lib/ecc";

ovviamente devi indicare il percorso per raggiungere la tua libreria e senza l'indicazione della stessa.

jonny83
02-12-2005, 08:59
Originariamente inviato da shishii
Nel mio sistema PATH_TRANSLATED non c' quindi non so dirti.
Quello che devi inserire il path di sistema, se sei su windows una cosa tipo
use lib 'C:\directory\directory';

su linux
use lib "/usr/lib/ecc";

ovviamente devi indicare il percorso per raggiungere la tua libreria e senza l'indicazione della stessa.

Non funziona ancora... Ho inserito il path senza l'indicazione della libreria ma non va...

Loading