PDA

Visualizza la versione completa : script in perl


alexvi
24-08-2005, 23:18
CIAO RAGA HO DEI PROBLEMI CON UNO SCRIPT IN PERL.. LO METTO APPUNTO NELLA CARTELLA CGI-BIN SOTTO LINUX HO INOLTRATO TUTTI I FILE TRAMITE FTP CON UN TRASFERIMENTO AUTOMATICO (ASCII / BINARIO) MA NIENTE MI RISTITUISCE SEMPRE LO STESSO ERRORE:

Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator, postmaster@XXXX.IT and inform them of the time the error occurred, and anything you might have done that may have caused the error.

More information about this error may be available in the server error log.

Qual'è può essere il motivo? Provando ad effettuare altre installazioni con altri script il problema resta sempre... secondo voi cosa può essere??!

grazie mille delle risposte

Mich_
25-08-2005, 10:35
Non dai informazioni sufficienti.

La causa e` scritta nel file di log degli errori del tuo server (di solito si chiama error.log). Se hai accesso a tale file, quando si presenta l'errore vai a controllare le ultime righe di tale file e vedi cosa c'e` scritto.

Altrimenti devi metterti d'accordo con l'amministratore del server che lo legga per te.

alexvi
25-08-2005, 17:38
Mi da sempre e sempre per ogni file taluno errore:

[2005-08-25 09:33:14]: error: directory is writable by others: (/home/nomesito/public_html/cgi-bin)

alexvi
25-08-2005, 17:44
Quindi ho cambiato i permessi alla cartella e adesso mi compare l'errore proprio nel file stesso che provo ad aprire:

[2005-08-25 09:40:05]: error: file has no execute permission: (/home/nomesito/public_html/cgi-bin/admin.cgi)

Mich_
25-08-2005, 17:49
controlla che il file sia eseguibile da parte di "others" (la x del terzo gruppo di permessi).

E controlla che la prima riga del file contenga il link all'interprete.

alexvi
25-08-2005, 17:56
L'interprete eccolo qui:
#!/usr/bin/perl

Non capisco quelli sotto però...
#!/usr/bin/perl
#use strict;
#use warnings;
use LWP::Simple;
use lib 'modules';
use conf;
use Image::Size;

Comunque quando metto i permessi su 755 Error Log non si presenta più però resta sempre l'errore del server.

Mich_
25-08-2005, 18:24
Ma quel path e` corretto? Cioe` esiste in /usr/bin un file eseguibile che si chiama perl?
Prova da linea di comando a scrivere:
ls /usr/bin/perl

(molte volte il path corretto e` /usr/sbin/perl )

Oppure prova a scrivere:
which perl
e vedi cosa risponde il sistema.

use strict
vuol dire che non puoi prenderti una serie di liberta` che nel Perl standard potevi fare: e` una buona cosa lasciarlo

use warnings
Se il sistema incontra un warning lo segnala (e credo si fermi)

Pero` le righe sono commentate, per cui non vengono usati strict e warnings. Quando inizia a funzionare, togli i commenti.

Le altre righe servono per collegare dei moduli che verosimilmente servono per l'interpretazione di alcune parti dello script.


Vedi anche il sito di shishii: alcuni dei problemi da te evidenziati sono trattati esaurientemente.

shishii
25-08-2005, 20:07
su molti server devi settare tutte le directory dentro la cgi-bin (compresa) con chmod 755 e *NON* 775 o 777.

Invece gli script vanno a 755.

Loading