2010-06-13 58 views
0

我有一個CGI腳本在我的本地(Ubuntu的10.04)的工作只是通過拖放到/ usr/lib目錄/ cgi-bin目錄怪異CGI錯誤

但是......在生產(Ubuntu的10.04),他們從來沒有運行:

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 

我檢查權限和似乎並沒有被這個問題:

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 

在我的本地我沒有爲了工作做任何事情,但在生產中我要補充這在我的Apache的conf:

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

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

AddHandler cgi-script .cgi .pl 

=(感謝。

+0

嘗試將其添加到httpd.conf文件而不是apache.conf – Julen 2011-03-24 12:54:40

回答

1

嘗試安裝ia32-libs。我有同樣的問題,因爲我的Ubuntu是一個64位版本和KCC編譯爲32位使用。

0

嗯我有同樣的問題,我固定在上傳二進制模式*的CGI與

0

首先,我想解釋爲何CGI本地工作,而不是在服務器上的原因,因爲你的狀態:

我有一個CGI腳本在我的本地(Ubuntu的10.04)的工作只是通過拖放到/ usr/lib目錄/ cgi-bin目錄

有你在這裏沒有看到一個重大的事情; Apache默認配置。如果你去/etc/apache2/sites-enabled/000-default並檢查它的內容,你會看到以下內容:

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> 

這是要包括的服務器上。如果你把你的CGI的使用另一種路徑/var/www/cgi-bin/

,並把它們同如預期的那樣,服務器內部的/usr/lib/cgi-bin/它們將開箱即用。

現在...至於錯誤,到目前爲止由user689374JosephCastro給出的兩個回答都是正確的。 Transbank cgi腳本是32位應用程序,因此,要在64位環境中運行,它們需要具有ia32-libs,AND,如果未以二進制模式上傳,它們會中斷,因爲它們有一些奇怪的字符,如果上載其他字符時會被刪除或更改辦法。您可以使用Filezilla並將傳輸模式更改爲二進制。

希望這有助於你和其他人與transbank strugling ......這真是一個痛苦...

編輯:

只是realiced這是一個2歲多的問題...好..仍然。有關此特定主題的信息很少,因此無論如何我都會將其留在此處:D