Bug 12312 - correctly upgrade under Apache 2.2
authorRobin Sheat <robin@catalyst.net.nz>
Mon, 26 May 2014 01:28:00 +0000 (13:28 +1200)
committerGalen Charlton <gmc@esilibrary.com>
Mon, 26 May 2014 03:41:55 +0000 (03:41 +0000)
As the way we need to reference Apache instance names has now changed
between 2.2 and 2.4, we need to try it out both ways to make sure we get
it right.

This also allows koha-create/koha-disable to try the .conf version of
the name if the first one doesn't work.

To test:
* Create an instance on an Apache 2.2 system with koha < 3.16
* Upgrade to 3.16 with this patch, saying 'yes' to the renaming question
** Make sure you don't see the warning: Warning: problem enabling $site
   in Apache
* Do a 'service apache2 restart'
* Make sure you can still access the instance
* Make sure that /etc/apache2/sites-enabled/instance.conf exists as a link
  to /etc/apache2/sites-available/instance.conf
* Check that koha-create and koha-remove behave like you'd expect.

Note:
* If you need to make debconf forget that it asked you the question
  about renaming so that it'll do it again, then run:
  echo "unregister koha-common/rename-apache-vhost-files" | sudo debconf-communicate koha-common
* 'debconf-show koha-common' will show you the current debconf
  configuration.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
debian/koha-common.postinst
debian/scripts/koha-create
debian/scripts/koha-remove

index 5b6967f..86c9404 100644 (file)
@@ -119,7 +119,10 @@ EOF
                    "/etc/apache2/sites-available/$site.conf"
 
                 if [ "$ENABLE_VHOST" = "yes" ]; then
-                    if ! a2ensite $site > /dev/null 2>&1; then
+                    if ! {
+                        a2ensite "$site" > /dev/null 2>&1 ||
+                        a2ensite "${site}.conf" > /dev/null 2>&1
+                    }; then
                         echo "Warning: problem enabling $site in Apache" >&2
                     fi
                 fi
index 1556051..14a6a45 100755 (executable)
@@ -619,7 +619,12 @@ fi
 if [ "$op" = create ] || [ "$op" = populate ] || [ "$op" = use ]
 then
     # Reconfigure Apache.
-    a2ensite "$name"
+    if ! {
+        a2ensite "$name" > /dev/null 2>&1 ||
+            a2ensite "${name}.conf" > /dev/null 2>&1
+    }; then
+        echo "Warning: problem enabling $name in Apache" >&2
+    fi
     service apache2 restart
 
     # Start Zebra.
index 38c6c85..528db75 100755 (executable)
@@ -104,7 +104,7 @@ eof
         rm -r "/var/run/koha/$name"
     getent passwd "$name-koha" > /dev/null && deluser --quiet "$name-koha"
     # in case the site has already been disabled, we don't want to break the loop now.
-    a2dissite "$name" || /bin/true
+    a2dissite "$name" > /dev/null 2>&1 || a2dissite "${name}.conf" > /dev/null 2>&1 || /bin/true
 done
 
 service apache2 restart