diff --git a/apache/config.sls b/apache/config.sls
index 0e04e3c..ed1f2ae 100644
--- a/apache/config.sls
+++ b/apache/config.sls
@@ -32,6 +32,19 @@ include:
- pkg: apache
- watch_in:
- service: apache
+
+{{ apache.portsfile }}:
+ file.managed:
+ - template: jinja
+ - source:
+ - salt://apache/files/{{ salt['grains.get']('os_family') }}/ports-{{ apache.version }}.conf.jinja
+ - require:
+ - pkg: apache
+ - watch_in:
+ - service: apache
+ - context:
+ apache: {{ apache }}
+
{% endif %}
{% if grains['os_family']=="RedHat" %}
diff --git a/apache/files/Debian/ports-2.4.conf.jinja b/apache/files/Debian/ports-2.4.conf.jinja
new file mode 100644
index 0000000..0164044
--- /dev/null
+++ b/apache/files/Debian/ports-2.4.conf.jinja
@@ -0,0 +1,30 @@
+{%- from "apache/map.jinja" import apache with context -%}
+
+# Managed by saltstack
+
+{% if salt['pillar.get']('apache:sites') is mapping %}
+ {%- set listen_directives = [] %}
+ {%- for id, site in salt['pillar.get']('apache:sites').items() %}
+ {%- set interfaces = site.get('interface', '*').split() %}
+ {%- set port = site.get('port', 80) %}
+ {%- for interface in interfaces %}
+ {%- set listen_directive = interface ~ ':' ~ port %}
+ {%- if listen_directive not in listen_directives %}
+ {%- do listen_directives.append(listen_directive) %}
+ {%- endif %}
+ {%- endfor %}
+ {%- endfor %}
+ {%- for listen in listen_directives %}
+Listen {{ listen }}
+ {%- endfor %}
+{%- else %}
+Listen 80
+
+
+ Listen 443
+
+
+
+ Listen 443
+
+{%- endif %}
diff --git a/apache/map.jinja b/apache/map.jinja
index 9603e81..eeb5e44 100644
--- a/apache/map.jinja
+++ b/apache/map.jinja
@@ -5,6 +5,7 @@
'server': 'apache2',
'service': 'apache2',
'configfile': '/etc/apache2/apache2.conf',
+ 'portsfile': '/etc/apache2/ports.conf',
'mod_wsgi': 'libapache2-mod-wsgi',
'mod_php5': 'libapache2-mod-php5',
diff --git a/apache/vhosts/standard.sls b/apache/vhosts/standard.sls
index 1ad438b..ccfc736 100644
--- a/apache/vhosts/standard.sls
+++ b/apache/vhosts/standard.sls
@@ -2,6 +2,7 @@
include:
- apache
+ - apache.config
{% for id, site in salt['pillar.get']('apache:sites', {}).items() %}
{% set documentroot = site.get('DocumentRoot', '{0}/{1}'.format(apache.wwwdir, id)) %}