Bug 13791: Apache configuration files
authorTomas Cohen Arazi <tomascohen@theke.io>
Thu, 13 Aug 2015 17:02:42 +0000 (14:02 -0300)
committerTomas Cohen Arazi <tomascohen@unc.edu.ar>
Mon, 24 Aug 2015 16:00:40 +0000 (13:00 -0300)
This patch adds an include to each VirtualHost definition (OPAC and Intranet)
and a variable definition, taking advantage of Apache 2.4.x features.

The instance name is reused inside the includes providing a simple way of
dealing with the apache <-> plack configuration.

A check for the right apache version is introduced, in the for of an IfVersion block:

<IfVersion >= 2.4>
  --- Plack configuration here ---
</IfVersion>

Signed-off-by: Josef Moravec <josef.moravec@gmail.com>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Tomas Cohen Arazi <tomascohen@unc.edu.ar>

debian/templates/apache-shared-intranet-plack.conf [new file with mode: 0644]
debian/templates/apache-shared-opac-plack.conf [new file with mode: 0644]
debian/templates/apache-site.conf.in

diff --git a/debian/templates/apache-shared-intranet-plack.conf b/debian/templates/apache-shared-intranet-plack.conf
new file mode 100644 (file)
index 0000000..95a68d5
--- /dev/null
@@ -0,0 +1,25 @@
+# Apache configuration settings that are shared for every Koha instance.
+# This file contains settings for the Plack configuration of the intranet.
+#
+# This file should be included from an instance's
+# /etc/apache2/site-available file, from within the VirtualHost section
+# for the intranet.
+
+# Plack is only available out-of-the-box for Apache 2.4.7+ setups
+<IfVersion >= 2.4>
+    <IfModule mod_proxy_http.c>
+
+        ProxyPreserveHost On
+
+       # RequestHeader set X-FORWARDED-PROTO "https"
+
+        # Point the intranet site to Plack
+        ProxyPass /cgi-bin/koha "unix:/var/run/koha/${instance}/plack.sock|http://localhost/intranet"
+        ProxyPassReverse /cgi-bin/koha "unix:/var/run/koha/${instance}/plack.sock|http://localhost/intranet"
+
+        # Point the /api endpoint to Plack
+       # ProxyPass /api "unix:/var/run/koha/${instance}/plack.sock|http://localhost/api"
+       # ProxyPassReverse /api "unix:/var/run/koha/${instance}/plack.sock|http://localhost/api"
+
+    </IfModule>
+</IfVersion>
diff --git a/debian/templates/apache-shared-opac-plack.conf b/debian/templates/apache-shared-opac-plack.conf
new file mode 100644 (file)
index 0000000..5d6f564
--- /dev/null
@@ -0,0 +1,25 @@
+# Apache configuration settings that are shared for every Koha instance.
+# This file contains settings for the Plack configuration of the OPAC.
+#
+# This file should be included from an instance's
+# /etc/apache2/site-available file, from within the VirtualHost section
+# for the OPAC.
+
+# Plack is only available out-of-the-box for Apache 2.4.7+ setups
+<IfVersion >= 2.4>
+    <IfModule mod_proxy_http.c>
+
+        ProxyPreserveHost On
+
+       # RequestHeader set X-FORWARDED-PROTO "https"
+
+        # Point the intranet site to Plack
+        ProxyPass /cgi-bin/koha "unix:/var/run/koha/${instance}/plack.sock|http://localhost/opac"
+        ProxyPassReverse /cgi-bin/koha "unix:/var/run/koha/${instance}/plack.sock|http://localhost/opac"
+
+        # Point the /api endpoint to Plack
+       # ProxyPass /api "unix:/var/run/koha/${instance}/plack.sock|http://localhost/api"
+       # ProxyPassReverse /api "unix:/var/run/koha/${instance}/plack.sock|http://localhost/api"
+
+    </IfModule>
+</IfVersion>
index dd30bc6..3f7ad52 100644 (file)
@@ -2,8 +2,12 @@
 
 # OPAC
 <VirtualHost *:__OPACPORT__>
+  <IfVersion >= 2.4>
+   Define instance "__KOHASITE__"
+  </IfVersion>
    Include /etc/koha/apache-shared.conf
 #  Include /etc/koha/apache-shared-disable.conf
+#  Include /etc/koha/apache-shared-opac-plack.conf
    Include /etc/koha/apache-shared-opac.conf
 
    ServerName __OPACSERVER__
 
 # Intranet
 <VirtualHost *:__INTRAPORT__>
+  <IfVersion >= 2.4>
+   Define instance "__KOHASITE__"
+  </IfVersion>
    Include /etc/koha/apache-shared.conf
 #  Include /etc/koha/apache-shared-disable.conf
+#  Include /etc/koha/apache-shared-intranet-plack.conf
    Include /etc/koha/apache-shared-intranet.conf
    
    ServerName __INTRASERVER__