Setting up sympa with virtual hosts in an environment using exim requires some small modifications:
The described setup works with Debian Wheezy.
Basic Setup
Installed packages: sympa, apache2-mpm-prefork, exim4-daemon-heavy
Configure Sympa for FastCGI in /etc/sympa/wwsympa.conf
use_fast_cgi 1
Configure Exim
Add exim to the sympa group
adduser Debian-exim sympa
Configure pipe transport in /etc/exim4/conf.d/main/02_exim4-config_options
.ifndef SYSTEM_ALIASES_PIPE_TRANSPORT SYSTEM_ALIASES_PIPE_TRANSPORT = address_pipe endif
Create sympa router in /etc/exim4/conf.d/router/100_sympa
## sympa user
main_sympa_aliases:
debug_print = "R: sympa_aliases for $local_p...@$domain"
driver = accept
domains = INSERT_PRIMARY_SYMPA_DOMAINNAME_HERE
local_parts = sympa : listmaster
transport = sympa_direct_transport
no_more
generic_sympa_aliases:
debug_print = "R: sympa_aliases for $local_p...@$domain"
driver = accept
require_files = /var/lib/sympa/list_data/$domain
local_parts = sympa : listmaster
transport = generic_sympa_direct_transport
no_more
# Lists
main_sympa_owner_router:
driver = accept
domains = INSERT_PRIMARY_SYMPA_DOMAINNAME_HERE
require_files = /var/lib/sympa/list_data/$local_part
local_part_suffix = -owner
transport = sympa_owner_transport
main_sympa_router:
driver = accept
domains = INSERT_PRIMARY_SYMPA_DOMAINNAME_HERE
require_files = /var/lib/sympa/list_data/$local_part
local_part_suffix_optional
local_part_suffix = -bounces : -bounces+* : -editor : \
-confirm+* : -join : -leave : \
-request : -admin : -subscribe : -unsubscribe
transport = sympa_transport
generic_sympa_owner_router:
driver = accept
require_files = /var/lib/sympa/list_data/$domain/$local_part
local_part_suffix = -owner
transport = sympa_owner_transport
generic_sympa_router:
driver = accept
require_files = /var/lib/sympa/list_data/$domain/$local_part
local_part_suffix_optional
local_part_suffix = -bounces : -bounces+* : -editor : \
-confirm+* : -join : -leave : \
-request : -admin : -subscribe : -unsubscribe
transport = sympa_transport
Create sympa transports in /etc/exim4/conf.d/transport/30_sympa
sympa_owner_transport:
driver = pipe
command = /usr/lib/sympa/bin/bouncequeue $local_part@$domain
user = sympa
sympa_transport:
driver = pipe
command = /usr/lib/sympa/bin/queue ${local_part}${local_part_suffix}\@$domain
user = sympa
sympa_direct_transport:
driver = pipe
command = /usr/lib/sympa/bin/queue sympa
user = sympa
generic_sympa_direct_transport:
driver = pipe
command = /usr/lib/sympa/bin/queue sympa@$domain
user = sympa
Configure exim4 with dpkg-reconfigure exim4-config and select the splitted config template.
Setting up a virtual host
Configure a virtual host in Sympa
su sympa -c 'mkdir /etc/sympa/DOMAIN' su sympa -c 'touch /etc/sympa/DOMAIN/robot.conf' su sympa -c 'mkdir /var/lib/sympa/list_data/DOMAIN'
http_host DOMAIN/wws wwsympa_url http://DOMAIN/wws
Restart sympa
Configure exim
Configure exim4 with dpkg-reconfigure exim4-config and add DOMAIN to the local domains.