Назад | Перейти на главную страницу

Информация о разделении пути Nginx fastcgi с помощью mailman

Я использую mailman с nginx, чтобы получить его веб-интерфейс в этой моей конфигурации 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 любая помощь или любая подсказка, чтобы заставить его работать.

У меня такая же проблема. Я где-то нахожу решение: просто закомментируйте

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

Теперь у меня работает.