Nginx的fastcgi分裂与邮递员的path信息

我用nginx使用mailman来获得它的web界面,这是我的nginxconfiguration:

location /cgi-bin/mailman { root /usr/lib/; fastcgi_split_path_info (/cgi-bin/mailman[^/]*)/(.*)$; include /etc/nginx/fastcgi_params; fastcgi_param SCRIPT_FILENAME $fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_param PATH_TRANSLATED $fastcgi_path_info; fastcgi_intercept_errors on; fastcgi_pass unix:/var/run/fcgiwrap.socket; } 

当我打电话到mydomain.com/cgi-bin/mailman/listinfo ,似乎工作得很好,但是当我要求类似于: mydomain.com/cgi-bin/mailman/listinfo/mylist我得到403和在nginx错误日志:

FastCGI sent in stderr: "Cannot chdir to script directory (/usr/lib/cgi-bin/mailman/listinfo)" while reading response header from upstream

我尝试了每一个正则expression式来获得它的工作,但它仍然给予任何帮助或任何线索得到它的工作。

我有同样的问题。 我find了一个解决scheme:只是注释掉

 fastcgi_param SCRIPT_FILENAME $request_filename; 

/etc/nginx/fastcgi_params 。 它的工作原理,但我认为更好的不要注释掉这一行,只是交换包含这个文件的顺序,并定义自己的SCRIPT_FILENAME:

 location /cgi-bin/mailman { root /usr/lib/; fastcgi_split_path_info (/cgi-bin/mailman[^/]*)/(.*)$; fastcgi_param SCRIPT_FILENAME $fastcgi_script_name; include /etc/nginx/fastcgi_params; fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_param PATH_TRANSLATED $fastcgi_path_info; fastcgi_intercept_errors on; fastcgi_pass unix:/var/run/fcgiwrap.socket; } 

现在它适用于我。