我用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; }
现在它适用于我。