2010-06-13 8 views
0

J'ai un script cgi travailler sur mon localhost (ubuntu 10.04), juste en les laissant tomber dans/usr/lib/cgi-binétrange erreur CGI

mais ... dans la production (ubuntu 10.04) ils courent jamais:

Apache error.log:

[Sun Jun 13 13:13:58 2010] [error] (2)No such file or directory: exec of '/var/www/cgi-bin/tbk_bp_resultado.cgi' failed 
[Sun Jun 13 13:13:58 2010] [error] [client 190.161.196.57] Premature end of script headers: tbk_bp_resultado.cgi 

Je vérifie les autorisations et ne semble pas être le problème:

drwsrwsrwx 2 root root 4096 Jun 12 19:54 datos 
-rwxrwxrwx 1 root root  76 Jun 13 02:13 erf.cgi 
drwsrwsrwx 2 root root 4096 Oct 2 2008 log 
drwsrwsrwx 2 root root 4096 Jun 12 19:54 maestros 
-rwxrwxrwx 1 root root 1282027 Sep 16 2008 tbk_bp_pago.cgi 
-rwxrwxrwx 1 root root 1280404 Sep 16 2008 tbk_bp_resultado.cgi 
-rwxrwxrwx 1 root root 1275985 Sep 16 2008 tbk_check_mac.cgi 
drwsrwsrwx 2 root root 4096 Jun 12 19:54 template 

Dans mon localhost je ne pas avoir à faire quoi que ce soit pour travailler, mais dans la production je dois ajouter dans mon apache conf:

ScriptAlias /cgi-bin/ /var/www/cgi-bin/ 

<Directory /var/www/cgi-bin> 
     Options +ExecCGI 
</Directory> 

AddHandler cgi-script .cgi .pl 

= (merci.

+0

Essayez d'ajouter cela au fichier httpd.conf au lieu de apache.conf – Julen

Répondre

1

Essayez d'installer ia32-libs. J'ai eu le même problème parce que mon ubuntu est une version 64 bits et le kcc est compilé pour une utilisation 32 bits.

0

Hummm J'ai eu le même problème, je fixe le téléchargement * .cgi en mode binaire avec

0

tout d'abord je voudrais aborder la raison pour laquelle cgi travaille localement et non sur le serveur, comme vous l'avez :

J'ai un script cgi travailler sur mon localhost (ubuntu 10.04), juste en les laissant tomber dans/usr/lib/cgi-bin

Il y a une chose importante que vous ne voyez pas ici; Configuration par défaut d'Apache. Si vous allez à /etc/apache2/sites-enabled/000-default et vérifier son contenu, vous verrez les éléments suivants:

ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ 
<Directory "/usr/lib/cgi-bin"> 
    AllowOverride None 
    Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch 
    Order allow,deny 
    Allow from all 
</Directory> 

qui est le même que vous incluez sur le serveur pour utiliser un autre chemin /var/www/cgi-bin/

Si vous prenez de votre cgi et les mettre à l'intérieur /usr/lib/cgi-bin/ sur le serveur, ils vont travailler hors de la boîte, comme prévu.

Maintenant ... quant à l'erreur, les deux réponses données jusqu'ici par user689374 et JosephCastro sont correctes. Les scripts cgi Transbank sont des applications 32 bits, donc, pour fonctionner sur des environnements 64 bits, ils doivent avoir ia32-libs, ET, ils cassent s'ils ne sont pas téléchargés en mode binaire, car ils ont des caractères étranges qui sont supprimés ou modifiés s'ils sont téléchargés façon. Vous pouvez utiliser Filezilla et changer le mode de transfert en binaire.

espoir que cela vous aide et toute autre personne strugling avec TRANSBANK ... c'est vraiment une douleur ...

EDIT:

Juste realiced ​​c'est une question de 2 ans ... eh bien .. . encore. Il y a si peu d'informations sur ce sujet particulier que je vais laisser ici de toute façon: D