我有一个在debian wheezy上运行的nginx服务器.我有工作OTRS安装.但是我们旧的perl-fcgi包装器干扰了其他一些重要的过程,所以我们决定选择fcgiwrap包:http://www.haschmi.de/de/otrs/otrs-on-nginx.html
所以我删除了旧的包装器并安装了新的包装器.旧包装有了
fastcgi_pass 127.0.0.1:8999;
Run Code Online (Sandbox Code Playgroud)
和新的
fastcgi_pass unix:/var/run/fcgiwrap.socket;
Run Code Online (Sandbox Code Playgroud)
这是完整的配置
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;
}
}
Run Code Online (Sandbox Code Playgroud)
当我访问我们的OTRS时,一切正常.但作为儿子,我提交了登录表单
An error occurred while reading CGI reply (no response received)
Run Code Online (Sandbox Code Playgroud)
有什么想法有什么不对?我怎么解决这个问题?
当前的Ubuntu代表(12.04)不包含正确的fcgiwrap版本.
您需要直接从https://github.com/gnosek/fcgiwrap编译fcgiwrap 并使用-f选项来运行包装器.这将导致err_log被重定向到服务器error.log.要更改fcgiwrap启动选项,请编辑/etc/init.d/fcgiwrap并取消注释/修改以下行:
DAEMON_OPTS="-f"
Run Code Online (Sandbox Code Playgroud)
在此之后重新启动fcgiwrap:
service fcgiwrap restart
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8521 次 |
| 最近记录: |