Newsgroup: it.comp.lang.perl
Titolo: script perl - problema di configurazione su apache

Uso Apache/1.3.22
i proghrammi cgi compilati nella directory cgi-bin funzionano egregiamente
ma non c'è verso di far andare gli script in perl.
Qui di seguito trovate la configurazione di apache:
-------
[cut]
ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
<IfModule mod_alias.c>
 <Directory "/var/www/cgi-bin">
 AllowOverride All
 Options +ExecCGI
 AddHandler cgi-script .cgi .pl
 <Limit GET POST>
 order deny,allow
 deny from none
 allow from all
 </Limit>
 </Directory>
</IfModule>
[cut]
-------
Lo script "
test.pl
" di esempio si trova nella dir cgi-bin/ e contiene:
-------
#!/usr/bin/perl
print "Content-type: text/html\n\n";
print "\n";
print 'perl version ' . $];
---------
ho dato a "
test.pl
" 755 come permissions
il comando shell "which perl" mi  da "/usr/bin/perl" quindi la shebang
all'inizio dello script è giusta
il comando shell "perl -c 
test.pl
" mi da "
test.pl
 syntax OK"
il comando shell " perl -w 
test.pl
" mi da "
Content-type: text/html
perl version 5.006" quindi  gli headers e lo script funzionano bene.
Quando lancio lo script da browser visualizzo il mitico "500 Internal server
error" ,
Il contenuto degli error_log è il seguente
[Sun Sep  8 16:58:01 2002] [error] (2)No such file or directory: exec of
/var/www/cgi-bin/
test.pl
 failed
[Sun Sep  8 16:58:01 2002] [error] [client xxx.xxx.xxx.xxx] Premature end of
script headers: /var/www/cgi-bin/
test.pl
Grazie infinite del vostro tempo

 /var/www/cgi-bin/
test.pl
 failed
Ecco un'iptesi compatibile con gli elementi a mia disposizione.
Hai trasferito lo script da un sistema Windows via FTP in modalità
'binary'. In fondo alla shebang è, pertanto, rimasto un CR che viene a
questo punto trattato come parte del path dell'interprete.
Max

 ha scritto nel messaggio
news:Pine.LNX.4.21.02090...@localhost.localdomain...

magari !!!! ma non è così

 magari !!!! ma non è così
E se provi a invocarlo dalle shell specificando soltanto il percorso del
file (senza cioè chiamare esplicitamente perl), che accade?
Max

 ha scritto nel messaggio
news:Pine.LNX.4.21.02090...@localhost.localdomain...

# 
test.pl
bash: 
test.pl
: command not found

 bash: 
test.pl
: command not found
No, usa un "percorso", non il semplice "nome". Quindi:
 
   /var/www/cgi-bin/
test.pl
oppure, se sei nella stessa directory:
   ./
test.pl
Max


eh.. ottengo lo stesso risultato!

 eh.. ottengo lo stesso risultato!
Bene. Allora vediamo un po' di scoprire dov'è l'inghippo. Esegui questi
comandi, tanto per cominciare.
 ls -l /var/www/cgi-bin/
test.pl
 head -2 /var/www/cgi-bin/
test.pl
 | hexdump -c
Max

  head -2 /var/www/cgi-bin/
test.pl
 | hexdump -c
0000000   #   !   /   u   s   r   /   b   i   n   /   p   e   r   l  \r
0000010  \n  \r  \n
0000013
ma comunque io sono sempre + convinto che ci sia qualcosa di sbagliato nella
configurazione httpd.conf di apache.
questo script l'ho caricato anche su un altro server e va bene.

 nella configurazione httpd.conf di apache.
Lo vedi quel '\r' dopo la 'l' di "perl"? Ecco, quello č il CR di cui
parlavo nel mio primo messaggio. Il problema č lě.
Max


GRAZIE!!!!!!!!!!!!!!!!!!!!!!!!!!!!
sono stato proprio un coglione
fa te che stavo pensando di ricompilare apache!
a buon rendere ... grazie ancora
ciao
Stefano