2012-08-24 15 views
6

我有一個nginx服務器在debian wheezy上運行。我有工作OTRS安裝。但是,我們的老Perl的FCGI包裝與其他一些重要的過程interferring所以我們desided選擇fcgiwrap包http://www.haschmi.de/de/otrs/otrs-on-nginx.html使用fcgiwrap在nginx服務器上CGI回覆錯誤

所以我刪除了舊包裝,並安裝新的。老包裝有

fastcgi_pass 127.0.0.1:8999; 

和新

fastcgi_pass unix:/var/run/fcgiwrap.socket; 

下面是完整的配置

server { 
    listen ip:80; 

    server_name support.test.com; 

    root /opt/otrs/var/httpd/htdocs; 

    index index.html; 
    location /otrs-web { 
     gzip on; 
     alias /opt/otrs/var/httpd/htdocs; 
    } 

    location ~ ^/otrs/(.*\.pl)(/.*)?$ { 
    #try_files $uri =404; 
    gzip off; 
    fastcgi_pass unix:/var/run/fcgiwrap.socket; 
    fastcgi_index index.pl; 
    fastcgi_param SCRIPT_FILENAME /opt/otrs/bin/fcgi-bin/$1; 


    fastcgi_param QUERY_STRING $query_string; 
    fastcgi_param REQUEST_METHOD $request_method; 
    fastcgi_param CONTENT_TYPE $content_type; 
    fastcgi_param CONTENT_LENGTH $content_length; 
    fastcgi_param GATEWAY_INTERFACE CGI/1.1; 
    fastcgi_param SERVER_SOFTWARE nginx; 
    fastcgi_param SCRIPT_NAME $fastcgi_script_name; 
    fastcgi_param REQUEST_URI $request_uri; 
    fastcgi_param DOCUMENT_URI $document_uri; 
    fastcgi_param DOCUMENT_ROOT $document_root; 
    fastcgi_param SERVER_PROTOCOL $server_protocol; 
    fastcgi_param REMOTE_ADDR $remote_addr; 
    fastcgi_param REMOTE_PORT $remote_port; 
    fastcgi_param SERVER_ADDR $server_addr; 
    fastcgi_param SERVER_PORT $server_port; 
    fastcgi_param SERVER_NAME $server_name; 
    } 
} 

當我訪問我們的OTRS一切正常。但作爲兒子,我提交登錄表我得到

An error occurred while reading CGI reply (no response received) 

任何想法是什麼錯?我該如何解決這個問題?

+1

你檢查在錯誤的nginx錯誤日誌?新的fcgi包裝是與舊版本的用戶相同的用戶運行的,還是使用不同的用戶?如果用戶不同,那麼它可能是一個權限問題。 – 2012-09-02 14:43:35

+0

是同一個錯誤,同一個用戶。我們現在拒絕了他們的定製票務系統。 –

回答

7

當前Ubuntu代表(12.04)不包含正確的fcgiwrap版本。

您需要直接從https://github.com/gnosek/fcgiwrap編譯fcgiwrap並使用-f選項來運行包裝。這將導致err_log被重定向到服務器error.log。 要更改fcgiwrap啓動選項編輯/etc/init.d/fcgiwrap並取消/修改下面一行:

在此之後
DAEMON_OPTS="-f" 

重啓fcgiwrap:

service fcgiwrap restart 
+0

我不得不刪除舊版本。 ls -l $(找到fcgiwrap | grep bin) -rwxr-xr-x 1 root root 135483 Aug 8 20:43/usr/local/sbin/fcgiwrap -rwxr-xr-x 1 root root 19064 May 1 2011/usr/sbin/fcgiwrap mv/usr/sbin/fcgiwrap /usr/sbin/fcgiwrap.20110501 cp/usr/local/sbin/fcgiwrap/usr/sbin/fcgiwrap –