Opened 13 years ago

Closed 13 years ago

Last modified 13 years ago

#17 closed defect (invalid)

nginx fail to set 'fastcgi_param PATH_INFO' (mailman+fcgicrap)

Reported by: Ludovic Bellière Owned by: somebody
Priority: major Milestone:
Component: nginx-module Version: 1.0.x
Keywords: Cc:
uname -a: Linux grumbar.xrogaan.be 2.6.38.2-grsec-xxxx-grs-ipv6-64 #1 SMP Fri Apr 15 17:44:15 UTC 2011 x86_64 GNU/Linux
nginx -V: nginx: nginx version: nginx/1.0.6
nginx: TLS SNI support enabled
nginx: configure arguments: --prefix=/etc/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-client-body-temp-path=/var/lib/nginx/body --http-fastcgi-temp-path=/var/lib/nginx/fastcgi --http-log-path=/var/log/nginx/access.log --http-proxy-temp-path=/var/lib/nginx/proxy --http-scgi-temp-path=/var/lib/nginx/scgi --http-uwsgi-temp-path=/var/lib/nginx/uwsgi --lock-path=/var/lock/nginx.lock --pid-path=/var/run/nginx.pid --with-debug --with-http_addition_module --with-http_dav_module --with-http_geoip_module --with-http_gzip_static_module --with-http_image_filter_module --with-http_realip_module --with-http_stub_status_module --with-http_ssl_module --with-http_sub_module --with-http_xslt_module --with-ipv6 --with-sha1=/usr/include/openssl --with-md5=/usr/include/openssl --with-mail --with-mail_ssl_module --add-module=/usr/src/nginx/source/nginx-1.0.6/debian/modules/nginx-echo --add-module=/usr/src/nginx/source/nginx-1.0.6/debian/modules/nginx-upstream-fair --add-module=/usr/src/nginx/source/nginx-1.0.6/debian/modules/nginx-syslog

Description

I was following the http://wiki.nginx.org/Mailman tutorial to use mailman with nginx. However, it didn't seems to works for me. Here are the basics informations, that could also be gathered in the mailman thread linked in this ticket.

nginx seems to not be able to set the PATH_INFO environment variable and by thus mailman can't detect the list it needs to works with.

I tried to use arbitrary string instead of a nginx variable, but that didn't work either.

So, for some reason unknown to me, nginx seems to fail at its job. There is nothing that could help finding the issue: nothing in the logs, or anywhere else.

You'll find a printenv script, gathered from the mailman-users thread, that I used to see if the variable was set.

Informations related: http://mail.python.org/pipermail/mailman-users/2010-September/070268.html

My config look like this:

server {
        server_name lists.xrogaan.be;
        root /usr/lib/cgi-bin;
        gzip off;

        location = / {
                rewrite ^ /mailman/listinfo permanent;
        }

        location / {
                rewrite ^ /mailman$uri;
        }

        location /mailman {
                fastcgi_split_path_info (^/mailman/[^/]*)(.*)$;
                include fastcgi_params;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                fastcgi_param PATH_INFO $fastcgi_path_info;
                fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
                fastcgi_intercept_errors on;
                fastcgi_pass  unix:/var/run/fcgiwrap.socket;
        }

        location /images/mailman {
                alias /var/lib/mailman/icons;
        }

        location /pipermail {
                alias /var/lib/mailman/archives/public;
                autoindex on;
        }
}

Attachments (1)

printenv (222 bytes ) - added by Ludovic Bellière 13 years ago.
to be placed in /usr/lib/cgi-bin/mailman

Download all attachments as: .zip

Change History (3)

by Ludovic Bellière, 13 years ago

Attachment: printenv added

to be placed in /usr/lib/cgi-bin/mailman

comment:1 by Sergey Budnevitch, 13 years ago

Resolution: invalid
Status: newclosed
  • fastcgi_split_path_info works as documented. PATH_INFO is not unset, it is empty because second part of regex (^/mailman/[^/]*)(.*)$ return empty string. If you place printenv in mailman dir and request somehost/mailman/printenv/id=1, then PATH_INFO will be equals to id=1
  • nginx part of mailman with fcgiwrap and nginx is correct, since we run mailman with similar config
  • If you unsure, please ask maillist nginx at nginx.org before reporting a bug
Last edited 13 years ago by Sergey Budnevitch (previous) (diff)

comment:2 by Ludovic Bellière, 13 years ago

Yes indeed. I just looked at the source code of fcgiwrap, and it's blacklisting a bunch of variables and among them, PATH_INFO.

Sorry for the trouble.

Note: See TracTickets for help on using tickets.