[Mailman-Users] 403 Forbidden error (problem resolved)

backdoc freebsd01 at usmstudent.com
Mon Jan 26 05:21:41 CET 2004

I have been having problems getting access to my public archives from a 
browser.  I have been getting "403 Forbidden error accessing public 
archives" errors.  This seems to be a particularly popular problem with 
many requests for advice, yet only few posts with helpful suggestions. 
Fortunately, I was able to piece them together to solve my problem.  In 
the past, I have received much help and advice (not to mention excellent 
software) from the good people at list.org and the people on the 
Mailman-Users mailing list.  So, I thought that I might be able to pay 
some of that generosity back by offering a short summary of what caused 
my problem and how I fixed it.  Either someone will be able to search 
the Mailman-Users archives and find this message or else someone more 
articulate and knowledgeable than me about Mailman could polish it up 
and find a place for it in the Mailman FAQ located at 

Symptom:  403 Forbidden error accessing public archives ....

Platform:  FreeBSD 4.6-RELEASE

Mailman Version:  Currently 2.1.3.  I first installed mailman about 2 
years ago.  So, this version has been upgraded and updated to 2.1.3. 
This was, I think, part of my problem.


The first thing I did was navigate to the /usr/local/mailman/bin 
directory and run "./check_perms".  I found that not all of my 
permissions were set correctly.  So, I re-ran "./check_perms -f" (for 
fix).  This fixed the permissions.  But, I still was being denied access.

The second step was to verify my settings were correct in Apache.  I 
played around with httpd.conf for a little.  But, nothing seemed to 
help.  Remember that if you modify httpd.conf that you need to restart 
Apache with "apachectl restart" for your changes to work.  It turns out 
that there was nothing wrong with my file.  Here is what I currently use:

      ScriptAlias /mailman/ "/usr/local/mailman/cgi-bin/"

      <Directory "/usr/local/mailman/cgi-bin/">
          AllowOverride None
          Options FollowSymLinks ExecCGI
          Order allow,deny
          Allow from all

      Alias /pipermail/ "/usr/local/mailman/archives/public/"

Then, I stumbled upon a thread at 
that pointed me to the solution of my problem.  I was able to get access 
to my archives by making the following changes.

# ** The following line was added ****************
DEFAULT_URL_PATTERN = 'http://%s/mailman/'

# ** The following line was replaced by the line after it.

# PUBLIC_ARCHIVE_URL  = '/pipermail'
PUBLIC_ARCHIVE_URL  = 'http://%(hostname)s/pipermail/%(listname)s'

One thing that I might point out here is that you can put the above 
lines in mm_cfg.py literally.  You do not have to make substitutions for 
"(hostname)" and "(listname)".  Just copy and paste.  This is something 
that was not clear to me in the thread.  I often run into that issue 
when trying to follow online docs.  I thought it would be helpful to 
point it out.

***** IMPORTANT ******
After you make changes to your mm_cfg.py file, you need to run 
"./withlist -l -r fix_url (your list name)" on every existing list. 
Here, you do need to make substitutions for "(your list name)".  You can 
get a list of your lists with "./list_lists".  Also, you need to stop 
and restart Mailman with, "mailmanctl restart".  It is possible that 
only certain changes to your mm_cfg.py necessitate the running of 
"withlist" and "Mailman restart".  But, I don't see where it hurts to 
run them anyway (unless of course your want old lists to remain 
untouched and new lists to incorporate your changes).

Finally, this may shed some light on things for other FreeBSD users. 
Earlier I stated that part of my problem was due to the fact that 
Mailman has been upgraded on my system.  This is why I believe that. 
The PUBLIC_ARCHIVE_URL used to work the way it was (see above).  And, I 
noticed a few months back when I created a new mailing list that things 
like default paths and default email addresses didn't work on my new 
lists.  If I'm not mistaken, the old lists continued to work though.  I 
am just now associating the two problems.  Apparently, the jump from 
2.0.x to 2.1.x made some serious changes in how the mm_cfg.py file 
works.  I upgrade my system with portupgrade, and I rarely have any 
issues.  This time, the new requirements went unnoticed.

I hope this helps someone.


More information about the Mailman-Users mailing list