web-dev-qa-db-ja.com

Nginxfastcgiスプリットパス情報とmailman

私はnginxでmailmanを使用して、そのWebインターフェイスをこの私のnginx構成にしています:

_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

私はそれを機能させるために利用可能なすべての正規表現を試しましたが、それでもそれを機能させるための助けや手がかりを_403_に与えます。

3
eyadof

私も同じ問題を抱えていました。私はどこかで解決策を見つけます:ただコメントアウトしてください

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; }

今それは私のために働きます。

1
havasi